先说结论
DPO、ORPO、KTO、CPO、GRPO 这类偏好优化方法,试图在不走完整 PPO-RLHF 复杂流程的前提下,直接用偏好数据或相对比较信号优化模型行为,是当前后训练里最重要的一类工业方法。
为什么我会单独记这一篇
经典 RLHF 虽然效果上限高,但在工程上往往过于复杂:
- 需要训练奖励模型。
- 需要在线采样和 RL 优化。
- 训练不稳定,调参困难。
- 成本高、链路长。
偏好优化方法的核心目标,就是用更稳定、更简单的方式把“人类更喜欢哪种回答”学进模型。
核心方法
1. DPO:Direct Preference Optimization
- 用偏好对
(chosen, rejected)直接训练模型。 - 核心思想:把 RLHF 的 KL 约束优化问题转成更简单的相对概率优化。
- 直觉上,DPO 让模型提高 preferred response 的相对概率,压低 rejected response 的相对概率。
- 优点:
- 不需要单独训练 RM
- 训练稳定
- 实现简单
- 局限:
- 仍需要参考模型
- 本质是离线偏好学习,对数据质量敏感
2. ORPO:Odds Ratio Preference Optimization
- 在单模型框架里直接做偏好优化。
- 核心卖点是省掉 reference model,进一步降低复杂度。
- 优点:工程更轻。
- 局限:稳定性和效果依然依赖数据与损失设计。
3. KTO:Kahneman-Tversky Optimization
- 不要求严格的 pairwise 偏好对,可以使用更接近“好 / 坏”二值信号的数据。
- 适合偏好数据不够规范、但有正负反馈的场景。
4. CPO
- 也是一类更轻量的偏好优化路线,目标是在保持训练简单的同时利用偏好信号。
- 工程上通常被看作 DPO 家族的补充变体。
5. GRPO:Group Relative Policy Optimization
- 更强调组内相对比较,而不是依赖 critic 网络。
- 在推理模型训练里尤其常见,因为它适合“多候选比较、组内排序”的设定。
- 相比 PPO,GRPO 在工程上更轻,尤其适合 reasoning-style training。
数学直觉
DPO 的核心直觉
RLHF 中最优策略可以写成相对 reference policy 的指数加权形式。DPO 的关键洞察是:
- 在 pairwise 比较下,复杂的配分函数会抵消。
- 最终问题可以转化为一个更稳定的对数几率优化问题。
因此,DPO 不再需要显式训练奖励模型再跑 RL,而是直接在偏好对上优化策略。
方法对比
| 方法 | 是否需要 RM | 是否需要 Reference | 数据形式 | 工程复杂度 | 典型场景 |
|---|---|---|---|---|---|
| PPO-RLHF | 需要 | 需要 | 偏好对 + 在线采样 | 高 | 上限追求 |
| DPO | 不需要 | 需要 | 偏好对 | 中 | 工业主流 |
| ORPO | 不需要 | 不需要 | 偏好对 | 低到中 | 轻量对齐 |
| KTO | 不需要 | 通常需要 | 好 / 坏标签 | 中 | 弱偏好信号 |
| CPO | 不需要 | 不需要或弱依赖 | 偏好信号 | 中 | 轻量变体 |
| GRPO | 不需要 RM,强调组内比较 | 常见需要参考 | 候选组比较 | 中 | 推理训练 |
与 PPO-RLHF 的区别
| 维度 | PPO-RLHF | DPO / ORPO / KTO / CPO / GRPO |
|---|---|---|
| 链路长度 | 长 | 短 |
| 训练稳定性 | 较低 | 通常更高 |
| 奖励模型 | 常需要 | 多数不需要 |
| 在线采样 | 常需要 | 多数离线 |
| 工程复杂度 | 高 | 中或低 |
| 上限 | 可能更高 | 很高,但更依赖数据质量 |
设计时真正要权衡什么
- 上限 vs 工程简单性:PPO-RLHF 理论上限高,DPO 类方法更稳更便宜。
- pairwise 偏好 vs 二值好坏:前者信息更丰富,后者更容易采集。
- 离线优化 vs 在线探索:离线更稳,在线更可能突破局部最优。
- 通用偏好对齐 vs 推理专项训练:GRPO 更偏后者。
容易踩的坑
- 偏好数据分布过窄,模型学出单一风格或谄媚。
- chosen / rejected 样本质量不高,导致信号混乱。
- 把 DPO 当“万能替代”,忽略其对离线数据质量的高度依赖。
- 在 reasoning 任务里只做普通偏好优化,不建组内相对比较。
- 只看训练 loss,不做真实任务和安全维度评测。
工程落地时我会怎么做
- 如果资源有限,先从 DPO 开始,而不是直接上 PPO-RLHF。
- 优先保证偏好数据质量,再谈损失函数细节。
- 对推理任务,考虑把 GRPO 或组内比较引入训练与 rerank。
- 用公开 benchmark + 私有业务集同时评测,不要只看偏好得分。
- 偏好优化之后仍要做回归测试、安全评测和线上观测。
如果要对外讲,可以怎么概括
“DPO 一类方法的核心价值,是把 RLHF 中复杂、昂贵的在线强化学习流程,简化成更稳定的离线偏好优化。DPO 通过相对概率直接学习 chosen 比 rejected 更优,ORPO 和 KTO 进一步降低数据或参考模型要求,而 GRPO 更适合推理训练里的组内相对比较。工程上,如果没有很强的 RL 基础设施,我通常优先 DPO;如果任务明显偏 reasoning,我会重点看 GRPO。”
最后记几条
- DPO 是偏好优化工业化的重要分水岭。
- DPO 类方法通常比 PPO-RLHF 更稳定、更容易落地。
- ORPO、KTO、CPO 是不同约束下的轻量变体。
- GRPO 更偏推理训练和组内比较。
- 偏好优化成败很大程度取决于数据质量,而不是只看算法名字。
延伸阅读
-
人类反馈强化学习RLHF — DPO 简化了哪一部分
-
PPO训练细节 — 经典 RLHF 训练链路
-
对齐方法总览 — 不同对齐范式的整体视角
-
过程奖励与结果奖励 — reasoning 任务里的奖励设计
参考资料
- DPO (Rafailov et al., 2023)
- ORPO (Hong et al., 2024)
- KTO (Ethayarajh et al., 2024)
- GRPO / reasoning training 相关论文与开源实践