![[DPO]一种不使用强化学习,直接将大规模语言模型与用户偏好相匹配的方法](https://aisholar.s3.ap-northeast-1.amazonaws.com/media/January2024/direct_preference_optimization.png)
[DPO]一种不使用强化学习,直接将大规模语言模型与用户偏好相匹配的方法
三个要点
✔️ 根据用户偏好匹配 LLM 输出需要反映用户反馈
✔️ 传统上,奖励模型是根据用户反馈训练的,大规模语言模型通过强化学习进行微调,以实现奖励最大化(RLHF)
✔️ 建议直接根据用户反馈数据对大规模语言模型进行微调,以实现稳定优化和轻量级计算 (DPO)
Direct Preference Optimization: Your Language Model is Secretly a Reward Model
written by Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn
(Submitted on 29 May 2023 (v1), last revised 13 Dec 2023 (this version, v2))
Comments: Published on arxiv.
Subjects: Machine Learning (cs.LG); Artificial Intelligence (cs.AI); Computation and Language (cs.CL)
code:![]()
![]()
本文所使用的图片要么来自论文、介绍性幻灯片,要么是参考这些图片制作的。
介绍
与 LLM 同时成名的一个术语是 RLHF,它是 Reinforcement Learning from Human Feedback(从人类反馈中强化学习)的缩写,字面意思是通过从人类反馈中强化学习来微调语言模型的技术。
为什么需要这种微调?机器会输出忠实于人类指令的答案,但反过来说,如果没有人类指令,机器也可能无法给出人类想要的答案。
例如,如果指令是最大限度地提高汽车的速度,那么机器就能忠实地提高汽车的速度,因为速度是一个数学上可定义的值,可以定量测量。
然而,汽车是否只有速度才是最重要的?如果汽车速度很快,但摇晃得很厉害怎么办?从人类的角度来看,如果汽车速度很快,但摇晃得很厉害,那么乘坐起来会让人难以忍受。人们会对机器说:"光是快是不够的。有些人可能会对机器产生反感。
如果教学的目的是最大限度地增加趣味性呢?似乎很难用数学方法来定义和衡量趣味性。另一方面,要对两组喜剧演员中哪一组更有趣给出一个相对的评价,这本身就相对容易,无论是否存在大多数人都会同意的客观性。而且,看到眼前的实际产品,说它与自己的预期不符,也是人之常情。因此,获得对产出的直接反馈有助于更接近预期答案。
通过 RLHF,用户可以直接反馈从这些预习指导要求中溢出的用户偏好。
RLHF 与 LLM 同时成名,是因为在向大众部署 RLHF 时,有必要阻止人们指出并纠正 LLM 产生的错误,即所谓的 Halcination,纠正人们认为不符合自然答案的细节,挑出数据中的偏差,以及发表不道德的言论以及有必要阻止人们在被询问时诚实地传播危险和有害信息。
本文介绍的技术是一种基于用户反馈的微调技术,可以提供比 RLHF 更稳定、更轻量级的计算。它在顶级会议 NeurIPS 2023 上被选为前两篇论文(两篇杰出主赛道论文)的亚军(Two Outstanding Main Track Runners-Ups)。
下文将介绍其工作原理和操作方法。
传统 RLHF 与拟议 DPO 配置的比较
传统 RLHF 与拟议 DPO 配置之间的差异如图 1 所示。

常规 RLHF
如图所示,传统的 RLHF 使用最大似然法从偏好数据中估计奖励模型的参数来预测奖励,然后将奖励分配给大规模语言模型的策略(LM 策略)输出(如图所示)。样本完成)分配奖励模型的奖励(标签奖励)。
如此反复,通过强化学习来学习大规模语言模型的策略参数,从而使奖励最大化。在这一点上,我认为如果不说 "策略",而说大规模语言模型的参数是为了最大化奖励而学习,会更容易些,但我认为 "策略 "一词用于强化学习,所以我使用了它。策略是给定状态下行动的概率分布。在这里,状态可以看作是输入 x,行动可以看作是输出 y。
这里的偏好数据是指对于给定的 LLM 输入,两个输出中哪个更好的数据。例如,给定输入 x "为我写一首关于爵士乐历史的诗",从 LLM 中抽取两个输出 y1 和 y2 作为该输入的样本。y1 是用户认为较好的输出,而 (x, y_w, y_l) 则是用户认为不太好的输出。
这些偏好数据被用来训练一个模型,该模型会返回 x 的奖励 r。奖励模型 r_Φ 使用一个称为 Bradley-Terry 模型的模型,其中 y1 比 y2 获得更高奖励的概率被定义为偏好分布 p*=σ(r*(x,y_w)-r*Φ(x,y_l)),其中 σ 是一个 sigmoid 函数,这个 p* r* 被 r_Φ 代替,σ(r_Φ(x,y_w)-r_Φ(x,y_l))进行训练,使奖励模型达到最大值。
既然 LLM 输出的好坏可以作为奖励来评估,那么大规模语言模型的测量值就可以训练成最大化的好坏。不过,我们不仅要优化奖励的预期值,还要在最大化奖励的同时,减少大规模语言模型的原始测量值和更新测量值之间的 KL 发散,使它们之间的距离不会太远。
KL 发散是分布之间的距离度量。由于测量的是概率分布,因此我们使用概率分布的距离测量。这种距离约束的目的是防止模型崩溃。如果大规模语言模型过度拟合用户反馈,那么该模型就会崩溃,即使它能返回用户反馈的首选输出,也无法返回其他输入的错误输出。这只是对 LLM 策略的微调。
那么,为什么要应用强化学习来解决这个具有 KL 发散距离的报酬最大化问题呢? 变压器是 LLM 的基础模型,它的设计与传统的神经网络一样,可以有效地学习大量的模型参数,以便在模型参数发生变化时计算出损失函数的梯度。变压器的设计使损失函数的梯度可以在模型参数变化时计算出来。然而,由于 LMM 的学习奖励和模型参数之间没有已知的可微分关系式,因此无法像神经网络那样利用梯度计算参数优化。
PPO(近端参数优化)是一种强化学习方法,即使在无法计算原始目标函数梯度的情况下也能进行高效优化,是微调 LLM 测量的标准方法。它适用于 LLM 测量的强化学习。
建议的 DPO
拟议的 DPO 是 Direct Preference Optimisation(直接偏好优化)的缩写,顾名思义,其关键点在于直接优化偏好;DPO 的主张是,RLHF 通过强化学习间接进行 LLM 微调,但无需强化学习,如图所示这正是该方法的真正魅力所在,因为它可以直接根据偏好数据对 LLM 进行微调,如图所示,而无需强化学习。
为什么 DPO 提供直接学习?
为什么 DPO 允许直接微调 LLM
DPO 允许直接对 LLM 进行微调的原因在于,它可以得出一个将奖励模型与最优政策联系起来的等式(第 1 点)。这意味着奖励模型和最优对策是等价和可互换的,因此,如果奖励模型有一个损失函数,变量就可以改为对策的损失函数(第 2 点)。DPO 通过最小化政策的损失函数,突然学会了最优策略。
第 1 点:奖励函数与最佳衡量标准的关系式(DPO 用最佳衡量标准表示真正的奖励)
强化学习的优化问题是等式 1。这是一个等式,第一项是奖励模型的输出,第二项是一个约束条件,以确保策略不会发生太大变化。

事实上,根据现有文献,等式 1 的最优解=最优测量方法是下面的等式 2。

等式 2 给出了最优测量值、原始测量值 π_ref 和真实奖励函数 r 之间的关系。
因此,事实上,在现有研究中,存在一个将奖励模型与最优政策联系起来的等式,但这里存在一个问题:Z(x)的估计。即使通过对 r_Φ 的最大似然估计得到了真正的奖励模型,剩下的 Z(x) 也很棘手:Z(x) 被称为分布函数或归一化常数。Z(x) 被称为分布函数或归一化常数,它将概率归一化,使其取值介于 0 和 1 之间,从而使其成为一个概率,因为如果保持不变,当已知的值与概率成正比时,它就不符合概率取值范围在 0 到 1 之间的规则。
基本上,这是一个很难计算的值,因为它需要计算所有与概率成正比的值与可能值的总和。蒙特卡洛法是找到这个值的一种方法。它的原理是,如果从分布中抽取大量样本并求和,就能得到接近真实值的结果,但要提高精确度,计算起来非常耗时。
因此,一旦等式 2 的左侧转化为奖励模型的等式,即等式 3。这样,真正的奖励模型就是最优衡量标准与原始衡量标准之比以及分布函数之和。

第 2 点:改用度量的损失函数,而不是奖励的损失函数(像学习 RLHF 奖励模型一样学习度量)
在此,我们进一步回顾,在 RLHF 中假定的布拉德利-特里模型中,偏好分布 p* 的定义是 σ(r*(x,y_w)-r*(x,y_l)),如果我们用等式 3 代替这个 r*,如下文等式 4 所示,我们会高兴地发现,通过减法,计算起来很麻烦的分布函数消失了。当计算麻烦的分布函数消失而无需计算时,就会发生令人高兴的事情,如下式 4 所示。

同时,由于这与学习 RLHF 中奖励模型的过程相同,我们可以估算出使 p* 最大化的政策模型参数,如公式 5 所示。

因此,在 RLHF 中,偏好分布的参数是 "参数化的奖励模型",现已成功地改为 "参数化的措施";在 RLHF 中,奖励模型的参数是通过优化奖励模型的参数和最小化该损失函数得到的。在 DPO 中,政策参数是通过优化政策参数和最小化该损失函数获得的。这样就不需要强化学习,从而减少了计算量。
本文还认为,现有的强化学习 LLM 优化研究将人类输出作为基线,并对奖励进行归一化以稳定优化,而 DPO 则不需要这种归一化。
评估结果
传统的有限制的飞行任务和无限制的飞行任务的实际评估结果如何?
对传统 RLHF 和 DPO 的情感生成和总结能力的评估结果如图 2 所示。

由于比较方法过多,我们将重点介绍传统的 PPO 和拟议的 DPO,它们的机制迄今为止已进行过比较,以说明数字结果。
图 2 左图显示了情感生成任务(IMDb 情感生成)的评估结果。评估基于电影和电视节目评级数据库,其中 x 是数据库中的视频评论,大规模语言模型必须输出正面情感。在对照实验中,用户可以使用预先训练好的情感分类器来评估情感是否积极。
图 2 左侧图表中的横轴是 KL 发散中原始模型与更新模型之间的距离,纵轴是奖励。在所有 KL 发散中,赭红色的 DPO(Ours)与粉红色的传统 PPO 相比都有更高的回报。
DPO 和 RLHF 优化问题是 KL 发散约束优化问题,主要考察与约束条件之间的权衡是否平衡。理想情况下,如果限制条件放宽(如果 KL 发散增大),需要优化的参数的自由度就会增大,因此奖励就会提高(如果在该自由度范围内存在最优解,那么奖励增长本身就会达到顶点)。
DPO 表明,当限制松动时,奖励会急剧增加。我认为可以说,在给定的自由度范围内,奖励被坚定地最大化了;它比给 RLHF 一个真正的奖励模型时更高。简而言之,RLHF 的奖励模型的训练部分是在理想状态下建立的,因此,即使影响性能的唯一评价是它是否通过强化学习进行了优化,DPO 更好的事实也表明,它的优化效率比强化学习更高。
图 2 的右图显示了 TL;DR 摘要,这是一项利用 Reddit TL;DR(太长;没看的帖子)摘要数据库和人们的偏好进行的评估,其中 x 是 Reddit 论坛帖子,y 是摘要。
在图 2 的右图中,横轴是采样温度(样本温度),纵轴是胜率。采样温度是 LLM 的参数之一,它越大,每个样本得到的响应就越多样化。另一方面,样本温度越小,只有在重复采样后才能得到相似的响应。胜率是 GPT-4 对哪种比较方法的响应更好的评估。
TL;DR 总结表明,无论样本温度如何,建议的 DPO(赭色)都比传统的 PPO(粉色)具有更高的胜率:DPO 在样本温度为 0 时达到峰值,胜率稳步下降,而 DPO 在样本温度低于 1 时保持最高胜率。
最后
与传统的 RLHF 不同,直接偏好优化(DPO)是一种无需强化学习即可利用偏好数据进行微调的技术。在大规模语言建模中,大量数据一直备受关注,但在这项技术中,通过人类思维推导关系式,可以减少机器强化学习的试错过程。看来,这并不是一个用数据学习一切的问题,而是引入了无需使用数据即可由人类逻辑推导出的关系,这很可能会带来更高的效率。换一种说法,是否有可能将现在要求的参数转换成我们真正想要的参数?思考这个问题似乎是有益的。
与本文相关的类别