原文:https://zhuanlan.zhihu.com/p/11913305485
从ChatGPT到Claude,这些模型的成功离不开PPO (Proximal Policy Optimization)的支撑。DPO (Direct Preference Optimization) 则以其
无需奖励建模的简化流程
在学术基准测试中表现优异,DPO号称以更低的计算成本,实现了与PPO相当的偏好对齐效果,然而DPO真的能取代PPO吗?
今年其实已经有不少文章例如 ICLR的 Is DPO Superior to PPO for LLM Alignment? A Comprehensive Study [2] 等文章通过详实的实验做过分析过两者的利弊。然而笔者读完还是十分好奇,DPO的原文曾做过从PPO到DPO的等价推导,那么从底层数学推理上看,究竟DPO在在又在哪些地方存在缺陷?或者说这个等价推导在哪里不等价呢?
于是有了本文的探讨,本文内容完全原创,理解可能存在纰漏,欢迎评论区指出。
首先我们来重温一下从PPO到DPO的推导:
从 PPO 到 DPO 的推导
DPO 的核心思想是通过重参数化将奖励函数隐式包含在策略中,从而避免显式建模奖励函数。具体推导如下:
1.
PPO 的最优策略形式
:在 KL 正则化约束下,PPO 的最优策略可以写为:
其中 Z(x) 是分区函数,用于归一化:
。
2.
重参数化奖励函数
:将上式对数化并重排,可以得到奖励函数的形式:
。
注意,Z(x) 只与 x 有关,因此在计算偏好概率时会被消去。
3.
偏好模型与 DPO 的目标
: 假设偏好数据遵循 Bradley-Terry 模型,其偏好概率为:
。
代入重参数化后的 r(x, y),并消去 Z(x),得到:
。
4.
DPO 的目标函数
: 在最大化偏好数据的对数似然时,DPO 的目标为:
其中
是 sigmoid 函数。
上述推导乍一看没啥问题,但仔细思考两者还是有些gap:
1. Distribution Shift
DPO 假设参考分布
能准确捕捉偏好数据分布,但在实际中,
和偏好分布常存在偏移,导致模型对分布外数据(OOD)表现异常。
DPO 的偏好概率基于 Bradley-Terry 模型和隐式奖励函数:
。
假设
准确反映了偏好分布,但实验表明偏好数据常不覆盖整个分布,
的偏差会放大这种分布偏移,错误地提高 OOD 样本的概率。
也就是说:
DPO
对分布外数据的偏好可能完全依赖
的结构,而
本身在偏好数据不足时表现不稳定。
PPO
通过显式 KL 正则化限制了
偏离
的程度:
,
这种约束在分布外数据中可以抑制对噪声样本的错误优化。
2. Reward Hacking Risk
虽然DPO和PPO都存在Reward hacking的问题, 但DPO 通过隐式建模奖励函数绕过显式的奖励建模,但这一简化可能引入额外隐性的reward hacking问题。
DPO 采用重参数化方式计算隐式奖励:
,
其中
被偏好模型中消去。然而,未显式建模的奖励会导致对分布外样本或偏好数据不足的样本误判。
理论证明表明,DPO 的解集
包含 PPO 的解集
,但会额外引入对 OOD 样本的过度偏好:
。
换句话说:
DPO
的优化过程中,可能找到符合偏好数据但在实际分布上无意义的解,例如通过提升 OOD 样本的概率来最小化损失。
PPO
中,显式奖励函数明确地优化偏好目标,KL 正则化进一步抑制偏移样本的影响,减少 reward hacking 的风险。
3. Lack of Partition Function
这一点我很少在DPO和PPO的相关论文中看到,但实践中感觉还是有不小的区别。DPO 在推导中省略了分区函数
的显式影响,而这种省略假设分布足够一致,但在实际训练分布稀疏或偏移时,这种假设可能不成立。
,