强化学习 | 04 Direct Preference Optimization

Computer

TL; DR

PPO首先基于提示和人类偏好数据集训练一个奖励模型,然后使用强化学习找到最大化该奖励模型的策略。

DPO 通过数学推导证明,最优策略 π(yx)\pi^*(y|x) 与参考模型 πref(yx)\pi_{\text{ref}}(y|x) 之间的对数比,与奖励 r(x,y)\displaystyle{ r \left( x , y \right) } 存在直接的解析关系。DPO 利用这一关系,直接构造了一个损失函数,允许模型 πθ\pi_{\theta} 在没有显式奖励模型的情况下,通过最大化高质量回答相对于低质量回答的对数概率比(基于 πref\pi_{\text{ref}}),一步到位地优化策略,从而规避了训练奖励模型和使用复杂 RL 算法带来的训练不稳定性。

DPO 在优化人类偏好的同时避免了强化学习。DPO 通过一个简单的分类目标,直接优化最符合偏好的策略,拟合一个隐式奖励模型,该模型的最优策略可以通过封闭形式直接提取。

方法训练步骤模型训练方式优点缺点
RLHF先训练奖励模型,再使用 PPO 优化策略πθ\displaystyle{ \pi _{ \theta } }, πref\displaystyle{ \pi _{ \text{ref} } }, rϕ\displaystyle{ r _{ \phi } }, Vφ\displaystyle{ V _{ \varphi } }强化学习和在线采样充分利用人类偏好,上限潜力较高资源消耗大、训练不稳定、超参数敏感
DPO直接利用偏好数据训练 Actor 模型πθ\displaystyle{ \pi _{ \theta } }, πref\displaystyle{ \pi _{ \text{ref} } }类似 SFT 监督学习流程简化、训练稳定、资源消耗低性能提升上限可能低于 RLHF

Derive the DPO Objective

这一节主要讲解DPO的推导过程。

Theoretical Analysis of RLHF Objective

在大规模语言模型对齐中,我们希望利用人类反馈强化学习 (RLHF) 来优化模型输出。输入 x\displaystyle{ x } 来自数据集 D\displaystyle{ D },模型生成回答 y\displaystyle{ y }; 待训练的模型记为 π(yx)\displaystyle{ \pi \left( y \mid x \right) },而参考模型记为 πref(yx)\displaystyle{ \pi _{ \text{ref} } \left( y \mid x \right) } (通常为SFT模型),同时引入奖励函数 r(x,y)\displaystyle{ r \left( x , y \right) } 衡量回答质量。在 RLHF-3-Modelling-Human-Feedbacks#RLHF Pipeline 中,我们推导了 RLHF 的目标是

maxπExD,yπ(yx)[r(x,y)]βDKL[π(yx)πref(yx)]\displaystyle{ \max _{ \pi } E _{ x \sim D , y \sim \pi \left( y \mid x \right) } \left[ r \left( x , y \right) \right] - \beta D _{ \text{KL} } \left[ \pi \left( y \mid x \right) \Vert \pi _{ \text{ref} } \left( y \mid x \right) \right] }

其中 β\displaystyle{ \beta } 为调节奖励与参考模型偏差的超参数。利用 KL 散度的定义

DKL(π(yx)πref(yx))=Eyπ(yx)(logπ(yx)πref(yx))\displaystyle{ D _{ \text{KL} } \left( \pi \left( y \mid x \right) \Vert \pi _{ \text{ref} } \left( y \mid x \right) \right) = E _{ y \sim \pi \left( y \mid x \right) } \left( \log \frac{ \pi \left( y \mid x \right) }{ \pi _{ \text{ref} } \left( y \mid x \right) } \right) }

式 (1) 可重写为

maxπExD,yπ(yx)(r(x,y)βlogπ(yx)πref(yx))\displaystyle{ \max _{ \pi } E _{ x \sim D , y \sim \pi \left( y \mid x \right) } \left( r \left( x , y \right) - \beta \log \frac{ \pi \left( y \mid x \right) }{ \pi _{ \text{ref} } \left( y \mid x \right) } \right) }

将上式转换为最小化问题并除以 β\displaystyle{ \beta } 即得

minπExD,yπ(yx)(logπ(yx)πref(yx)1βr(x,y))\displaystyle{ \min _{ \pi } E _{ x \sim D , y \sim \pi \left( y \mid x \right) } \left( \log \frac{ \pi \left( y \mid x \right) }{ \pi _{ \text{ref} } \left( y \mid x \right) } - \frac{ 1 }{ \beta } r \left( x , y \right) \right) }

假设存在一个最优策略分布 π*(yx)\displaystyle{ \pi ^{ \text{*} } \left( y \mid x \right) } 使 (4) 式全局最优,利用拉格朗日乘子法求得最优策略分布满足如下形式。基于变分法,可令

π*(yx)=1Z(x)πref(yx)exp(1βr(x,y))\displaystyle{ \pi ^{ \text{*} } \left( y \mid x \right) = \frac{ 1 }{ Z \left( x \right) } \pi _{ \text{ref} } \left( y \mid x \right) \exp \left( \frac{ 1 }{ \beta } r \left( x , y \right) \right) }

其中配分函数 Z(x)\displaystyle{ Z \left( x \right) } 为了实现最优策略分布的归一化,定义为

Z(x)=yπref(yx)exp(1βr(x,y))\displaystyle{ Z \left( x \right) = \sum _{ y } \pi _{ \text{ref} } \left( y \mid x \right) \exp \left( \frac{ 1 }{ \beta } r \left( x , y \right) \right) }

注意到:

  • Z(x)\displaystyle{ Z \left( x \right) } 对所有可能的 y\displaystyle{ y } 求和,实现归一化,使得 π*(yx)\displaystyle{ \pi ^{ \text{*} } \left( y \mid x \right) } 构成合法的概率分布。
  • Z(x)\displaystyle{ Z \left( x \right) }x\displaystyle{ x } 的函数,与待优化的 Actor 模型 π\displaystyle{ \pi } 无关。

对 (5) 式取对数得到

logπ*(yx)=logπref(yx)+1βr(x,y)logZ(x)\displaystyle{ \log \pi ^{ \text{*} } \left( y \mid x \right) = \log \pi _{ \text{ref} } \left( y \mid x \right) + \frac{ 1 }{ \beta } r \left( x , y \right) - \log Z \left( x \right) }

反推奖励函数,发现其与与最优策略的对数比有关

r(x,y)=β(logπ*(yx)πref(yx)+logZ(x))\displaystyle{ r \left( x , y \right) = \beta \left( \log \frac{ \pi ^{ \text{*} } \left( y \mid x \right) }{ \pi _{ \text{ref} } \left( y \mid x \right) } + \log Z \left( x \right) \right) }

Direct Preference Optimization

这一节很重要。在 PPO 等 RL 方法中,我们通过预先训练一个奖励模型 rϕ\displaystyle{ r _{ \phi } } ,通过梯度方法近似下面的解析解找到该奖励模型条件下的最优策略 π*\displaystyle{ \pi ^{ \text{*} } }

logπθ*(yx)=logπref(yx)+1βrϕ*(x,y)logZ(x)\displaystyle{ \log \pi _{ \theta } ^{ \text{*} } \left( y \mid x \right) = \log \pi _{ \text{ref} } \left( y \mid x \right) + \frac{ 1 }{ \beta } r _{ \phi } ^{ \text{*} } \left( x , y \right) - \log Z \left( x \right) }

DPO 引入了对奖励模型的另一种参数化方法。因为我们最终需要的是这个最优策略,那不妨假设我们能够不依赖奖励模型就找到这样一个最优策略。我们先把要优化的策略参数化,通过找到最优化的策略,导出适合这个最优策略的奖励模型1,即

rθ(x,y)=β(logπθ(yx)πref(yx)+logZ(x))\displaystyle{ r _{ \theta } \left( x , y \right) = \beta \left( \log \frac{ \pi _{ \theta } \left( y \mid x \right) }{ \pi _{ \text{ref} } \left( y \mid x \right) } + \log Z \left( x \right) \right) }

DPO Loss

将上式代入 RLHF-3-Modelling-Human-Feedbacks#Bradley–Terry 与奖励模型训练 的损失函数 ()(\star) 式 ,在成对比较中,对于相同输入 x\displaystyle{ x },两个回答 yw\displaystyle{ y _{ w } }yl\displaystyle{ y _{ l } } 均包含相同的 logZ(x)\displaystyle{ \log Z \left( x \right) } 项,因此在计算奖励差值时,该项会被消去。这样,我们就可以把 RLHF 损失函数简化为只与 πθ\displaystyle{ \pi _{ \theta } } 有关了。

我们最终得到 DPO 的损失函数

minimizeLDPO(πθ,πref)=E(x,yw,yl)D(logσ(βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx)))\displaystyle{ \text{minimize} \quad L _{ \text{DPO} } \left( \pi _{ \theta } , \pi _{ \text{ref} } \right) = - E _{ \left( x , y _{ w } , y _{ l } \right) \sim D } \left( \log \sigma \left( \beta \log \frac{ \pi _{ \theta } \left( y _{ w } \mid x \right) }{ \pi _{ \text{ref} } \left( y _{ w } \mid x \right) } - \beta \log \frac{ \pi _{ \theta } \left( y _{ l } \mid x \right) }{ \pi _{ \text{ref} } \left( y _{ l } \mid x \right) } \right) \right) }

该损失函数针对待训练 Actor 模型 πθ\displaystyle{ \pi _{ \theta } } 而设,通过比较其在高质量回答 yw\displaystyle{ y _{ w } } 与低质量回答 yl\displaystyle{ y _{ l } } 上、相对于参考模型 πref\displaystyle{ \pi _{ \text{ref} } } 的对数概率比来区分好坏回答。

直观地看这个损失函数的合理性:

  • πθ\displaystyle{ \pi _{ \theta } }yw\displaystyle{ y _{ w } } 上的相对概率比远大于 yl\displaystyle{ y _{ l } } 时,σ\displaystyle{ \sigma } 输出更接近 1\displaystyle{ 1 },损失更小;
  • 反之,若 πθ\displaystyle{ \pi _{ \theta } }yl\displaystyle{ y _{ l } } 的相对概率权过大,则损失增加。
  • 参数 β\displaystyle{ \beta } 用于放大或缩小这些对数比的差值,从而调节模型对好坏答案的区分强度。

Pasted-image-20251209175056

LDPO\displaystyle{ \nabla L _{ \text{DPO} } } 来看:

  • 直观地说,损失函数的梯度增加了偏好的回答的概率,并减少了不偏好的回答的概率
  • 权重衡量了隐式奖励模型错误排序的程度,优先学习那些模型做错的的样本,并防止模型在已 经正确的样本上过度优化
  • β是缩放程度,偏离程度,衡量KL距离。不用这个参数,导致模型退化

DPO 的理论贡献

Your Language Model Is Secretly a Reward Model.

  • 无需拟合一个显式的奖励函数
  • 无需执行强化学习 (RL) 来训练策略
  • DPO仅用一个最大似然目标来训练策略
  • DPO并不限制学习的奖励模型的类别,并且允许准确恢复最优策略。

Instability of Actor-Critic Algorithms.

  • DPO能够诊断标准Actor-Critic算法(如PPO)在RLHF中的不稳定性(f不会影响最优策略的最终解析解,但可能导致梯度高方差和不稳定性)
  • DPO重参数化方法将优化问题完全转换到了似然域,消除了对价值和基线的需求

Footnotes

  1. 因为我们最终并不真的需要这样一个奖励模型了,它在这里更多是一个理论分析的概念,所以我们称为「隐式」奖励模型。

链接已复制到剪贴板