2025年6月11日

偏好优化 DPO / ORPO / KTO / CPO / GRPO

DPO、ORPO、KTO、CPO、GRPO 这类偏好优化方法,试图在不走完整 PPO-RLHF 复杂流程的前提下,直接用偏好数据或相对比较信号优化模型行为,是当前后训练里最重要的一类工业方法。

知识库大模型训练与对齐llmmodelalignmentdpoorpoktocpogrpo

先说结论

DPO、ORPO、KTO、CPO、GRPO 这类偏好优化方法,试图在不走完整 PPO-RLHF 复杂流程的前提下,直接用偏好数据或相对比较信号优化模型行为,是当前后训练里最重要的一类工业方法。

为什么我会单独记这一篇

经典 RLHF 虽然效果上限高,但在工程上往往过于复杂:

  1. 需要训练奖励模型。
  2. 需要在线采样和 RL 优化。
  3. 训练不稳定,调参困难。
  4. 成本高、链路长。

偏好优化方法的核心目标,就是用更稳定、更简单的方式把“人类更喜欢哪种回答”学进模型。

核心方法

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 更偏后者。

容易踩的坑

  1. 偏好数据分布过窄,模型学出单一风格或谄媚。
  2. chosen / rejected 样本质量不高,导致信号混乱。
  3. 把 DPO 当“万能替代”,忽略其对离线数据质量的高度依赖。
  4. 在 reasoning 任务里只做普通偏好优化,不建组内相对比较。
  5. 只看训练 loss,不做真实任务和安全维度评测。

工程落地时我会怎么做

  1. 如果资源有限,先从 DPO 开始,而不是直接上 PPO-RLHF。
  2. 优先保证偏好数据质量,再谈损失函数细节。
  3. 对推理任务,考虑把 GRPO 或组内比较引入训练与 rerank。
  4. 用公开 benchmark + 私有业务集同时评测,不要只看偏好得分。
  5. 偏好优化之后仍要做回归测试、安全评测和线上观测。

如果要对外讲,可以怎么概括

“DPO 一类方法的核心价值,是把 RLHF 中复杂、昂贵的在线强化学习流程,简化成更稳定的离线偏好优化。DPO 通过相对概率直接学习 chosen 比 rejected 更优,ORPO 和 KTO 进一步降低数据或参考模型要求,而 GRPO 更适合推理训练里的组内相对比较。工程上,如果没有很强的 RL 基础设施,我通常优先 DPO;如果任务明显偏 reasoning,我会重点看 GRPO。”

最后记几条

  1. DPO 是偏好优化工业化的重要分水岭。
  2. DPO 类方法通常比 PPO-RLHF 更稳定、更容易落地。
  3. ORPO、KTO、CPO 是不同约束下的轻量变体。
  4. GRPO 更偏推理训练和组内比较。
  5. 偏好优化成败很大程度取决于数据质量,而不是只看算法名字。

延伸阅读

参考资料

  • DPO (Rafailov et al., 2023)
  • ORPO (Hong et al., 2024)
  • KTO (Ethayarajh et al., 2024)
  • GRPO / reasoning training 相关论文与开源实践