目录
全参数微调要为每个参数保存梯度和优化器状态,显存代价高。LoRA 冻结基础模型,只在部分线性层旁加入两块小矩阵。
LoRA 不直接改写大权重矩阵,而是学习一个低秩增量 ΔW。
1、低秩增量
对原权重 W,LoRA 使用 W+ΔW,其中 ΔW=B·A。若隐藏维很大而秩 r 很小,A、B 的参数量远少于完整 W。
初始化通常让训练开始时 ΔW 接近 0,从基础模型行为平稳出发。
2、Rank 与 Alpha
Rank r 决定低秩通道宽度,越大容量与训练参数越多。Alpha 用于缩放 LoRA 更新,常见形式为 alpha/r。二者需要结合任务与目标层调节。
3、加在哪些层
常见目标包括 Attention 的 q_proj、k_proj、v_proj、o_proj,以及 FFN 投影。只训练少数层更省,但可能限制适应能力;覆盖更多层需要更多显存。
4、QLoRA 多做了什么
QLoRA 把冻结的基础模型权重量化为 4-bit,Forward 时按需反量化计算,同时让 LoRA 参数保持较高精度训练。它进一步降低基础权重占用。
经典 QLoRA 还使用 NF4、Double Quantization 与 Paged Optimizers 等设计。
5、训练后怎样使用
LoRA Adapter 可以单独保存并在加载基础模型时挂载,也可以合并进浮点基础权重。多个 Adapter 便于针对不同任务切换,但必须与正确的基础模型版本匹配。
6、省显存不等于没有代价
QLoRA 需要量化与反量化内核,训练速度未必总快于 BF16 LoRA。可训练参数少也不代表数据和评估可以放松;错误数据同样会导致过拟合与能力退化。
容易混淆的三件事
- LoRA 不是只训练 Bias。
- 4-bit 基础权重通常会反量化参与计算。
- Adapter 必须匹配基础模型与目标层。
记住这 5 件事
- 基础权重保持冻结
- ΔW 由低秩矩阵相乘
- Rank 控制容量
- QLoRA 使用量化基础权重
- Adapter 可单独保存或合并
参考资料
第二十二课复习总图
下一课进入偏好对齐:RLHF 与 DPO 怎样让模型更符合人类选择?