简介:DPO偏好优化中,chosen与rejected的概率常同时下降,根源在于其损失函数只约束两者的相对概率差,不保证偏好回答的绝对概率上升。本文拆解该现象的数学成因与实际影响,系统对比“仅相对约束”与“叠加绝对概率约束”两类优化目标在目标结构、生成质量、实现成本上的差异,并给出场景化选型建议与训练监控清单,帮助读者在对齐训练中规避生成质量退化。
在使用 DPO(Direct Preference Optimization,直接偏好优化)进行大模型对齐训练时,一个被反复观察到的现象是:随着训练推进,偏好回答(chosen,记作 y_w)与拒绝回答(rejected,记作 y_l)的绝对对数概率往往同时下降,只是拒绝回答降得更快。表面上,偏好对上的“相对优势”在扩大,训练损失与偏好准确率看起来一切正常;实际上,模型对“好回答”本身的绝对置信度在持续走低,进而可能引发生成质量退化、输出多样性收缩、长文本能力下滑等问题。
理解这一现象,本质上是理解两类偏好优化目标的差异:
两条路线都能“拉开 chosen 与 rejected 的差距”,但对模型整体分布的影响截然不同。本文将围绕这两类目标展开系统对比,帮助读者判断在什么情况下该选哪条路线、切换时需要注意什么。
DPO 的核心思想是绕开显式的奖励模型,直接在偏好对数据上优化策略。其损失函数的示意形式如下:
loss_A = −log σ( β · [ (log πθ(y_w|x) − log π_ref(y_w|x))− (log πθ(y_l|x) − log π_ref(y_l|x)) ] )
其中 π_ref 为参考模型(通常取 SFT 阶段的初始模型),β 为温度系数。可以看出,目标只关心两个“相对参考模型的对数概率”之差,即 s_w − s_l 这个差值,对 s_w、s_l 各自的绝对取值没有任何约束。
这类目标的共同特征是:在保留“拉开相对差距”的项之外,额外引入一个显式的“托底”力量,常见做法包括:
此外,还有一类不依赖参考模型的改进目标,通过改写优化方向来避免概率整体下移,可视为方案B思想的延伸。
两类目标虽然结构不同,但存在大量共同点,这也是它们经常被放在一起比较的原因:
从梯度角度拆解方案A:设 Δ = s_w − s_l,损失对 s_w 的梯度系数为 −β·σ(−βΔ),对 s_l 的梯度系数为 +β·σ(−βΔ)。两者大小相同、方向相反——目标只负责“把差值拉大”,对两个概率各自的绝对水平完全无感。这正是双降现象的数学根源:DPO 的损失函数只约束两者的相对概率差值,并不强制偏好回答的绝对概率必须上升。模型为了拉开差距,完全可能把两者的绝对概率一起压低——只要偏好回答降得比拒绝回答慢,相对优势变大,优化目标就已经达成。
方案A结构单一、超参少(主要是 β 与学习率),一次偏好对前向即可完成计算,工程门槛低。方案B需要维护多个损失项并调权衡系数,部分做法需要额外前向计算,实现与调参成本中等偏高。
方案A下,仅看损失曲线和偏好准确率会严重误判训练状态,必须额外监控 chosen/rejected 的平均对数概率曲线;方案B的约束项本身提供了保护,但仍需监控约束权重与偏好项之间的平衡,避免“托底”变成“压制”。
| 对比维度 | 方案A:仅相对概率约束(DPO为代表) | 方案B:相对+绝对概率双约束 |
|---|---|---|
| 目标函数结构 | 只优化两者相对参考模型的对数概率差 | 差值项外增加 NLL、KL 等绝对水平约束 |
| chosen 绝对概率 | 无保证,训练中可能持续下降 | 存在显式上升或锚定力量 |
| 超参数量 | 少(β、学习率等) | 多(损失权重、惩罚强度等) |
| 实现复杂度 | 低,一次偏好对前向即可 | 中,可能需要额外前向或损失项 |
| 训练稳定性 | 差值易达成,但存在双降与退化风险 | 分布更稳,权重不当会欠拟合偏好 |
| 生成质量影响 | 可能出现似然位移、输出趋同 | 语言建模能力保持更好 |
| 调参成本 | 低 | 中高,需扫描权重系数 |
| 适用场景 | 数据干净、短程微调、快速对齐 | 长周期训练、需保持通用能力、已观测到双降 |
两类目标的示意代码结构差异如下:
# 示意伪代码:两类目标的结构差异s_w = log_p(policy, prompt, chosen) - log_p(ref, prompt, chosen)s_l = log_p(policy, prompt, rejected) - log_p(ref, prompt, rejected)# 方案A:只约束相对差值loss_A = -log_sigmoid(beta * (s_w - s_l))# 方案B:在方案A基础上叠加绝对概率约束nll_chosen = -log_p(policy, prompt, chosen) # 鼓励 chosen 绝对概率上升loss_B = loss_A + lam * nll_chosen # lam 为权衡系数
回到开篇的问题:为什么 DPO 中 chosen/rejected 概率会同时下降?根源在于其损失函数只约束两者的相对概率差值,并不强制偏好回答的绝对概率上升;模型为了拉开差距,完全可能把两者的绝对概率一起压低——只要偏好回答降得比拒绝回答慢,优化目标就已经达成。方案A与方案B的核心差异,正在于“要不要为绝对概率支付约束成本”:方案A简单高效,但把保持生成质量的责任转嫁给了训练监控与早停;方案B通过显式约束换取分布稳定,代价是额外的实现与调参复杂度。两者没有绝对优劣,只有与数据规模、训练时长、业务对生成质量的敏感度相匹配的选择。把“相对差距”与“绝对水平”分开度量、分别看管,是规避对齐训练退化问题的关键实践原则。