RLHF / DPO 对齐
对齐(Alignment)让模型输出更符合人类偏好,是 ChatGPT 之所以「好用」的关键一步,也是高频考点。本文深入 RLHF 三阶段、奖励模型、PPO 的复杂性、DPO 的推导直觉,以及 RLAIF/Constitutional AI/KTO/ORPO/GRPO 等方法谱系与工程坑。
一、为什么需要对齐?
预训练 让模型「有知识」,SFT 让它「会听指令」,但 SFT 后的模型不一定输出人类最偏好的回答(可能啰嗦、不安全、回避、不够有用)。对齐阶段用「人类偏好」信号进一步优化,使行为符合 3H 原则:
- Helpful(有用):真正解决用户问题。
- Honest(诚实):不编造、不确定时坦诚。
- Harmless(无害):拒绝有害请求、无偏见。
为什么 SFT 不够,还要 RLHF? SFT 是「模仿」标准答案(监督学习),上限受限于示范数据,且只能教「做什么」,难以教「不要做什么」。RLHF 基于「比较/打分」优化,能学到超越示范的策略,也能压制不想要的行为——这是 RLHF 的独特价值。
二、RLHF 经典三阶段
① 预训练 ──▶ ② SFT ──▶ 指令模型(策略初始值)
│
同一 prompt 多个回答 ├──▶ 人类两两排序偏好 ──▶ ③ 训练奖励模型 RM
│ │
└──────────▶ ④ PPO 强化学习 ◀──── RM 打分
│ ▲
KL 惩罚 │ │(约束别偏离 SFT 太远)
▼ │
对齐后的模型 ─┘阶段 1:SFT
先用「指令-回答」对监督微调,得到一个会遵循指令的基础策略模型。
阶段 2:训练奖励模型(Reward Model, RM)
- 对同一 prompt,让模型生成多个回答,由人类标注「哪个更好」(两两比较/排序,而非打绝对分)。
- 用这些偏好数据训练一个 RM:输入「prompt + 回答」,输出一个标量分数,拟合人类偏好。
- RM 常用 Bradley-Terry 模型建模偏好概率,损失让「更好回答」的得分高于「更差回答」:
$$\mathcal{L}_{RM} = -\log \sigma\big(r(x,y_w) - r(x,y_l)\big)$$
为什么用排序而非绝对打分? 人类对「打几分」的绝对评分主观、不一致、难校准;而「A 和 B 哪个更好」的相对判断稳定可靠得多。
阶段 3:强化学习优化(通常用 PPO)
- 把语言模型当作策略(policy),生成回答;
- 用 RM 给回答打分作为奖励;
- 用 PPO 更新策略,让它倾向于产生高奖励的回答;
- 加 KL 散度惩罚,约束新策略不要偏离 SFT 模型太远。
奖励实际形式:reward = RM 分数 − β·KL(policy ‖ SFT)。KL 项防止模型为迎合 RM 而过度漂移、语言退化或钻空子。
三、PPO 为什么复杂?
PPO(Proximal Policy Optimization)训练时需要同时维护 4 个模型:
| 模型 | 作用 |
|---|---|
| 策略模型(Actor) | 被训练的主模型,生成回答 |
| 参考模型(Ref) | SFT 模型的冻结副本,算 KL 惩罚 |
| 奖励模型(RM) | 给回答打分 |
| 价值模型(Critic) | 估计每步的价值/优势(advantage) |
4 个模型 → 显存翻倍、工程复杂、训练不稳定、对超参敏感、调起来痛苦。这正是 DPO 和 GRPO 等出现的动机。
四、DPO(Direct Preference Optimization)
DPO 的核心洞见:可以跳过显式训练 RM 和 RL,直接用偏好数据优化策略。
数学上,RLHF 的最优策略与奖励之间存在闭式关系,于是可把奖励「隐式」表达为「策略与参考模型的对数概率比」,把整个 RLHF 目标改写成一个直接在 (prompt, 好回答 y_w, 坏回答 y_l) 三元组上的二分类式损失:
$$\mathcal{L}{DPO} = -\log \sigma\left(\beta \log\frac{\pi(y_w|x)}{\pi(y_w|x)} - \beta \log\frac{\pi(y_l|x)}{\pi_{ref}(y_l|x)}\right)$$
直觉:提高「好回答」相对参考模型的概率、降低「坏回答」的概率。
- 优点:只需 2 个模型(策略 + 参考),无需 RM 和 RL 循环,稳定、简单、省资源,效果常可比肩 PPO。
- 是开源社区主流对齐方法。
- 局限:离线方法,依赖固定偏好数据集,无在线探索;对分布外数据和数据质量敏感。
五、对齐方法谱系
| 方法 | 一句话 |
|---|---|
| PPO | 经典在线 RL,4 模型,效果好但复杂 |
| DPO | 跳过 RM/RL,直接用偏好数据,简单稳定 |
| RLAIF | 用 AI(更强模型)代替人类标注偏好,降低标注成本 |
| Constitutional AI | 给模型一套「宪法」原则,让它自我批评修正(Anthropic),属 RLAIF |
| KTO | 只需「好/坏」二元标签,无需成对比较,数据更易获取 |
| ORPO | 把 SFT 和偏好优化合并成一步,无需单独参考模型 |
| GRPO | 去掉价值模型,用组内相对奖励估计优势,DeepSeek 用于推理模型 |
| RLVR | 用可自动验证的奖励(数学对错/代码通过)做 RL,是推理模型的关键 |
| 拒绝采样 | 生成多个回答用 RM 选最好的,加入 SFT 再训练 |
GRPO 与推理模型详见 DeepSeek 专题 与 推理模型。
六、PPO vs DPO vs GRPO 对比
| 维度 | PPO | DPO | GRPO |
|---|---|---|---|
| 需要 RM? | 是 | 否(隐式) | 是(或可验证奖励) |
| 需要价值模型? | 是 | 否 | 否(组内相对) |
| 在线/离线 | 在线 | 离线 | 在线 |
| 模型数量 | 4 | 2 | 3 |
| 复杂度/成本 | 高 | 低 | 中 |
| 典型场景 | 通用对齐 | 开源对齐主流 | 推理模型(可验证奖励) |
七、工程坑:reward hacking 与对齐税
- Reward Hacking(奖励欺骗):模型钻 RM 的空子,输出能骗高分但实际不好的回答(如过度冗长、堆砌讨好词、迎合长度偏好)。防范:KL 惩罚、提升 RM 质量与鲁棒性、限制训练步数、更强偏好数据。
- 过度优化(Over-optimization):RL 训练越久,RM 分数越高但真实质量先升后降(Goodhart 定律)——RM 只是真实偏好的代理。
- 对齐税(Alignment Tax):对齐可能让模型在某些基准能力上略降,是「安全/偏好」与「原始能力」之间的权衡。
- 谄媚(Sycophancy):模型学会迎合用户观点而非说真话,是 RLHF 的常见副作用。
八、高频追问
Q:RLHF 的三个阶段是什么? SFT(学会听指令)→ 训练奖励模型 RM(用人类偏好数据拟合打分)→ PPO 强化学习(用 RM 奖励优化策略,加 KL 约束)。
Q:RLHF 和 SFT 的区别?为什么 SFT 不够? SFT 是模仿标准答案(监督),上限受示范数据限制,只能教「做什么」;RLHF 基于比较/打分优化,能学到超越示范的策略,并能压制不想要的行为(教「不要做什么」)。
Q:奖励模型为什么用排序/比较而非绝对打分? 人类绝对评分主观、不一致、难校准;相对判断(A 和 B 哪个好)稳定可靠。RM 用成对偏好数据(Bradley-Terry)学相对好坏。
Q:PPO 为什么复杂? 需同时加载 4 个模型(策略、参考、奖励、价值),显存翻倍、训练不稳、调参困难。这是 DPO/GRPO 等简化方法出现的动机。
Q:KL 惩罚的作用? 约束新策略别偏离 SFT 太远,防止为迎合 RM 而过度漂移、语言能力退化或 reward hacking。是控制「对齐税」的关键旋钮。
Q:DPO 为什么能跳过奖励模型? 数学上 RLHF 最优策略与奖励有闭式关系,可把奖励隐式表达为「策略与参考模型的对数概率比」,从而把目标改写成直接在偏好三元组上的二分类损失,无需显式 RM 和 RL 循环。
Q:DPO 相比 PPO 的优劣? DPO 简单、稳定、省资源(2 模型、无 RL),是开源主流;但它是离线的,依赖固定偏好数据、无在线探索,PPO 的在线探索在复杂奖励场景上限更高。
Q:GRPO 相比 PPO 的关键改进? 去掉价值模型(Critic),对同一问题采样一组回答、用组内相对得分估计优势,显存/成本几乎减半,特别适合有可验证奖励的推理任务。
Q:什么是 reward hacking 和对齐税? reward hacking 是模型钻 RM 空子骗高分(如冗长讨好);对齐税是对齐导致部分原始能力下降。二者都源于「RM 是真实偏好的代理」这一本质,需 KL 约束、好 RM、适度训练来缓解。
Q:RLAIF 和 Constitutional AI 是什么? RLAIF 用 AI 代替人类标注偏好以降本;Constitutional AI 是其代表——给模型一组「宪法」原则,让它自我批评并修正输出,再用 AI 反馈做 RL,减少对大量人工有害样本标注的依赖。