[论文阅读笔记]Direct Preference Optimization: Your Language Model is Secretly a Reward Model

本文介绍了斯坦福大学提出的直接偏好优化(DPO)算法,它简化了基于人类反馈的RLHF过程,通过直接估计政策而非奖励模型,优化语言模型训练。DPO在实验中展示了其有效性和效率提升。
摘要由CSDN通过智能技术生成


[写在开头] 小白第一次在CSDN写博客,希望大家多多支持,后面会不断更新。

1. 摘要
这篇文章是斯坦福在2023年5月提出的工作,由于基于人类反馈的强化学习(RLHF)的复杂性和不稳定性(玄学),论文希望提出一个更加简单轻量且稳定的优化算法。于是,论文通过严格(硬核)的数学推导,提出了直接偏好优化算法(DPO)。
这篇文章的贡献点是,提出了直接偏好优化算法(DPO)。

2. 基于人类反馈的强化学习(RLHF)
RLHF通常包含三个阶段,有监督微调(SFT),奖励模型建模和强化学习微调。

2.1 有监督微调(SFT)
在这一阶段,RLHF旨在于通过有监督学习的方式,利用最大化似然的方法得到一个通用的语言模型 π S F T \pi^{SFT} πSFT 作为后续训练的基础模型。

2.2 奖励模型建模
在得到通用语言模型后 π S F T \pi^{SFT} πSFT 通过设计prompt x x x,我们可以得到一个输出 y 1 、 y 2 y_1、y_2 y1y2 。然而,这两个输出是有好有坏的。根据 Bradley-Terry模型,我们的偏好可以通过一个隐性的奖励模型来表示 r ∗ ( x , y ) r^{*}(x,y) r(x,y)
其中 y 1 y_1 y1 y 2 y_2 y2 好的概率可以被表达为:

p ∗ ( y 1 > y 2 ∣ x ) = e x p ( r ∗ ( x , y 1 ) ) e x p ( r ∗ ( x , y 1 ) ) + e x p ( r ∗ ( x , y 2 ) ) p^{*}(y_1>y_2 | x)=\frac{exp(r^{*}(x,y_1))}{exp(r^{*}(x,y_1))+exp(r^{*}(x,y_2))} p(y1>y2x)=exp(r(x,y1))+exp(r(x,y2))exp(r(x,y1))
根据概率统计的知识,通过采样一系列这样的输出对构成数据集 D = { x i , y w i , y l i } i = 1 N D=\left\{x^i,y_w^i,y_l^i\right\}^N_{i=1} D={xi,ywi,yli}i=1N ,其中 y w 、 y l y_w、y_l ywyl 分别代表好的输出和坏的输出,通过最大化似然方法,我们就可以对奖励模型进行参数估计,得到奖励模型 r ϕ ( x , y ) r_{\phi}(x,y) rϕ(x,y)
于是,在训练中,我们的优化目标就是最小化负对数似然损失,即

L R ( r ϕ , D ) = − E ( x , y w , y l ) ∼ D [ l o g σ ( r ϕ ( x , y w ) − r ϕ ( x , y l ) ) ] L_R(r_{\phi},D)=-E_{(x,y_w,y_l)\sim D}[log \sigma(r_{\phi}(x,y_w)-r_{\phi}(x,y_l))] LR(rϕ,D)=E(x,yw,yl)D[logσ(rϕ(x,yw)rϕ(x,yl))],其中 σ \sigma σ 是 logistic 函数。
训练语言模型时, r ϕ ( x , y ) r_{\phi}(x,y) rϕ(x,y) 通常用 π S F T ( y ∣ x ) \pi^{SFT}(y|x) πSFT(yx) 加一个线性层去初始化。

2.3 强化学习微调
在强化学习微调阶段,我们通过上一阶段学习到的奖励模型给待训练的语言模型提供反馈,训练policy π θ ( x , y ) \pi_{\theta}(x,y) πθ(x,y) ,因此,我们的优化目标是

m a x π θ E x ∼ D , y ∼ π θ ( y ∣ x ) [ r ϕ ( x , y ) ] − β ∗ D K L [ π θ ( y ∣ x ) ∣ ∣ π r e f ( y ∣ x ) ] max_{\pi_{\theta}} E_{x \sim D, y \sim \pi_{\theta}(y|x)}[r_{\phi}(x,y)]-\beta*D_{KL}[\pi_{\theta}(y|x) || \pi_{ref}(y|x)] maxπθExD,yπθ(yx)[rϕ(x,y)]βDKL[πθ(yx)∣∣πref(yx)]
其中 β \beta β 是参数,防止训练得到的 policy 偏离 π r e f \pi_{ref} πref 太远, π r e f \pi_{ref} πref π S F T \pi^{SFT} πSFT
在实际训练中, π θ \pi_{\theta} πθ通常用 π r e f \pi_{ref} πref初始化。

3. 直接偏好优化算法(DPO)
从RLHF的流程上我们可以看出,先训练奖励模型——再利用奖励模型进行policy的强化学习,这种两步走的方式实际上比较繁琐,耗费计算资源。因此,DPO直接省略了奖励模型的建模过程 ( 后面细思一下其实是隐性地包含在了policy的训练中 ) ,如下图所示。
从RLHF第三阶段目标函数出发, m a x π θ E x ∼ D , y ∼ π θ ( y ∣ x ) [ r ϕ ( x , y ) ] − β ∗ D K L [ π θ ( y ∣ x ) ∣ ∣ π r e f ( y ∣ x ) ] max_{\pi_{\theta}} E_{x \sim D, y \sim \pi_{\theta}(y|x)}[r_{\phi}(x,y)]-\beta*D_{KL}[\pi_{\theta}(y|x) || \pi_{ref}(y|x)] maxπθExD,yπθ(yx)[rϕ(x,y)]βDKL[πθ(yx)∣∣πref(yx)]
它的解的形式一定是 π θ ( y ∣ x ) = 1 Z ( x ) π r e f ( y ∣ x ) e x p ( 1 β r ( x , y ) ) \pi_{\theta}(y|x)=\frac{1}{Z(x)} \pi_{ref}(y|x) exp(\frac{1}{\beta} r(x,y)) πθ(yx)=Z(x)1πref(yx)exp(β1r(x,y))
其中 Z ( x ) = ∑ y π r e f ( y ∣ x ) e x p ( 1 β r ( x , y ) ) Z(x)=\sum_y\pi_{ref}(y|x) exp(\frac{1}{\beta} r(x,y)) Z(x)=yπref(yx)exp(β1r(x,y)) 代表分布函数, r ( x , y ) r(x,y) r(x,y) 代表奖励模型。
通过对这个解两边取对数,并整理,可以得到 r ( x , y ) = β l o g π θ ( y ∣ x ) π r e f ( y ∣ x ) + β l o g Z ( x ) r(x,y)=\beta log\frac{\pi_{\theta}(y|x)}{\pi_{ref}(y|x)}+\beta logZ(x) r(x,y)=βlogπref(yx)πθ(yx)+βlogZ(x)
接下来我们就用这条公式去替换奖励函数,从而隐性地把奖励函数消掉。
于是,在 Bradley-Terry偏好模型中, 第一条输出比第二条好的概率就变成了

p ∗ ( y 1 > y 2 ∣ x ) = 1 1 + e x p ( β l o g π θ ( y 2 ∣ x ) π r e f ( y 2 ∣ x ) − β l o g π θ ( y 1 ∣ x ) π r e f ( y 1 ∣ x ) ) p^{*}(y_1>y_2|x)=\frac{1}{1+exp( \beta log\frac{\pi_{\theta}(y_2|x)}{\pi_{ref}(y_2|x)}-\beta log\frac{\pi_{\theta}(y_1|x)}{\pi_{ref}(y_1|x)})} p(y1>y2x)=1+exp(βlogπref(y2x)πθ(y2x)βlogπref(y1x)πθ(y1x))1
在RLHF第二阶段中,我们估计的是奖励函数,换了变量以后,我们其实就变成了直接估计policy,
我们的优化目标同样是最小化负对数似然,但是式子变了,即
在这里插入图片描述

于是,我们相当于在RLHF第二阶段就把policy找出来了,省略掉了奖励函数和RLHF第三阶段的强化学习。

4. 总结与对比
根据对RLHF和DPO的学习我们可以看出,他们的流程分别是这样的。
RLHF:先训一个参考模型,再找一个奖励模型,最后用这个奖励模型去对模型进行强化学习找policy。

DPO:先训一个参考模型,然后找到训练模型的policy。

事实上,从对DPO的学习我们也可以看出,它是RLHF的由果推因,即使用(由奖励函数推出来的)policy反解奖励函数,然后代入Bradley-Terry偏好模型消去奖励函数,得到优化目标。细思一下,其实这个优化目标里隐性地包含了对奖励模型的学习(这一点从损失函数的更新就可以看出),但确实大大简化了流程,不需要强化学习了。

5. 实验
最后是作者做的实验,和几个算法对比,验证DPO算法的有效性。在这里插入图片描述
在这里插入图片描述
最后一个实验是在GPT4上使用DPO算法,并且看看人是否认同GPT4。在这里插入图片描述

以上就是2023年这篇"Direct Preference Optimization: Your Language Model is Secretly a Reward Model" 的阅读笔记,创作不易,希望大家多多关注。

【创作不易,转载请注明出处】

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值