LLM训练手法系列:直接偏好优化DPO

科技   2024-08-24 23:49   四川  

论文原作:arxiv.org/pdf/2305.18290

DPO是否优于RLHF

摘要

尽管大规模无监督语言模型(LMs)能够学习广泛的世界知识和一些推理技能,但由于其训练过程完全无监督,因此很难实现对其行为的精确控制

当前,为了获得这种可控性,已有方法会收集人类对不同模型生成质量的相对评价标签,并通过结合人类反馈的强化学习(RLHF)来微调无监督LM,以符合这些偏好。

然而,RLHF是一个复杂且往往不稳定的过程,首先需要构建一个反映人类偏好的奖励模型,然后使用强化学习来微调大型无监督LM,以最大化这一估计奖励,同时避免偏离原始模型太远。
在本文中,我们提出了一种新的RLHF奖励模型参数化方法,该方法能够以封闭形式提取出相应的最优策略,从而使我们仅通过简单的分类损失就能解决标准的RLHF问题。
我们称这一算法为“直接偏好优化”(DPO),它具有稳定性高、性能优越、计算量轻的优势,消除了在微调过程中从LM采样的需求,也无需进行大量的超参数调整。
实验结果表明,DPO在将LMs与人类偏好对齐方面表现得与现有方法相当或更优特别是,在控制生成内容的情感方面,DPO微调超越了基于PPO的RLHF,同时在摘要和单轮对话的响应质量上也能达到或超过现有水平,且其实施和训练过程更为简便。

1 引言

大型无监督语言模型(LMs),在海量数据集的滋养下,展现出了令人瞩目的能力。然而,这些模型所学习的基础——人类生成的数据,背后却蕴含了复杂多样的目标、优先级和技能集合。在这些多样化的特征中,并非所有都值得我们去追求或模仿
以AI编程助手为例,尽管我们希望它能识别并纠正常见的编程错误,但在生成代码时,我们更期待它能展现出训练数据中那些虽可能稀有却高质量的编程能力。类似地,了解社会上的普遍误解对于语言模型来说或许是有益的,但我们绝不希望它在回应相关查询时,将其中一半误解作为真实信息来传播。简而言之,从模型丰富的知识储备和多元能力中精准筛选出我们期望的响应与行为,是构建安全、高效且可控AI系统的关键所在
当前,尽管强化学习(RL)被广泛应用于引导LMs以符合人类偏好,但这一过程常伴随着复杂模型的构建和大量计算资源的消耗(需训练多个模型并在训练循环中不断从语言模型策略中抽取样本),且难以实现对模型输出的精准把控
因此,探索更为高效、精确的方法来优化和控制无监督语言模型的行为,已成为确保其在特定任务上表现出众,同时避免产生不良后果的迫切需求。
从宏观层面看,现有技术利用精心筛选的人类偏好集合,向语言模型中注入了人们期望的行为模式,这些偏好集映射了人类认定的安全且有益的行为准则。这一过程紧随大型文本数据集上的无监督预训练初始阶段之后。
直接通过监督式微调来模仿人类的高质量响应示范,是偏好学习的一条直接路径。然而,更为成功的一类策略则聚焦于从人类(或AI)的反馈中运用强化学习(RLHF/RLAIF)
本文中,我们详细阐述了如何直接优化语言模型,使之紧密贴合人类偏好,全程无需构建明确的奖励模型或依赖强化学习。为此,我们创新性地提出了直接偏好优化(DPO)算法,该算法虽旨在达成与现有RLHF算法(即带KL散度约束的奖励最大化)相同的目标,但在实施与训练上展现出更高的简洁性与直接性。我们证明了,当前方法中采用的强化学习目标可以通过二元交叉熵目标进行精确优化,这一转变极大地简化了偏好学习的整体流程。
从直观层面来看,DPO通过提升偏好响应相对于非偏好响应的相对对数概率来实现优化,同时,它巧妙地融入了动态、针对每个实例的重要性权重机制,有效规避了采用朴素概率比目标时可能遭遇的模型退化问题。
与业界现存的算法相类似,DPO也依托于理论上的偏好模型(例如Bradley-Terry模型),用以评估特定奖励函数与实际偏好数据之间的契合度。然而,与传统方法通过偏好模型定义偏好损失以训练奖励模型,再基于该模型优化策略的路径不同DPO创新性地利用变量替换技术,直接将偏好损失定义为策略的函数。
得益于这一设计,当给定一组包含人类对不同模型响应偏好的数据集时,DPO能够借助简单的二元交叉熵目标高效地优化策略,最终生成与偏好数据高度匹配、隐含奖励函数的最优策略。

2 基础概念

RLHF通常包括三个阶段:1)有监督微调(SFT);2) 偏好采样与奖励学习;3) 强化学习优化。

SFT阶段:RLHF通常在特定下游任务(如对话、摘要等)的高质量数据上,使用监督学习对预训练的语言模型(LM)进行微调,从而获得SFT模型π【SFT】。

奖励建模阶段:在第二阶段,SFT模型通过提示x生成答案对(y1, y2),这些答案对是从π【SFT】(y | x)中产生的。然后,这些答案对会被呈现给人类标注者,标注者会对其中一个答案表达偏好,表示为y[w] ≻ y[l] | x,其中y[w]和y[l]分别代表在(y1, y2)中被偏好和不被偏好的生成答案。

这些偏好被假设是由某种潜在奖励模型r(y, x)生成的。有多种方法用于模拟偏好,其中Bradley-Terry(BT)模型是一个流行的选择(如果有多个排名答案,可以采用Plackett-Luce排名模型)。根据BT模型,人类偏好分布p可以表示为

假设我们能够访问一个静态的比较数据集D,它由从p*中抽取的样本组成,我们可以参数化一个奖励模型rϕ(x, y),并通过最大似然估计参数,负对数似然如下:

其中σ是逻辑函数(f(x) = 1 / (1 + pow(e, -x)),在语言模型的背景下,网络rϕ(x, y)通常从SFT模型π【SFT】(y | x)初始化,并在最终的变换器层之上添加一个线性层,以产生奖励值的单一标量预测。

RL微调阶段:在强化学习阶段,学习到的奖励函数被用来给语言模型提供反馈。先前的工作把这个优化问题建模成这样:

其中β是一个控制从基础参考策略πref偏离的参数,即初始的SFT模型πSFT。在实践中,语言模型策略πθ也被初始化为πSFT。增加的约束很重要,因为它防止模型偏离奖励模型准确的分布太远,同时保持生成的多样性并防止模式崩溃到单一高奖励答案。

由于语言生成的离散性质,这个目标不是可微分的,通常使用强化学习进行优化。标准方法是构建奖励函数,并使用PPO进行最大化。

3 直接偏好优化
我们的目标是推导出一种直接利用偏好进行策略优化的简单方法。与先前的RLHF方法不同,这些方法先学习奖励,然后通过RL进行优化我们的方法则采用了一种特定的奖励模型参数化选择,使我们能够直接以封闭形式提取其最优策略,无需进行RL训练循环
我们的核心见解在于利用从奖励函数到最优策略的解析映射,这使我们能够将奖励函数上的损失函数转换为策略上的损失函数这种变量替换方法避免了拟合一个显式的、独立的奖励模型,同时仍在现有人类偏好模型(如Bradley-Terry模型)的基础上进行优化。本质上,策略网络同时代表了语言模型和(隐式的)奖励。
DPO主要流程

1) 对于每个提示x,从参考模型πref( y∣x)中采样y1,y2,并通过人工偏好标注来构建离线偏好数据集D={ (x,y[w], y[l]) };

2) 优化语言模型πθ,以在给定的πref、数据集D 和 期望的β 下最小化 LDPO(DPO损失函数)。

DPO损失函数推导
1)RLHF强化学习微调阶段的目标是受KL散度约束的奖励

2)遵循先前的工作,我们可以证明,最大化奖励目标的的最优解具有如下形式:

3)我们对等式4进行重新排列,以将奖励函数表示为其对应的最优策略πr、参考策略πref和未知的配分函数Z(·)的函数。具体来说,我们首先对等式4的两边取对数,然后通过一些代数运算,我们得到:

4)我们可以将这种参数重排应用到真实奖励r∗及其对应的最优模型π∗上。将等式5中的r∗(x,y)的参数重排代入偏好模型等式1中,配分函数将被消去,因此我们可以仅用最优策略π∗和参考策略πref来表达人类偏好概率。

5)既然我们现在有了基于最优策略而非奖励模型的人类偏好数据的概率,我们就可以为参数化策略πθ制定一个最大似然目标,我们的策略目标变为:

DPO更新机制:要从机制上理解DPO,分析损失函数LDPO的梯度是非常有益的。关于参数θ的梯度可以表示为:

总结

从偏好中学习是一个强大且可扩展的框架,用于训练能力强且与人类目标一致的语言模型。我们引入了DPO(直接偏好优化),这是一种无需强化学习的简单训练范式,用于从偏好中训练语言模型。DPO并没有将偏好学习问题强行转化为标准的强化学习设置以使用现成的强化学习算法,而是识别了语言模型策略与奖励函数之间的映射关系,使得语言模型能够直接通过简单的交叉熵损失来满足人类偏好,无需强化学习,也不失一般性。几乎无需调整超参数,DPO的性能即可与现有的RLHF(基于人类反馈的强化学习)算法相媲美,甚至更优,包括基于PPO的算法;因此,DPO显著降低了从人类偏好中训练更多语言模型的门槛。

局限性与未来工作:我们的研究结果为未来工作提出了几个重要问题。与从显式奖励函数中学习相比,DPO策略在分布外的泛化能力如何?我们的初步结果表明,DPO策略在泛化能力上与基于PPO的模型相似,但需要进一步的综合研究。

1)使用DPO策略的自标注训练是否同样能有效利用未标注的提示?

2)另一方面,在直接偏好优化设置中,奖励过度优化是如何表现的?

3)此外,虽然我们评估了参数最多达60亿的模型,但探索将DPO扩展到状态最先进、规模更大的模型(数量级更大)是一个令人兴奋的未来研究方向。

4)在评估方面,我们发现GPT-4计算的胜率受到提示的影响;未来的工作可以研究如何从自动化系统中获得高质量判断的最佳方式。

最后,DPO的应用远不止于从人类偏好中训练语言模型,还包括在其他模式下训练生成模型等多种可能性。

GiantPandaCV
专注于大语言模型,CUDA,编译器,工程部署和优化等多个方向技术分享。我们不仅坚持原创,也规范转载知乎大佬们的高质量博文。希望在传播知识、分享知识的同时能够启发你,在人类通往AGI的道路上互相帮助(・ω\x26lt;)☆
 最新文章