第 0 步:环境与基线
验收产物: 你能稳定跑通 1 卡和 4 卡训练、能复现同一配置的 loss 曲线、能保存/恢复 ckpt。
- 统一栈:Transformers + Datasets + Accelerate/Deepspeed + TRL
- 先选一个 中小模型(例如 3B–8B)+ 一个小数据集(几千到几万样本),保证迭代速度。
第 1 步:SFT
目标: 跑通指令微调,并建立一套评测与对比机制。
实验记录:
全量SFT
LoRA & QLoRA
第 2 步:DPO
目标: 用偏好数据把输出风格/有用性往目标方向推,并理解 DPO 与 RM+PPO 的差异。
- 直接用 TRL 的 DPOTrainer 跑(它的文档把关键接口讲得比较清楚)。
- 偏好数据可以先用公开集(例如常见的 preference pairs),或者你用 SFT 模型自采样 + 简单规则/打分器生成伪偏好对(先把 pipeline 跑通)。
验收产物:
- DPO 相对 SFT:在同一评测集上的提升/退化、以及对长度、啰嗦度、拒答率等行为指标的影响。
- 记录关键超参敏感性:β、lr、reference model 策略。
第 3 步:Reward Model + PPO
目标: 完整跑一遍“经典 RLHF 三段式”:SFT → RM → PPO。
- TRL 提供 PPO/DPO 等训练范式与脚本入口,适合你学习“KL 约束、优势函数、reward hacking、长度偏置”等真实问题。