一句话定义
DPO(Direct Preference Optimization)通过数学变换把 RLHF 的「奖励模型 + 强化学习」目标重写为一个直接的监督式损失,只用偏好数据与参考模型即可对齐,稳定性与工程复杂度显著优于 PPO 路线。
为什么重要
DPO(2023)把偏好对齐的门槛从「能跑强化学习」降到「能做监督训练」,迅速成为开源社区的主流选择,也改变了学界对「RL 是否必需」的讨论。其推导展示了「你的语言模型本身就是一个隐式奖励模型」这一深刻视角,是近年被引用最多的对齐论文之一。
前置知识
- kp-018(RLHF 与奖励建模:理解其目标函数)
核心概念
- 隐式奖励:DPO 证明在 KL 约束下,最优策略与奖励之间存在解析关系,可反解出奖励的闭式表达。
- DPO 损失:直接提高「偏好回答相对负例的似然比」,用参考模型做归一化。
- 参考模型(Reference Model):通常是 SFT 后的模型,冻结参与归一化,替代了显式 RM。
- IPO / KTO / SimPO 等变体:修正过拟合、放宽成对假设、去掉参考模型等改良方向。
- 与 RLHF 的取舍:DPO 简单稳定,但缺乏在线探索;离线数据质量上限决定效果上限。
原理与机制
RLHF 目标 max E[r] − β·KL 在 KL 约束下有闭式最优解 π*(y) ∝ π_ref(y)·exp(r(y)/β),反解得 r(y) = β·log(π(y)/π_ref(y)) + 常数。把这个「隐式奖励」代入 Bradley-Terry 偏好模型,就得到只含策略与参考模型的对数似然损失——不再需要训练 RM,也不再采样。机制上,DPO 相当于「对比学习」:拉近胜例、推远负例,且 KL 项内建在损失中防止崩塌。局限:纯离线,数据分布外的行为无法被纠正;对偏好数据噪声较敏感。
公式或模型
DPO 损失(Rafailov 等,2023):
直觉:让「胜例相对参考模型的提升」超过「负例的 提升」。
图示
RLHF: 偏好数据 → 训练RM → PPO在线采样 → 策略 (四个模型 + 采样回路)
DPO: 偏好数据 + 冻结参考模型 → 一步监督式损失 → 策略 (两个模型,无采样)
直观类比
RLHF 像雇教练陪练并随堂打分(在线反馈循环);DPO 像「把历史胜负录像做对比分析后直接改动作」——不需要陪练在场,但只能从已有录像里学,新的招数(数据分布外行为)无从发现。
实例或案例
开源生态中大量对话模型用 DPO 或其变体完成偏好阶段(如 Zephyr 项目采用 DPO 路线),原因即工程简单、单机可训;业界也普遍探索 RLHF 与 DPO 的混合配方(先 DPO 后在线迭代,或按能力域选择)。变体 KTO(2024)进一步允许「单条好/坏标注」而非成对数据,降低标注成本。
常见误区
- 「DPO 完全取代 RLHF」:在线 RL 的探索能力在特定场景(长程任务、可验证奖励)不可替代;二者是工具箱中的不同工具。
- 「DPO 一定更稳」:超参 β 与数据质量仍是敏感点,噪声偏好下会放大错误信号。
- 「DPO 训练后参考模型可以删掉」:推理时不需要,但训练过程它必须在场做归一化。
与其他知识点的关系
自测题
- DPO 如何消去显式奖励模型?答案要点:利用 KL 约束下最优策略的闭式解反解奖励为 β·log(π/π_ref),代入偏好模型后 RM 不再出现。
- DPO 的参考模型起什么作用?答案要点:提供归一化基线,把「绝对似然」变成「相对提升」,隐式承载 KL 约束。
- 相比 RLHF,DPO 的两大局限?答案要点:离线无探索(受数据分布限制)、对偏好噪声敏感;在线场景仍需 RL 类方法。
延伸阅读
- Direct Preference Optimization(Rafailov 等,2023)