LoRA 微调
🎯 学习目标
- 对比各类 PEFT 方法训练的参数量与显存
- 使用 HuggingFace PEFT 加载 LoRA adapter
- 了解 QLoRA 在单卡微调的可行性
引言
PEFT 只训练少量参数,基座模型冻结,适合应用团队「轻量定制」。
章节正文
第 1 步:方法对比
| 方法 | 思路 | 参数量 |
|---|---|---|
| Prompt Tuning | 只训 soft prompt | 极少 |
| P-Tuning | 可学习 prompt embedding | 少 |
| Prefix Tuning | 每层 prefix 向量 | 中 |
| LoRA | 低秩分解 ΔW | 中 |
| QLoRA | 4bit 量化基座 + LoRA | 中,显存低 |
第 2 步:LoRA 配置示例
python
from peft import LoraConfig, get_peft_model
config = LoraConfig(
r=16,
lora_alpha=32,
target_modules=["q_proj", "v_proj"],
lora_dropout=0.05,
task_type="CAUSAL_LM",
)
model = get_peft_model(base_model, config)
model.print_trainable_parameters() # ~0.1% 可训第 3 步:选型建议
- 单卡 24GB:QLoRA 7B
- 多卡:LoRA 13B+
- 快速试验:LoRA r=8
- 上线:adapter 文件独立版本管理,与基座分离部署
动手练习
- 阅读 print_trainable_parameters 输出,计算可训参数占比
- 调研 axolotl / LLaMA-Factory 一键 QLoRA 流程
本节小结
PEFT 以 LoRA/QLoRA 最实用;消费级 GPU 用 QLoRA;adapter 与基座分离部署。