首页/论文研究/通用知识模块/RLHF 与对齐:SFT、奖励模型、PPO 到 DPO
通用知识模块 对齐 Markdown

RLHF 与对齐:SFT、奖励模型、PPO 到 DPO

为什么预训练模型「会说不会做」?三阶段对齐如何把下一个词预测变成有用的助手,以及奖励劫持与可验证奖励的演进。

更新于 2026-11-03 · 通用知识模块
一句话:预训练只教会模型「下一个词该是什么」,没教它「什么回答对人有用」。对齐就是把人类偏好注入模型的过程。

为什么需要对齐

基座模型的目标函数是下一个 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 偏爱的句式;
  • 对不确定的问题也自信作答,因为自信语气在偏好数据里得分更高。

后续两条修补路线:

  1. RLAIF / Constitutional AI:用更强的模型代替人工做偏好判断,降低成本、提高一致性;
  2. RLVR(可验证奖励):在数学、代码这类有客观对错的任务上,直接用「答案是否通过验证」作为奖励,绕开奖励模型。2025 年之后的推理模型(o 系列、DeepSeek-R1)基本都走这条路。

对企业应用的启示

  • 通用模型的对齐是「对所有人平均好用」,不等于对你的业务好用。业务口径、话术、拒答边界需要用少量高质量样本做二次对齐(SFT 或 DPO)。
  • 对齐数据比对齐算法更稀缺。把业务专家的判断沉淀成偏好对,是最有复用价值的资产。
  • 对齐不是一劳永逸:模型升级、业务规则变化都要重新校准,需要留出评估集和回归流程。