大模型八股
- 大模型的微调技术
- 全参数微调(Full Fine-tuning)
- 参数高效微调(PEFT)
- Adapter Layers
- LoRA(Low-Rank Adaptation)
- QLora
- Dora
- prefix/prompt tuning
- 一些trick
- 其它
- 大模型对齐
- RLHF
- PPO
- DPO
大模型的微调技术
全参数微调(Full Fine-tuning)
原理:解锁大模型的全部参数,用下游任务数据反向传播更新权重。
优点:效果最佳(尤其是大数据场景)
缺点:
- 计算成本高(优化存储器状态、梯度、参数副本)
- 容易过拟合(尤其是数据量不够的情况)
- 灾难性遗忘(破坏预训练的通用能力)
参数高效微调(PEFT)
Adapter Layers
在Transformer层中插入小型神经网络模块(如两层MLP),仅训练新增参数
优点:参数量小(0.5%~8%),保留模型的原始能力
缺点:引入推理延迟(增加计算路径)
LoRA(Low-Rank Adaptation)
用低秩矩阵分解逼近参数更新量 ΔW = A×B,秩r远小于原维度。
例如在stable-diffusion中,研究人员发现微调cross-attention部分就能获得很好的结果。而交叉注意力层中的权重被排列为矩阵形式,就可以使用lora进行微调。通过矩阵分解,使用很小的空间就能够存储这些矩阵的参数值。
优点:
-
无推理延迟(可以直接合并到原权重)
-
显存占用低(仅需保存A/B的梯度)
-
支持多任务切换(不同A/B组合)
缺点:
秩r的选择影响效果,需经验调参。
QLora
低位量化:
- 在 bitsandbytes 或类似库的支持下,可以将模型权重从 FP16/BF16 压缩到 4-bit 或 8-bit。
- 4-bit 量化会采用一些特殊的方法(如 bnb 中的 quantization+quantile-based mapping),以尽量保持数值精度。
- 推理和训练都可以在这种量化表示下执行,从而节省内存带宽与显存开销。
QLoRA 中,原始权重被 4-bit 量化、冻结,只在前向传播时进行解码(或部分近似运算),不更新这些量化权重;而在相应矩阵上 额外加上的低秩 LoRA 层 则以正常精度(FP16/BF16)进行训练更新。
这样做能在 不牺牲(或少量牺牲)模型推理与训练效果的同时,大大减少存储与算力消耗。
Dora
prefix/prompt tuning
原理:
- Prefix-tuning:在输入前添加可训练前缀向量(作用于每一层);
- Prompt-tuning:仅在输入层添加可训练提示词。
优点:模型0修改,部署起来最简单;
缺点:效果依赖prompt长度,长文本任务可能受限
一些trick
- 数据预处理:保持与预训练格式一致(如特殊token使用);
- 超参数选择:
- 学习率:通常为预训练的1/10 ~ 1/100;
- Batch Size:小数据用更小的batch;
- 评估策略:保留部分验证集防止过拟合。
其它
- 误区1:认为“PEFT效果一定比全参数微调差”
- 纠正:在低资源场景下,PEFT通过减少过拟合风险反而可能效果更好。
- 误区2:混淆LoRA与Adapter
- LoRA:参数注入式,无计算延迟;
- Adapter:结构插入式,增加计算量。
- 误区3:忽视模型缩放(Scaling Laws)
- 大模型(>10B参数)更适合PEFT,小模型可全参数微调。
大模型对齐
RLHF
全称:Reinforcement Learning from Human Feedback,基于人类的偏好对语言模型进行强化学习。