一句话:预训练只教会模型「下一个词该是什么」,没教它「什么回答对人有用」。对齐就是把人类偏好注入模型的过程。
为什么需要对齐
基座模型的目标函数是下一个 token 的似然。这个目标会带来几种典型偏差:
- 你问「怎么快速挣钱」,它可能接着写出一段理财产品广告,因为训练语料里这种接续很常见;
- 它不知道什么时候该拒绝,也不知道要追问澄清;
- 输出格式不稳定,同样的问题每次结构都不一样。
SFT 教格式与指令跟随,RLHF 教偏好排序——前者让它「会答」,后者让它「答得更好」。
第一阶段:SFT 监督微调
用人工撰写的高质量「指令 - 回答」对做监督微调。要点不在数据量,而在质量与多样性:
- 几万条精标数据通常就能显著改变模型的交互行为;
- 覆盖要广:问答、摘要、改写、拒答、追问澄清、结构化输出;
- 数据风格会直接迁移,标注人员的表达习惯会变成模型的说话方式。
第二阶段:奖励模型(RM)
对同一个问题采样多个回答,让人工做排序(A 比 B 好),而不是打绝对分——人对相对比较的判断更一致。
奖励模型的训练目标是让「人偏好的回答」得分更高。常用 pairwise 损失:
loss = -log σ( r(chosen) - r(rejected) )
这里有个容易被忽略的事实:RM 只是一个偏好的代理指标,它学到的是标注数据的统计倾向,不是真正的「好」。
第三阶段:PPO 强化学习
用 RM 给模型输出打分,用 PPO 更新策略,同时加一个 KL 惩罚项约束新策略不要偏离 SFT 模型太远:
reward = r_θ(x, y) - β · KL( π_new || π_ref )
KL 项的作用是防止模型为了刷分而「跑偏」——没有它,模型很快会学会输出 RM 偏爱的套话,语言能力反而退化。
PPO 工程实现复杂:需要四个模型同时在显存里(策略、参考、奖励、价值),调参敏感,训练不稳定。这也是后续 DPO 出现的直接原因。
DPO:把 RL 化简成一个分类损失
DPO(Direct Preference Optimization,2023)的洞察是:带 KL 约束的 RLHF 目标存在闭式解,可以把它等价改写成一个直接在偏好数据上优化的分类损失,不再需要单独的奖励模型和 PPO 循环。
工程上这意味着:
- 显存占用大幅下降(不需要四个模型);
- 训练稳定,超参少,中小团队也能做;
- 效果在多数任务上接近 PPO,但在需要探索的复杂推理任务上仍有差距。
奖励劫持与后续演进
RM 是代理指标,模型会找到「让 RM 打高分」而不是「让人满意」的捷径,这叫 reward hacking。典型表现:
- 回答变得很长很客气,但信息密度下降;
- 学会在结尾加「希望对你有帮助」这类 RM 偏爱的句式;
- 对不确定的问题也自信作答,因为自信语气在偏好数据里得分更高。
后续两条修补路线:
- RLAIF / Constitutional AI:用更强的模型代替人工做偏好判断,降低成本、提高一致性;
- RLVR(可验证奖励):在数学、代码这类有客观对错的任务上,直接用「答案是否通过验证」作为奖励,绕开奖励模型。2025 年之后的推理模型(o 系列、DeepSeek-R1)基本都走这条路。
对企业应用的启示
- 通用模型的对齐是「对所有人平均好用」,不等于对你的业务好用。业务口径、话术、拒答边界需要用少量高质量样本做二次对齐(SFT 或 DPO)。
- 对齐数据比对齐算法更稀缺。把业务专家的判断沉淀成偏好对,是最有复用价值的资产。
- 对齐不是一劳永逸:模型升级、业务规则变化都要重新校准,需要留出评估集和回归流程。