一句话定义
DPO 用成对的偏好数据(同一个问题的「更好回答」和「更差回答」)直接训练语言模型,让好回答的概率上升、差回答的概率下降。
和 RLHF 的区别
RLHF 需要先训练奖励模型,再用强化学习在线采样优化,流程长且不稳定。DPO 把奖励模型隐式地吸收进语言模型本身,用偏好对构造一个可直接优化的分类式目标,不需要单独的奖励模型,也不需要在线 rollout。
关键机制
- 准备同一个 prompt 下的 chosen / rejected 两条回答。
- 用当前模型和参考模型分别计算两条回答的对数概率。
- 损失只用到策略模型与参考模型的 log-prob 差值,不需要显式奖励分数。
- 目标函数提高 chosen 的相对概率,同时用参考模型约束模型不要偏离太远。
- 系数 β 控制偏好优化强度,过大会过度拟合偏好数据。
优点
- 实现简单,训练稳定,工程链路比 RLHF 短。
- 离线数据即可训练,不依赖在线采样。
- 在不少任务上能达到接近 RLHF 的对齐效果。
局限
- 依赖高质量的偏好对,数据偏差会直接传递。
- 离线方法存在分布偏移,模型可能在训练数据上过度优化。
- 不能完全替代在线强化学习,复杂推理和长程任务上仍有差距。
- 需要一个已经做过 SFT 的起点,否则偏好信号很难生效。
用在哪里
- 已有高质量 chosen/rejected 偏好对,想跳过奖励模型和在线 RL 时。
- 资源有限、需要稳定训练的对齐场景;复杂推理/长程任务仍要评估在线 RL 的必要性。
常见误区
- DPO 不需要偏好数据:恰恰相反,偏好对的质量是核心。
- DPO 只是「换了损失函数」,它改变的还有整个对齐流程和数据形态。