slicktune.strategies¶
Parameter-update strategies (how weights change).
Classes¶
AdaLoRA: adaptive-rank LoRA that prunes toward |
|
DoRA (Weight-Decomposed LoRA) PEFT strategy. |
|
Full fine-tuning: update all model parameters. |
|
LoRA PEFT strategy (default production PEFT path). |
|
QLoRA strategy: 4-bit quantized base + LoRA adapters. |
Package Contents¶
- class slicktune.strategies.AdaLoRAStrategy[source]¶
Bases:
slicktune.types.StrategyAdaLoRA: adaptive-rank LoRA that prunes toward
target_r.- Parameters:
target_r (int, optional) – Average target rank budget, by default 8.
init_r (int, optional) – Initial rank before pruning, by default 12.
alpha (int, optional) – LoRA scaling alpha, by default 32.
dropout (float, optional) – LoRA dropout probability, by default 0.05.
target_modules (list[str] | str | None, optional) – Modules to adapt, by default
"all-linear".bias ({“none”, “all”, “lora_only”}, optional) – Bias training mode, by default
"none".tinit (int, optional) – Warmup steps before rank allocation, by default 0.
tfinal (int, optional) – Final fine-tuning steps at fixed rank, by default 0.
deltaT (int, optional) – Rank allocation interval, by default 10.
total_step (int, optional) – Expected optimizer steps (required by PEFT AdaLoRA), by default 1000. Prefer setting this close to
steps_per_epoch * epochs.
- __slots__ = ()¶
- apply(model: Any) Any[source]¶
Attach AdaLoRA adapters to
model.- Parameters:
model (Any) – Hugging Face causal LM.
- Returns:
Any – PEFT-wrapped AdaLoRA model.
- Raises:
ValueError – If
total_stepis not positive.
- bias: BiasType = 'none'¶
- class slicktune.strategies.DoRAStrategy[source]¶
Bases:
slicktune.types.StrategyDoRA (Weight-Decomposed LoRA) PEFT strategy.
Same knobs as LoRA with
use_dora=Truefor magnitude/direction decomposition.- Parameters:
r (int, optional) – LoRA rank, by default 16.
alpha (int, optional) – LoRA scaling alpha, by default 32.
dropout (float, optional) – LoRA dropout probability, by default 0.05.
target_modules (list[str] | str | None, optional) – Modules to adapt, by default
"all-linear".bias ({“none”, “all”, “lora_only”}, optional) – Bias training mode, by default
"none".
- __slots__ = ()¶
- apply(model: Any) Any[source]¶
Attach DoRA adapters to
model.- Parameters:
model (Any) – Hugging Face causal LM.
- Returns:
Any – PEFT-wrapped DoRA model.
- bias: BiasType = 'none'¶
- class slicktune.strategies.FullStrategy[source]¶
Bases:
slicktune.types.StrategyFull fine-tuning: update all model parameters.
- Parameters:
None
- __slots__ = ()¶
- apply(model: Any) Any[source]¶
Enable gradients on all parameters.
- Parameters:
model (Any) – Hugging Face causal LM.
- Returns:
Any – The same model with
requires_grad=Trueon all params.
- class slicktune.strategies.LoRAStrategy[source]¶
Bases:
slicktune.types.StrategyLoRA PEFT strategy (default production PEFT path).
- Parameters:
r (int, optional) – LoRA rank, by default 16.
alpha (int, optional) – LoRA scaling alpha, by default 32.
dropout (float, optional) – LoRA dropout probability, by default 0.05.
target_modules (list[str] | str | None, optional) – Modules to adapt.
"all-linear"lets PEFT discover linear layers, by default"all-linear".bias ({“none”, “all”, “lora_only”}, optional) – Bias training mode passed to PEFT, by default
"none".
- __slots__ = ()¶
- apply(model: Any) Any[source]¶
Attach LoRA adapters to
model.- Parameters:
model (Any) – Hugging Face causal LM.
- Returns:
Any – PEFT-wrapped model.
- bias: BiasType = 'none'¶
- class slicktune.strategies.QLoRAStrategy[source]¶
Bases:
slicktune.types.StrategyQLoRA strategy: 4-bit quantized base + LoRA adapters.
Requires CUDA and optional extra
slicktune[qlora](bitsandbytes).- Parameters:
r (int, optional) – LoRA rank, by default 16.
alpha (int, optional) – LoRA scaling alpha, by default 32.
dropout (float, optional) – LoRA dropout probability, by default 0.05.
target_modules (list[str] | str | None, optional) – Modules to adapt, by default
"all-linear".bias ({“none”, “all”, “lora_only”}, optional) – Bias training mode, by default
"none".
- __slots__ = ()¶
- apply(model: Any) Any[source]¶
Prepare a 4-bit model and attach LoRA adapters.
- Parameters:
model (Any) – Quantized Hugging Face causal LM.
- Returns:
Any – PEFT-wrapped QLoRA model.
- bias: BiasType = 'none'¶
- load_kwargs() dict[str, Any][source]¶
Return bitsandbytes 4-bit quantization config for model load.
- Returns:
dict[str, Any] –
quantization_configsuitable forfrom_pretrained.- Raises:
ImportError – If
bitsandbytesis not installed.RuntimeError – If CUDA is not available.