今年其实已经有不少文章例如 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 在推导中省略了分区函数 的显式影响,而这种省略假设分布足够一致,但在实际训练分布稀疏或偏移时,这种假设可能不成立。
分区函数在 PPO 的奖励分布中是显式定义的:
的归一化确保了 是合法概率分布。
DPO 的损失函数则直接消去了:
这种省略在分布不一致时可能导致优化目标的偏差。
分区函数 在 PPO 中起到归一化的作用,确保概率分布 的合法性(概率和为 1)。DPO 直接省略了分区函数,假设 已经足够准确地反映了所有选择的分布。然而,当参考分布 不够准确时,这种省略可能导致对某些选项(例如偏好数据不足的选项)赋予不合理的高权重。
以上推导可能比较抽象,笔者结合一个具体的例子解释一下:
想象你在一家披萨店,菜单上有很多选项:意式经典、夏威夷风味、芝士爆炸、还有一种奇怪的名字“来自外太空的披萨”(OOT:out-of-training)!你很饿,但得做出选择。以下是两种算法对你的帮助:
1.PPO:像一个严格的朋友
PPO 会帮你分析每种披萨的好处和坏处,结合你的历史点餐记录,并告诉你选择芝士爆炸吧,因为它在过去和你口味最接近,还严格控制你不会因为好奇点“外太空披萨”而后悔。它甚至帮你算好了每个披萨的综合评分(保证分数归一),让你知道芝士爆炸的确最好。
2.DPO:像一个太随便的朋友
DPO 则省略了归一化的步骤,直接告诉你:“芝士爆炸比外太空披萨好吃!”但它没考虑到你对“外太空披萨”的偏好其实是基于伪数据(店员随口说外星食材独特),你最终可能因为奇怪的推荐而点了这个离谱的选项,结果发现它只是一个黑炭味的披萨。
在 PPO 的世界里, 确保了我们选择的概率分布是合理且全面的,能避免一些稀有选项(比如 OOD 样本)被错误赋予过高的权重。DPO 省略了这一点,使得参考分布 不够准确时可能产生离谱的偏差。
在披萨店这个例子中,DPO 就是那个“轻率的朋友”,用简化的逻辑说服你尝试奇怪的选择,最终让你后悔。而 PPO 则像那个更靠谱的朋友,帮你在多样的选项中做出经过深思熟虑的决定。
总结
看到这里,答案已经很清楚了:DPO不能干掉PPO,至少现在还不能。
青稞Talk预