DPO

别名:Direct Preference Optimization / 直接偏好优化

直接用偏好对优化语言模型,跳过奖励模型和在线强化学习。

更新于 2026/11/08
对齐偏好优化训练

一句话定义

DPO 用成对的偏好数据(同一个问题的「更好回答」和「更差回答」)直接训练语言模型,让好回答的概率上升、差回答的概率下降。

和 RLHF 的区别

RLHF 需要先训练奖励模型,再用强化学习在线采样优化,流程长且不稳定。DPO 把奖励模型隐式地吸收进语言模型本身,用偏好对构造一个可直接优化的分类式目标,不需要单独的奖励模型,也不需要在线 rollout。

DPO vs RLHF:跳过显式奖励模型和在线 RL

关键机制

  • 准备同一个 prompt 下的 chosen / rejected 两条回答。
  • 用当前模型和参考模型分别计算两条回答的对数概率。
  • 损失只用到策略模型与参考模型的 log-prob 差值,不需要显式奖励分数。
  • 目标函数提高 chosen 的相对概率,同时用参考模型约束模型不要偏离太远。
  • 系数 β 控制偏好优化强度,过大会过度拟合偏好数据。

优点

  • 实现简单,训练稳定,工程链路比 RLHF 短。
  • 离线数据即可训练,不依赖在线采样。
  • 在不少任务上能达到接近 RLHF 的对齐效果。

局限

  • 依赖高质量的偏好对,数据偏差会直接传递。
  • 离线方法存在分布偏移,模型可能在训练数据上过度优化。
  • 不能完全替代在线强化学习,复杂推理和长程任务上仍有差距。
  • 需要一个已经做过 SFT 的起点,否则偏好信号很难生效。

用在哪里

  • 已有高质量 chosen/rejected 偏好对,想跳过奖励模型和在线 RL 时。
  • 资源有限、需要稳定训练的对齐场景;复杂推理/长程任务仍要评估在线 RL 的必要性。

常见误区

  • DPO 不需要偏好数据:恰恰相反,偏好对的质量是核心。
  • DPO 只是「换了损失函数」,它改变的还有整个对齐流程和数据形态。

相关概念

  • RLHF:DPO 主要对标的经典对齐方案。
  • SFT:DPO 的前置阶段。
  • LoRA:常与 DPO 结合,降低微调成本。