pub struct Lora {
pub rank: usize,
pub alpha: f64,
pub init_std: Option<f64>,
pub param_group: ParamGroup,
}Expand description
A Reparameterizer that attaches LoRA adapters to 2-D weight parameters.
It is applied via Module::apply_lora.
All existing floating-point parameters are frozen. Matching rank-2 parameters receive
trainable LoRA adapters; other parameters remain frozen without adapters. No
model or layer code needs to change—the same Linear (and any other module) keeps working, now
producing base + scale * (a @ b) for adapted weights.
Fields§
§rank: usizeRank of the low-rank decomposition.
alpha: f64Scaling numerator; the adapter contribution is scaled by alpha / rank.
init_std: Option<f64>Standard deviation used to initialize the A factor. Defaults to 1 / rank.
param_group: ParamGroupThe parameter group on which to apply the LoRA.
Implementations§
Source§impl Lora
impl Lora
Sourcepub fn new(rank: usize, alpha: f64) -> Self
pub fn new(rank: usize, alpha: f64) -> Self
Create a new LoRA reparameterizer with the given rank and alpha.
Sourcepub fn set_param_group(self, group: ParamGroup) -> Self
pub fn set_param_group(self, group: ParamGroup) -> Self
Set the parameter group on which to apply LoRA adapters.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Lora
impl RefUnwindSafe for Lora
impl Send for Lora
impl Sync for Lora
impl Unpin for Lora
impl UnsafeUnpin for Lora
impl UnwindSafe for Lora
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more