DPO 核心理论推导:参考策略距离约束下的最优策略 + 损失函数设计

Rafailov, Rafael, et al. “Direct preference optimization: Your language model is secretly a reward model.” Advances in Neural Information Processing Systems 36 (2023): 53728-53741.

本文整理了 DPO 论文中两个核心结论的推导,包括参考策略距离约束下的最优策略的形式,以及损失函数的设计。

1. 参考策略距离约束下的最优策略

在强化学习中,特别是在策略优化的背景下,我们经常需要在最大化奖励的同时,保持策略与某个参考策略(如初始策略或专家策略)之间的相似性。这种相似性通常通过KL散度(Kullback-Leibler divergence)来衡量。
最优策略 ∝ 原始模型 × exp ⁡ ( 奖励函数 / β ) 最优策略∝原始模型×\exp(奖励函数/β) 最优策略原始模型×exp(奖励函数/β) 这一公式,实际上是解决了一个带约束的优化问题,即在最大化期望奖励的同时,限制策略与原始模型之间的KL散度。下面我们将详细推导这一公式的证明过程。

定义优化问题

我们希望找到一个策略 π π π,使得在给定状态分布 p ( x ) p(x) p(x) 下,期望奖励最大化,同时保持策略 π π π 与参考策略 π ref π_\text{ref} πref 之间的KL散度不超过某个阈值。数学上,这可以表示为:

max ⁡ π E x ∼ p ( x ) , y ∼ π ( y ∣ x ) [ r ( x , y ) ] s.t. E x ∼ p ( x ) [ D KL ( π ( y ∣ x ) ∥ π ref ( y ∣ x ) ) ] ≤ ϵ \begin{aligned} \max_{\pi} \quad & \mathbb{E}_{x \sim p(x), y \sim \pi(y|x)}[r(x, y)] \\ \text{s.t.} \quad & \mathbb{E}_{x \sim p(x)}[D_{\text{KL}}(\pi(y|x) \| \pi_{\text{ref}}(y|x))] \leq \epsilon \end{aligned} πmaxs.t.Exp(x),yπ(yx)[r(x,y)]Exp(x)[DKL(π(yx)πref(yx))]ϵ

其中, r ( x , y ) r(x, y) r(x,y) 是奖励函数, D KL D_\text{KL} DKL 是KL散度,ε是允许的最大散度。

拉格朗日乘数法

为了求解这个带约束的优化问题,我们可以使用拉格朗日乘数法。引入拉格朗日乘子β,构造拉格朗日函数:

L ( π , β ) = E x ∼ p ( x ) , y ∼ π ( y ∣ x ) [ r ( x , y ) ] − β ( E x ∼ p ( x ) [ D KL ( π ( y ∣ x ) ∥ π ref ( y ∣ x ) ) ] − ϵ ) \mathcal{L}(\pi, \beta) = \mathbb{E}_{x \sim p(x), y \sim \pi(y|x)}[r(x, y)] - \beta \left( \mathbb{E}_{x \sim p(x)}[D_{\text{KL}}(\pi(y|x) \| \pi_{\text{ref}}(y|x))] - \epsilon \right) L(π,β)=Exp(x),yπ(yx)[r(x,y)]β(Exp(x)[DKL(π(yx)πref(yx))]ϵ)

我们的目标是最大化这个拉格朗日函数关于 π π π,同时最小化关于 β β β

对策略π求导

为了找到最优策略π,我们需要对拉格朗日函数关于π求导并令其为零。首先,展开拉格朗日函数:

L ( π , β ) = E x ∼ p ( x ) [ ∑ y π ( y ∣ x ) r ( x , y ) − β ( ∑ y π ( y ∣ x ) log ⁡ π ( y ∣ x ) π ref ( y ∣ x ) − ϵ ) ] \mathcal{L}(\pi, \beta) = \mathbb{E}_{x \sim p(x)} \left[ \sum_{y} \pi(y|x) r(x, y) - \beta \left( \sum_{y} \pi(y|x) \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} - \epsilon \right) \right] L(π,β)=Exp(x)[yπ(yx)r(x,y)β(yπ(yx)logπref(yx)π(yx)ϵ)]

π ( y ∣ x ) π(y|x) π(yx) 求导:

∂ L ∂ π ( y ∣ x ) = r ( x , y ) − β ( log ⁡ π ( y ∣ x ) π ref ( y ∣ x ) + 1 ) \frac{\partial \mathcal{L}}{\partial \pi(y|x)} = r(x, y) - \beta \left( \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} + 1 \right) π(yx)L=r(x,y)β(logπref(yx)π(yx)+1)

令导数为零:

r ( x , y ) − β ( log ⁡ π ( y ∣ x ) π ref ( y ∣ x ) + 1 ) = 0 r(x, y) - \beta \left( \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} + 1 \right) = 0 r(x,y)β(logπref(yx)π(yx)+1)=0

解这个方程,得到:

log ⁡ π ( y ∣ x ) π ref ( y ∣ x ) = r ( x , y ) β − 1 \log \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} = \frac{r(x, y)}{\beta} - 1 logπref(yx)π(yx)=βr(x,y)1

两边取指数:

π ( y ∣ x ) π ref ( y ∣ x ) = exp ⁡ ( r ( x , y ) β − 1 ) \frac{\pi(y|x)}{\pi_{\text{ref}}(y|x)} = \exp\left( \frac{r(x, y)}{\beta} - 1 \right) πref(yx)π(yx)=exp(βr(x,y)1)

整理得到:

π ( y ∣ x ) = π ref ( y ∣ x ) exp ⁡ ( r ( x , y ) β ) ⋅ exp ⁡ ( − 1 ) \pi(y|x) = \pi_{\text{ref}}(y|x) \exp\left( \frac{r(x, y)}{\beta} \right) \cdot \exp(-1) π(yx)=πref(yx)exp(βr(x,y))exp(1)

由于 exp ⁡ ( − 1 ) \exp(-1) exp(1) 是一个常数因子,可以将其吸收进归一化因子 Z ( x ) Z(x) Z(x) 中,因此最优策略可以表示为:

π ∗ ( y ∣ x ) ∝ π ref ( y ∣ x ) exp ⁡ ( r ( x , y ) β ) \pi^*(y|x) \propto \pi_{\text{ref}}(y|x) \exp\left( \frac{r(x, y)}{\beta} \right) π(yx)πref(yx)exp(βr(x,y))

归一化因子

为了确保 π ∗ ( y ∣ x ) π^*(y|x) π(yx) 是一个有效的概率分布,我们需要引入归一化因子Z(x):

Z ( x ) = ∑ y π ref ( y ∣ x ) exp ⁡ ( r ( x , y ) β ) Z(x) = \sum_{y} \pi_{\text{ref}}(y|x) \exp\left( \frac{r(x, y)}{\beta} \right) Z(x)=yπref(yx)exp(βr(x,y))

因此,最优策略的完整表达式为:

π ∗ ( y ∣ x ) = π ref ( y ∣ x ) exp ⁡ ( r ( x , y ) β ) Z ( x ) \pi^*(y|x) = \frac{\pi_{\text{ref}}(y|x) \exp\left( \frac{r(x, y)}{\beta} \right)}{Z(x)} π(yx)=Z(x)πref(yx)exp(βr(x,y))

总结

通过拉格朗日乘数法,我们推导出了在最大化期望奖励的同时,限制与参考策略的KL散度的最优策略。这个最优策略表明,新的策略 π ∗ π^* π 与原始模型 π ref π_\text{ref} πref 成正比,并且通过指数函数调整了奖励函数 r ( x , y ) r(x, y) r(x,y),其中 β β β 是一个控制奖励与原始策略之间权衡的参数。这个公式在强化学习和策略优化中非常有用,因为它提供了一种在探索和利用之间取得平衡的方法,同时保持了策略的稳定性。

2. 损失函数设计

将最优策略与原始模型和奖励函数的关系代入人类偏好的概率模型(如Bradley-Terry模型)后,可以直接通过策略的偏好概率计算损失函数,而无需显式奖励模型的原因在于:通过重新参数化奖励函数,我们可以将偏好概率直接表示为策略的函数,从而将优化问题从奖励空间转移到策略空间。下面是详细的证明过程:

上面已经得到,在带约束的优化问题中,最优策略的形式为:
π ∗ ( y ∣ x ) ∝ π ref ( y ∣ x ) exp ⁡ ( r ( x , y ) β ) \pi^*(y | x) \propto \pi_{\text{ref}}(y | x) \exp\left( \frac{r(x, y)}{\beta} \right) π(yx)πref(yx)exp(βr(x,y)) 其中, π ref ( y ∣ x ) \pi_{\text{ref}}(y | x) πref(yx) 是参考策略, r ( x , y ) r(x, y) r(x,y) 是奖励函数, β \beta β 是控制偏差的参数。

Bradley-Terry模型

Bradley-Terry模型是一种用于建模偏好数据的概率模型,其形式为:
p ( y 1 ≻ y 2 ∣ x ) = exp ⁡ ( r ( x , y 1 ) ) exp ⁡ ( r ( x , y 1 ) ) + exp ⁡ ( r ( x , y 2 ) ) p(y_1 \succ y_2 | x) = \frac{\exp(r(x, y_1))}{\exp(r(x, y_1)) + \exp(r(x, y_2))} p(y1y2x)=exp(r(x,y1))+exp(r(x,y2))exp(r(x,y1))
这里, y 1 ≻ y 2 y_1 \succ y_2 y1y2 表示在给定上下文 x x x时, y 1 y_1 y1 y 2 y_2 y2更受偏好。

代入最优策略

将最优策略的表达式代入Bradley-Terry模型中,我们得到:
p ( y 1 ≻ y 2 ∣ x ) = exp ⁡ ( β log ⁡ π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) ) exp ⁡ ( β log ⁡ π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) ) + exp ⁡ ( β log ⁡ π ∗ ( y 2 ∣ x ) π ref ( y 2 ∣ x ) ) p(y_1 \succ y_2 | x) = \frac{\exp\left( \beta \log \frac{\pi^*(y_1 | x)}{\pi_{\text{ref}}(y_1 | x)} \right)}{\exp\left( \beta \log \frac{\pi^*(y_1 | x)}{\pi_{\text{ref}}(y_1 | x)} \right) + \exp\left( \beta \log \frac{\pi^*(y_2 | x)}{\pi_{\text{ref}}(y_2 | x)} \right)} p(y1y2x)=exp(βlogπref(y1x)π(y1x))+exp(βlogπref(y2x)π(y2x))exp(βlogπref(y1x)π(y1x))
化简后:
p ( y 1 ≻ y 2 ∣ x ) = π ∗ ( y 1 ∣ x ) β / π ref ( y 1 ∣ x ) β π ∗ ( y 1 ∣ x ) β / π ref ( y 1 ∣ x ) β + π ∗ ( y 2 ∣ x ) β / π ref ( y 2 ∣ x ) β p(y_1 \succ y_2 | x) = \frac{\pi^*(y_1 | x)^\beta / \pi_{\text{ref}}(y_1 | x)^\beta}{\pi^*(y_1 | x)^\beta / \pi_{\text{ref}}(y_1 | x)^\beta + \pi^*(y_2 | x)^\beta / \pi_{\text{ref}}(y_2 | x)^\beta} p(y1y2x)=π(y1x)β/πref(y1x)β+π(y2x)β/πref(y2x)βπ(y1x)β/πref(y1x)β

策略的偏好概率

注意到在最优策略下, π ∗ ( y ∣ x ) \pi^*(y | x) π(yx)已经包含了奖励函数的信息,因此我们可以直接用策略的概率比值来表示偏好概率:
p ( y 1 ≻ y 2 ∣ x ) = ( π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) ) β ( π ∗ ( y 1 ∣ x ) π ref ( y 1 ∣ x ) ) β + ( π ∗ ( y 2 ∣ x ) π ref ( y 2 ∣ x ) ) β p(y_1 \succ y_2 | x) = \frac{\left( \frac{\pi^*(y_1 | x)}{\pi_{\text{ref}}(y_1 | x)} \right)^\beta}{\left( \frac{\pi^*(y_1 | x)}{\pi_{\text{ref}}(y_1 | x)} \right)^\beta + \left( \frac{\pi^*(y_2 | x)}{\pi_{\text{ref}}(y_2 | x)} \right)^\beta} p(y1y2x)=(πref(y1x)π(y1x))β+(πref(y2x)π(y2x))β(πref(y1x)π(y1x))β

构建损失函数

基于上述偏好概率,我们可以构建损失函数。对于给定的偏好数据 ( y w , y l ) (y_w, y_l) (yw,yl),其中 y w y_w yw是偏好的响应, y l y_l yl是非偏好的响应,损失函数可以表示为:
L = − E ( x , y w , y l ) ∼ D [ log ⁡ p ( y w ≻ y l ∣ x ) ] \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log p(y_w \succ y_l | x) \right] L=E(x,yw,yl)D[logp(ywylx)]
代入偏好概率的表达式:
L = − E ( x , y w , y l ) ∼ D [ log ⁡ ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β + ( π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) β ] \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \frac{\left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta}{\left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta + \left( \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right)^\beta} \right] L=E(x,yw,yl)D log(πref(ywx)π(ywx))β+(πref(ylx)π(ylx))β(πref(ywx)π(ywx))β

化简损失函数

通过进一步化简,可以得到:
L = − E ( x , y w , y l ) ∼ D [ log ⁡ σ ( β log ⁡ π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) ] \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \sigma\left( \beta \log \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} - \beta \log \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right) \right] L=E(x,yw,yl)D[logσ(βlogπref(ywx)π(ywx)βlogπref(ylx)π(ylx))]
其中, σ \sigma σ是逻辑函数。

详细的化简过程如下:

将偏好概率代入损失函数:
L = − E ( x , y w , y l ) ∼ D [ log ⁡ ( ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β + ( π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) β ) ] \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \left( \frac{\left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta}{\left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta + \left( \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right)^\beta} \right) \right] L=E(x,yw,yl)D log (πref(ywx)π(ywx))β+(πref(ylx)π(ylx))β(πref(ywx)π(ywx))β
利用对数的性质 log ⁡ ( a b ) = log ⁡ a − log ⁡ b \log \left( \frac{a}{b} \right) = \log a - \log b log(ba)=logalogb,可以将上式拆分为:
L = − E ( x , y w , y l ) ∼ D [ log ⁡ ( ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β ) − log ⁡ ( ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β + ( π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) β ) ] \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \left( \left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta \right) - \log \left( \left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta + \left( \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right)^\beta \right) \right] L=E(x,yw,yl)D[log((πref(ywx)π(ywx))β)log((πref(ywx)π(ywx))β+(πref(ylx)π(ylx))β)]
利用对数的性质 log ⁡ a b = b log ⁡ a \log a^b = b \log a logab=bloga,可以进一步化简为:
L = − E ( x , y w , y l ) ∼ D [ β log ⁡ ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) − log ⁡ ( ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β + ( π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) β ) ] \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \beta \log \left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right) - \log \left( \left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta + \left( \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right)^\beta \right) \right] L=E(x,yw,yl)D[βlog(πref(ywx)π(ywx))log((πref(ywx)π(ywx))β+(πref(ylx)π(ylx))β)]
注意到 σ ( z ) = 1 1 + exp ⁡ ( − z ) \sigma(z) = \frac{1}{1 + \exp(-z)} σ(z)=1+exp(z)1,我们可以将分母中的项转换为 sigmoid 的形式。具体来说,令:
z = β log ⁡ π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) z = \beta \log \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} - \beta \log \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} z=βlogπref(ywx)π(ywx)βlogπref(ylx)π(ylx) 则:
σ ( z ) = 1 1 + exp ⁡ ( − z ) = exp ⁡ ( z ) 1 + exp ⁡ ( z ) = ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β ( π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) ) β + ( π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) β \sigma(z) = \frac{1}{1 + \exp(-z)} = \frac{\exp(z)}{1 + \exp(z)} = \frac{\left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta}{\left( \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} \right)^\beta + \left( \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right)^\beta} σ(z)=1+exp(z)1=1+exp(z)exp(z)=(πref(ywx)π(ywx))β+(πref(ylx)π(ylx))β(πref(ywx)π(ywx))β
因此,偏好概率可以表示为:
p ( y w ≻ y l ∣ x ) = σ ( β log ⁡ π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) p(y_w \succ y_l | x) = \sigma\left( \beta \log \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} - \beta \log \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right) p(ywylx)=σ(βlogπref(ywx)π(ywx)βlogπref(ylx)π(ylx))
将上述表达式代入损失函数,得到:
L = − E ( x , y w , y l ) ∼ D [ log ⁡ σ ( β log ⁡ π ∗ ( y w ∣ x ) π ref ( y w ∣ x ) − β log ⁡ π ∗ ( y l ∣ x ) π ref ( y l ∣ x ) ) ] \mathcal{L} = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \sigma\left( \beta \log \frac{\pi^*(y_w | x)}{\pi_{\text{ref}}(y_w | x)} - \beta \log \frac{\pi^*(y_l | x)}{\pi_{\text{ref}}(y_l | x)} \right) \right] L=E(x,yw,yl)D[logσ(βlogπref(ywx)π(ywx)βlogπref(ylx)π(ylx))]

总结

通过将最优策略与原始模型和奖励函数的关系代入Bradley-Terry模型,我们发现可以直接通过策略的偏好概率计算损失函数,而无需显式奖励模型。这种方法不仅简化了优化过程,还保持了对人类偏好的忠实建模,同时避免了奖励建模的复杂性和不稳定性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值