Skip to content

直接偏好优化(DPO)

总结

RLHF 的训练流程复杂而且不稳定;首先我们训练一个奖励模型以反应人类偏好,然后利用强化学习微调语言模型来最大化估计奖励,在过程中约束微调的模型不可以偏离原始模型太多。

本文介绍了一个可用于 RLHF 的参数化隐式奖励模型,让我们可以仅用自监督方法解决标准 RLHF 问题。

imgimg

DPO 优化人类偏好,同时不需要使用强化学习。相比与 PPO, DPO 直接优化最能满足偏好的策略,使用简单的分类目标,拟合一个隐式奖励模型,其相应的最优策略可以以封闭形式提取。DPO 的性能与现有的 RLHF 算法相似或更好,而且有效降低了从人类偏好中训练更多语言模型的障碍;与标准的 RL 设置不同, DPO 确定了语言模型策略和奖励函数之间的映射,这使得可以使用简单的 binary cross-entropy loss 直接训练语言模型以满足人类的偏好,而无需使用强化学习。

1. 摘要

尽管大规模非监督语言模型(LMs)学习了广泛的世界知识和一些推理技能,但由于其训练的完全非监督性质,精确控制它们的行为很困难。现有方法通过收集人类对模型生成内容的相对质量标签,并通过人类反馈的强化学习(RLHF)来微调非监督 LM,使其与这些偏好对齐。然而, RLHF 是一个复杂且经常不稳定的过程,首先拟合一个反映人类偏好的奖励模型,然后使用强化学习微调大型非监督 LM 以最大化这个估计的奖励,同时不会偏离原始模型太远。在本文中,我们引入了 RLHF 中奖励模型的新参数化,它能够以封闭形式提取相应的最优策略,允许我们仅使用简单的分类损失解决标准 RLHF 问题。我们提出的算法,称为直接偏好优化(DPO),稳定、高效且计算成本低,消除了在微调期间从 LM 采样或执行大量超参数调整的需要。我们的实验表明, DPO 可以与现有方法一样好或更好地微调 LM 以符合人类偏好。值得注意的是,使用 DPO 进行微调在控制生成内容的情感方面超过了基于 PPO 的 RLHF,并且在摘要和单轮对话中的响应质量方面匹配或提高了,同时实现起来更简单,训练也更简便。

1.1 引言

在非常大的数据集上训练的大型非监督语言模型(LMs)获得了惊人的能力[11, 7, 40, 8]。然而,这些模型是在人类生成的数据上训练的,人类有着广泛的目标、优先级和技能集。这些目标和技能集中的某些可能并不适合模仿;例如,我们可能希望我们的 AI 编码助手理解常见的编程错误以便纠正它们,然而,在生成代码时,我们希望我们的模型偏向于其训练数据中存在的(可能是罕见的)高质量编码能力。同样,我们可能希望我们的语言模型意识到 50% 的人相信的常见误解,但我们当然不希望模型在查询它的 50% 的情况下声称这个误解是真的!换句话说,从模型非常广泛的知识和能力中选择模型的期望响应和行为对于构建安全、高效和可控的 AI 系统至关重要[26]。虽然现有方法通常使用强化学习(RL)来引导 LMs 与人类偏好对齐,但我们将展示 RL 基础目标可以使用简单的二元交叉熵目标精确优化,从而大大简化偏好学习流程。

在高层次上,现有方法使用代表人类认为安全和有帮助的行为类型的策划人类偏好集,将期望的行为灌输到语言模型中。这种偏好学习阶段发生在对大型文本数据集进行大规模非监督预训练的初始阶段之后。虽然偏好学习的最直接的方法是在人类展示的高质量响应上进行监督微调,但最成功的方法是使用人类(或 AI)反馈的强化学习(RLHF/RLAIF;[12, 2])。RLHF 方法拟合一个奖励模型到人类偏好的数据集上,然后使用 RL 来优化语言模型策略,以产生分配高奖励的响应,而不会过度偏离原始模型。虽然 RLHF 产生了具有令人印象深刻的对话和编码能力的模型,但 RLHF 流程比监督学习要复杂得多,涉及训练多个 LLMs 并在训练循环中从 LM 策略中采样,导致显著的计算成本。

在本文中,我们将展示如何直接优化语言模型以遵守人类偏好,而无需显式奖励建模或强化学习。我们提出了直接偏好优化(DPO),这是一种算法,它隐式地优化与现有 RLHF 算法相同的目标(奖励最大化和 KL 散度约束),但实现简单,训练直接。直观地说, DPO 更新增加了首选响应相对于非首选响应的相对对数概率,但它包含了一个动态的、每个示例的重要性权重,可以防止我们发现使用简单概率比率目标时发生的模型退化。与现有算法一样, DPO 依赖于一个理论偏好模型(如 Bradley-Terry 模型;[5]),该模型衡量给定奖励函数与经验偏好数据的对齐程度。然而,虽然现有方法使用偏好模型来定义偏好损失以训练奖励模型,然后训练一个策略来优化学习到的奖励模型,但 DPO 使用变量变化直接将偏好损失定义为策略的函数。因此,给定一个人类对模型响应的偏好数据集, DPO 可以使用简单的二元交叉熵目标优化策略,为偏好数据拟合一个隐式奖励函数的最优策略。

我们的主要贡献是直接偏好优化(DPO),这是一种简单的无 RL 算法,用于根据偏好训练语言模型。我们的实验表明, DPO 至少与现有方法一样有效,包括基于 PPO 的 RLHF,用于在情感调节、摘要和对话等任务中从偏好中学习,使用的语言模型参数高达 6B。

2. 相关工作

自监督语言模型的规模不断增加,它们学习完成一些任务,无论是零样本[31]还是少样本提示[6, 25, 11]。然而,通过在指令和人类编写的完成内容的数据集上进行微调,它们在下游任务上的表现和与用户意图的一致性可以显著提高[23, 36, 13, 39]。这种“指令调整”过程使大型语言模型(LLMs)能够推广到指令调整集之外的指令,并普遍提高了它们的可用性[13]。尽管指令调整取得了成功,但相对于专家演示,人类对响应质量的判断更容易收集,因此后续工作使用人类偏好的数据集对 LLMs 进行了微调,提高了翻译[18]、摘要[38, 49]、讲故事[49]和指令遵循[26, 32]的熟练程度。这些方法首先优化一个神经网络奖励函数,以与偏好数据集兼容,然后在偏好模型(如 Bradley-Terry 模型[5])下使用强化学习算法(通常是 REINFORCE[45]、近端策略优化(PPO;[37])或变种[32])来微调语言模型,以最大化给定的奖励。与人类反馈的指令遵循的 LLMs 的微调相关的方法,使用人类反馈生成具有目标属性(如安全性或无害性)的额外合成偏好数据[2],仅使用人类对 LLM 注释的文本规范形式的弱监督。这些方法代表了两组工作的融合:一组是使用强化学习训练语言模型以实现各种目标的工作[33, 27, 46],另一组是学习人类偏好的通用方法[12, 19]。尽管使用相对人类偏好具有吸引力,但使用强化学习对大型语言模型进行微调仍然是一个主要的实际挑战;这项工作提供了一种理论上合理的方法,无需 RL 即可优化相对偏好。

在语言环境之外,从偏好中学习策略已在乐队和强化学习设置中进行了研究,并提出了几种方法。使用偏好或行动排名而非奖励的上下文乐队学习被称为上下文对弈乐队(CDB;[48, 14])。在没有绝对奖励的情况下, CDB 的理论分析用冯·诺依曼胜者(von Neumann winner)替换了最优策略的概念,即预期胜率至少为 50% 的策略[14]。然而,在 CDB 设置中,偏好标签是在线给出的,而在从人类偏好中学习时,我们通常从固定的一批离线偏好注释的动作对中学习[47]。类似地,基于偏好的强化学习(PbRL)从由未知的“评分”函数生成的二元偏好中学习,而不是奖励[9, 35]。存在多种 PbRL 算法,包括可以重用离线偏好数据的方法,但通常涉及首先明确估计潜在的评分函数(即奖励模型),然后优化它[16, 9, 12, 34, 19]。我们提出了一种单阶段策略学习方法,直接优化策略以满足偏好。

3. 预备知识

我们回顾了 Ziegler 等人(以及后来的[38, 1, 26])中描述的 RLHF 流程。它通常包括三个阶段: 1)监督微调(SFT); 2)偏好采样和奖励学习; 3) RL 优化。

3.1 SFT:

RLHF 通常以对感兴趣下游任务(对话、摘要等)的高质量数据进行监督学习来微调预训练的 LM 开始,以获得模型 πSFT

3.2 奖励建模阶段:

在第二阶段,使用提示x提示 SFT 模型产生一对答案(y1,y2)πSFT(y|x)。然后,这些答案被呈现给人类标注者,他们表达对一个答案的偏好,表示为ywyl|x,其中ywyl分别表示(y1,y2)中的首选和非首选回答。

假设偏好是由某些潜在的奖励模型r(y,x)生成的,我们无法访问该模型。有多种方法用于建模偏好, Bradley-Terry (BT) [5]模型是一个流行的选择(尽管如果我们可以获得几个排名答案,更一般的 Plackett-Luce 排名模型[30, 21]也与该框架兼容)。BT 模型规定,人类偏好分布p可以写成:

p(y1y2|x)=exp(r(x,y1))exp(r(x,y1))+exp(r(x,y2))

假设我们可以访问来自 p 的比较静态数据集D={x(i),y(i)w,y(i)l}i=1N的样本,我们可以通过最大似然估计参数化奖励模型rϕ(x,y)。将问题框架为二元分类,我们有负对数似然损失:

LR(rϕ,D)=E(x,yw,yl)D[logσ(rϕ(x,yw)rϕ(x,yl))]

其中σ是逻辑函数。在 LMs 的背景下,网络rϕ(x,y)通常从 SFT 模型πSFT(y|x)初始化,顶层增加一个线性层,产生单个标量预测奖励值[49]。为了确保具有较低方差的奖励函数,以前的工作对奖励进行了归一化,使得E(x,y)D[rϕ(x,y)]=0对所有x

3.3 RL 微调阶段:

在 RL 阶段,我们使用学习到的奖励函数为语言模型提供反馈。具体来说,我们构建了以下优化问题:

maxπExD,yπ[rϕ(x,y)βDKL(π(y|x)πref(y|x))]

其中β是一个控制基础模型参考策略πref(即初始 SFT 模型πSFT)的参数。在实践中,语言模型策略πθ也初始化为πSFT。增加的约束很重要,因为它防止模型偏离奖励模型准确的分布,同时保持生成多样性并防止模式崩溃到单一高奖励答案。由于语言生成的离散性,这个目标不是可微分的,通常使用强化学习进行优化。标准方法[49, 38, 1, 26]是构建奖励函数r(x,y)=rϕ(x,y)β(logπθ(y|x)logπref(y|x)),并使用 PPO [37]进行最大化。

4. 直接偏好优化 (Direct Preference Optimization)

在大规模问题上应用强化学习算法,如微调语言模型,面临挑战。我们的目标是派生一种简单的方法,直接使用偏好进行策略优化。与以往的 RLHF 方法不同,这些方法首先学习奖励模型,然后通过强化学习优化,我们的方法利用奖励模型的特定参数化,使我们能够在没有强化学习训练循环的情况下,以封闭形式提取其最优策略。我们的关键洞察是利用从奖励函数到最优策略的分析映射,这使我们能够将奖励函数上的损失函数转换为策略上的损失函数。这种变量替换方法避免了拟合一个显式的独立奖励模型,同时仍然在现有的人类偏好模型(如 Bradley-Terry 模型)下进行优化。本质上,策略网络代表了语言模型和(隐式的)奖励模型。

4.1 推导 DPO 目标

我们从与之前工作相同的 RL 目标开始,即在一般奖励函数 r下的方程(3)。按照之前的工作[29, 28, 17, 15],可以简单地展示方程(3)中的 KL 约束奖励最大化目标的最优解采用以下形式:

π(y|x)=1Z(r)πref(y|x)exp(1βr(x,y))

其中 Z(r)=yπref(y|x)exp(1βr(x,y))是划分函数。完整的推导见附录 A.1。即使我们使用真实奖励函数r的 MLE 估计r^,估计划分函数Z(α)仍然是昂贵的[17, 15],这使得这种表示在实践中难以利用。然而,我们可以重新排列方程(4),以用其对应的最优策略π、参考策略πref和未知的划分函数Z()来表达奖励函数。具体来说,我们首先对方程(4)的两边取对数,然后通过一些代数运算我们得到:

r(x,y)=βlogπ(y|x)πref(y|x)+βlogZ(r)

我们可以将这个重新参数化应用于真实奖励 r和相应的最优模型π。幸运的是, Bradley-Terry 模型仅依赖于两个完成之间的奖励差异,即p(y1>y2|x)=σ(r(x,y1)r(x,y2))。将方程(5)中的重新参数化代入偏好模型方程(1),划分函数会被抵消,我们可以用仅最优策略π和参考策略πref来表达人类偏好概率。因此,在 Bradley-Terry 模型下,最优的 RLHF 策略π满足偏好模型:

p(y1>y2|x)=11+exp(βlogπ(y2|x)πref(y2|x)βlogπ(y1|x)πref(y1|x))

推导见附录 A.2。虽然方程(6)使用了 Bradley-Terry 模型,我们也可以在更一般的 Plackett-Luce 模型[30, 21]下推导出类似的表达式,如附录 A.3 所示。

现在我们已经用最优策略而非奖励模型来表示人类偏好数据的概率,我们可以为参数化策略 πθ制定一个最大似然目标。类似于奖励建模方法(即方程 2),我们的策略目标变为:

LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπθ(yw|x)πref(yw|x)βlogπθ(yl|x)πref(yl|x))]

这样,我们使用替代参数化来拟合一个隐式奖励,其最优策略简单地是 πθ。此外,由于我们的过程等同于拟合一个重新参数化的 Bradley-Terry 模型,它享有某些理论属性,比如在偏好数据分布的适当假设下的一致性[4]。在第 5 节中,我们进一步讨论了 DPO 与其他工作的理论与属性关系。

4.2 DPO 更新的作用是什么?

为了深入理解 DPO,分析损失函数 LDPO的梯度是有用的。梯度相对于参数θ可以写成:

θLDPO(πθ;πref)=βE(x,yw,yl)D[σ(r^θ(x,yl)r^θ(x,yw))(θlogπθ(yw|x)θlogπθ(yl|x))]

其中 r^θ(x,y)=βlogπθ(y|x)πref(y|x)是由语言模型πθ和参考模型πref隐式定义的奖励(更多内容见第 5 节)。

r^θ(x,yw)>r^θ(x,yl), 算式σ(r^θ(x,yl)r^θ(x,yw))越接近 1,反之接近 0,若两者趋近则该权重接近 0.5。

直观上,损失函数 LDPO的梯度增加了首选回答yw的可能性,并减少了非首选回答yl的可能性。

重要的是,示例根据隐式奖励模型 r^θ对非首选完成的评估有多高,按β缩放,即隐式奖励模型对完成的排序有多错误,考虑了 KL 约束的强度。我们的实验表明这种加权的重要性,因为没有加权系数的简单版本的这种方法可能会导致语言模型退化(附录表 3)。

4.3 DPO 概述

一般 DPO 流程如下:

  1. 对于每个提示 x,从参考模型πref(|x)中采样完成y1,y2,用人类偏好标注以构建离线偏好数据集D={(x(i),y(i)w,y(i)l)}i=1N
  2. 优化语言模型 πθ以最小化给定πrefD以及期望的βLDPO

在实践中,人们希望重用公开可用的偏好数据集,而不是生成样本和收集人类偏好。由于偏好数据集是使用 πSFT采样的,我们通常初始化πref=πSFT。然而,当πSFT不可用时,我们通过最大化首选完成(x,yw)的似然来初始化πref,即πref=argmaxπEx,ywD[logπ(yw|x)]。这个过程有助于减少真实参考分布(不可用)和 DPO 使用的πref之间的分布偏移。有关实现和超参数的更多细节可以在附录 B 中找到。

5. DPO 的理论分析

在本节中,我们进一步解释 DPO 方法,提供理论支持,并将 DPO 的优势与用于 RLHF 的标准 Actor-Critic 算法(如 PPO)的问题联系起来。

5.1 语言模型实际上是一个奖励模型

DPO 能够通过单一的最大似然目标来学习策略,而无需拟合显式奖励和执行 RL。注意优化目标方程(5)等同于具有奖励参数化的 Bradley-Terry 模型,其中 r(x,y)=βlogπθ(y|x)πref(y|x),我们优化我们的参数模型πθ,等同于在变量变换下的方程(2)中的奖励模型优化。在本节中,我们将建立这种重新参数化背后的理论,展示它不会限制学习到的奖励模型的类别,并允许精确恢复最优策略。我们首先通过定义奖励函数之间的等价关系来开始。

定义 1. 两个奖励函数 r(x,y)r(x,y)是等价的,当且仅当,对于某个函数f, 满足r(x,y)=r(x,y)+f(x)

很容易看出这确实是一个等价关系,它将奖励函数的集合划分为类别。我们可以陈述以下两个引理:

引理 1. 在 Plackett-Luce 偏好框架下,来自同一类别的两个奖励函数会诱导相同的偏好分布。

引理 2. 来自同一等价类的两个奖励函数在受约束的 RL 问题下诱导相同的最优策略。

证明是直接的,我们将其推迟到附录 A.5。第一个引理是与 Plackett-Luce 模型家族相关的一个众所周知的欠规范问题。由于这种欠规范,我们通常必须施加额外的可识别性约束,以实现方程(2)中 MLE 估计的任何保证。第二个引理表明,来自同一类别的所有奖励函数产生相同的最优策略,因此对于我们的最终目标,我们只对从最优类别中恢复任意奖励函数感兴趣。我们在附录 A.6 中证明了以下定理:

定理 1. 在温和的假设下,所有与 Plackett-Luce (特别是 Bradley-Terry)模型一致的奖励类别都可以使用重新参数化 r(x,y)=βlogπ(y|x)πref(y|x)表示,其中模型π(y|x)和给定的参考模型πref(y|x)

证明概要。考虑任何奖励函数 r(x,y),它诱导了一个相应的最优模型πr(y|x),由方程(4)指定。我们定义投影f为:

f(r;πref,β)(x,y)=r(x,y)βlogyπref(y|x)exp(1βr(x,y))

操作符 f简单地使用πr的划分函数的对数对奖励函数进行归一化。由于添加的归一化项仅是x的函数,f(r;πref,β)(x,y)r(x,y)的等价类中的奖励函数。最后,用方程(5)右侧替换r(这对任何奖励函数都成立),我们有f(r;πref,β)(x,y)=βlogπr(y|x)πref(y|x)。也就是说,投影f产生了一个等价类r的成员,具有所需的形式,我们从所提出的重新参数化中没有失去任何一般性。

我们可以将定理 1 视为指定了 DPO 重新参数化在每个等价类中选择的确切奖励函数,即满足:

yπref(y|x)exp(1βr(x,y))=π(y|x)

的奖励函数,使用定理 1 重新参数化。也就是说,π(y|x)是一个有效的概率分布(概率是正的并且它们的和为 1)。然而,根据方程(4),我们可以看到方程(9)是奖励函数r(x,y)诱导的最优策略的划分函数。DPO 算法的关键洞察是我们可以对 Plackett-Luce (特别是 Bradley-Terry)偏好模型家族施加某些约束,以保留可表示奖励模型的类别,但明确使方程(4)中的最优策略对所有提示x分析上可处理。

5.2 不稳定性的 Actor-Critic 算法

我们还可以使用我们的框架来诊断 RLHF 中使用的标准 Actor-Critic 算法(如 PPO)的不稳定性。我们遵循 RLHF 流程并专注于第 3 节中概述的 RL 微调步骤。我们可以将受约束的 RL 问题与控制作为推断框架[20]联系起来。我们假设一个参数化模型 πθ(y|x)并最小化DKL[πθ(y|x)||π(y|x)],其中π是由奖励函数rϕ(y,x)诱导的最优策略。通过一些代数,这导致优化目标:

maxπθEπθ(y|x)[rϕ(x,y)βlogπref(y|x)exp(1βrϕ(x,y))Z(x)βlogπθ(y|x)πref(y|x)]

这是之前的作品[49, 38, 1, 26]使用 DPO 等价奖励对奖励类别优化的相同目标。在这个设置中,我们可以将 f(rϕ,πref,β)中的归一化项解释为参考策略πref的软价值函数。虽然这个项不影响最优解,但没有它,目标的策略梯度可能有高方差,使学习不稳定。我们可以使用学习的价值函数来适应归一化项,但优化它也可能很困难。或者,以前的工作使用人类完成的基线来归一化奖励,基本上是对归一化项的单次蒙特卡洛估计。相比之下, DPO 重新参数化产生了一个不需要任何基线的奖励函数。

6. 实验

实验聚焦在两个面向:

  1. DPO 如何有效的去权衡,最大化奖励和最小化πθπref的 KL 散度
  2. 评估 DPO 在更大模型和更困难的 RLHF 任务,包括总结和对话。

我们发现在几乎不调整超参数的状况下, DPO 的表现等同或超过基线(PPO-based RLHF)。

6.1 可控情绪生成

img

  • DPO: 论文方法。
  • Unlikelihood: 简单的最大化yw和最小化yl的概似。
  • PPO: 使用奖励函数去学习偏好资料。
  • PPO-GT: 使用真实答案(ground truth) 的奖励函数(仅在可空情绪生成可取得)去学习。
  • Preferred-FT: 在yw上进行监督式学习的微调。

输入是 IMDb 资料集中的电影评论,策略必须产生正面情绪的回应。为了控制评估,我们针对这个实验用预训练的情绪分类器产生了偏好对ywyl。实验显示 DPO 能在获得较高的奖励下,同时保持较低的 KL。

6.2 摘要生成

img

  • PPO: 使用奖励函数去学习偏好资料。
  • SFT: 使用资料集的资料进行自监督微调。
  • Preferred-FT: 使用来自 SFT 模型偏好的 yw 进行自监督微调。
  • GPT-J: Zero-shot prompting。
  • Best of N: 从 SFT 模型中取样 N 个反应,并根据从偏好资料集中学习到的奖励函数传回得分最高的反应。

使用 GPT-4 作为裁判,与人类撰写总结进行 1v1 对战,结果显示 DPO 的表现最佳,并且在较高的温度(sampling temperature)下也保持较佳的表现。

6.3 单轮对话

在单轮对话中,我们在Anthropic HH 数据集的测试集子集上评估不同的方法。

img

  • Preferred-FT: 使用来自通用语言模型偏好的 yw进行自监督微调。
  • Best of N: 从 Preferred-FT 模型中取样 N 个反应,并根据从偏好资料集中学习到的奖励函数传回得分最高的反应。
  • Pythia-2.8B: 2-shot prompting。

DPO 是唯一能在 Anthropic HH 测试集中高效率计算并且改进偏好生成的方法。

总结

DPO 的性能与现有的 RLHF 算法相似或更好,而且有效降低了从人类偏好中训练更多语言模型的障碍;与标准的 RL 设置不同, DPO 确定了语言模型策略和奖励函数之间的映射,这使得可以使用简单的 binary cross-entropy loss 直接训练语言模型以满足人类的偏好,而无需使用强化学习。

7. 附录 A:数学推导

在这部分附录中,我们将提供 DPO 目标的详细数学推导。

7.1 A.1 推导 KL 约束奖励最大化目标的最优解

在这部分附录中,我们将推导方程(4)。类似于方程(3),我们优化以下目标:

maxπExD,yπ[r(x,y)βDKL(π(y|x)πref(y|x))]

在任何奖励函数 r(x,y)、参考模型πref和一个一般非参数策略类下,我们现在有:

maxπExDEyπ(y|x)[r(x,y)βlogπ(y|x)πref(y|x)]=minπExDEyπ(y|x)[logπ(y|x)πref(y|x)1βr(x,y)]=minπExD[logπ(y|x)πref(y|x)logZ(x)1βr(x,y)]

其中我们有划分函数:

Z(x)=yπref(y|x)exp(1βr(x,y))

注意划分函数仅是 x和参考策略πref的函数,但不依赖于策略π。我们现在可以定义

π(y|x)=1Z(x)πref(y|x)exp(1βr(x,y)),

这是一个有效的概率分布,因为对于所有 yπ(y|x)0yπ(y|x)=1。由于Z(x)不是y的函数,我们可以重新组织方程(12)中的最终目标为:

minπExD[DKL(π(y|x)||π(y|x))logZ(x)]

现在,由于 Z(x)不依赖于π,最小值由最小化第一项 KL 散度的策略实现。Gibbs 不等式告诉我们, KL 散度最小化为 0 当且仅当两个分布相同时。因此我们有最优解:

π(y|x)=π(y|x)=1Z(x)πref(y|x)exp(1βr(x,y))

对于所有 xD。这完成了推导。

7.2 A.2 在 Bradley-Terry 模型下推导 DPO 目标

在 Bradley-Terry 偏好模型下推导 DPO 目标是直接的,我们有

p(y1y2|x)=exp(r(x,y1))exp(r(x,y1))+exp(r(x,y2))

在第 4 节中,我们展示了我们可以将(不可用的)真实奖励通过其相应的最优策略表示:

r(x,y)=βlogπ(y|x)πref(y|x)+βlogZ(x)

将方程(17)代入方程(16)我们得到:

p(y1y2|x)=exp(βlogπ(y1|x)πref(y1|x)+βlogZ(x))exp(βlogπ(y1|x)πref(y1|x)+βlogZ(x))+exp(βlogπ(y2|x)πref(y2|x)+βlogZ(x))=11+exp(βlogπ(y2|x)πref(y2|x)βlogπ(y1|x)πref(y1|x))=σ(βlogπ(y1|x)πref(y1|x)βlogπ(y2|x)πref(y2|x))

最后一行是方程(7)中的每个实例损失。

7.3 A.3 在 Plackett-Luce 模型下推导 DPO 目标

Plackett-Luce 模型[30, 21]是对 Bradley-Terry 模型的一个概括,它适用于排名(而不仅仅是成对比较)。与 Bradley-Terry 模型类似, Plackett-Luce 模型规定,当面对一组可能的选择时,人们倾向于选择那些与其潜在奖励函数值成比例的选项。在我们的情境中,当面对提示 x和一组K个答案y1,...,yK时,用户会输出一个排列τ:[K][K],表示他们对答案的排序。Plackett-Luce 模型规定:

p(τ|y1,...,yK,x)=k=1Kexp(r(x,yτ(k)))j=1Kk=jKexp(r(x,yτ(k)))

注意,当 K=2时,方程(18)退化为 Bradley-Terry 模型。然而,对于一般的 Plackett-Luce 模型,我们仍然可以利用方程(5)的结果,用最优策略参数化奖励函数。与附录 A.2 类似,归一化常数Z(x)会被抵消,我们得到:

p(τ|y1,...,yK,x)=k=1Kexp(βlogπ(yτ(k)|x)πref(yτ(k)|x))j=1Kk=jKexp(βlogπ(yτ(k)|x)πref(yτ(k)|x))

类似于第 4 节的方法,如果我们可以获得一组提示和用户指定的排名的数据集 D={τ(i),y(i)1,...,y(i)K,x(i)}i=1N,我们可以使用参数化模型,并通过最大似然来优化这个目标:

LDPO(πθ,πref)=Eτ,y1,...,yK,xD[logk=1Kexp(βlogπθ(yτ(k)|x)πref(yτ(k)|x))j=1Kk=jKexp(βlogπθ(yτ(k)|x)πref(yτ(k)|x))]

这样,我们就可以利用 Plackett-Luce 模型来表达人类偏好数据的概率,并且以最大似然估计来优化参数化策略 πθ

7.4 A.4 推导 DPO 目标的梯度

在本节中,我们推导 DPO 目标的梯度:

θLDPO(πθ;πref)=θE(x,yw,yl)D[logσ(βlogπθ(yl|x)πref(yl|x)βlogπθ(yw|x)πref(yw|x))]

我们可以将方程右边重写为:

θLDPO(πθ;πref)=E(x,yw,yl)D[σ(u)θuσ(u)],

其中 u=βlogπθ(yl|x)πref(yl|x)βlogπθ(yw|x)πref(yw|x)

使用 Sigmoid 函数的性质 σ(x)=σ(x)(1σ(x))σ(x)=1σ(x),我们得到最终梯度的形式:

θLDPO(πθ;πref)=E(x,yw,yl)D[βσ(βlogπθ(yw|x)πref(yw|x)βlogπθ(yl|x)πref(yl|x))(θlogπθ(yw|x)θlogπθ(yl|x))]

使用奖励替换 r^θ(x,y)=βlogπθ(y|x)πref(y|x)我们得到第 4 节中的梯度最终形式。

7.5 A.5 证明引理 1 和 2

在本节中,我们将证明第 5 节中的两个引理。

引理 1 重述. 在 Plackett-Luce 偏好框架下,特别是 Bradley-Terry 框架下,来自同一等价类的两个奖励函数会诱导相同的偏好分布。

证明. 我们说两个奖励函数 r(x,y)r(x,y)来自同一等价类,如果r(x,y)=r(x,y)+f(x)对于某个函数f。我们考虑一般的 Plackett-Luce (Bradley-Terry 模型是K=2的特例),并记pr为由特定奖励函数r(x,y)诱导的排名概率分布。对于任何提示x,答案y1,,yK和排名τ我们有:

pr(τ|y1,,yK,x)=k=1Kexp(r(x,yτ(k)))j=kKexp(r(x,yτ(j)))=k=1Kexp(r(x,yτ(k))+f(x))j=kKexp(r(x,yτ(j))+f(x))=k=1Kexp(f(x))exp(r(x,yτ(k)))exp(f(x))j=kKexp(r(x,yτ(j)))=k=1Kexp(r(x,yτ(k)))j=kKexp(r(x,yτ(j)))=pr(τ|y1,,yK,x),

这完成了证明。

引理 2 重述. 来自同一等价类的两个奖励函数在受约束的 RL 问题下诱导相同的最优策略。

证明. 让我们考虑来自同一类别的两个奖励函数,使得 r(x,y)=r(x,y)+f(x),并且让我们记πrπr为相应的最优策略。根据方程(4),对于所有的x,y我们有:

πr(y|x)=1yπref(y|x)exp(1βr(x,y))πref(y|x)exp(1βr(x,y))=1yπref(y|x)exp(1β(r(x,y)+f(x)))πref(y|x)exp(1β(r(x,y)+f(x)))=exp(1βf(x))yπref(y|x)exp(1βr(x,y))exp(1βf(x))πref(y|x)exp(1βr(x,y))πref(y|x)exp(1βf(x))=1yπref(y|x)exp(1βr(x,y))πref(y|x)exp(1βr(x,y))=πr(y|x),

这完成了证明。

7.6 A.6 证明定理 1

在本节中,我们将扩展定理 1 的结果。

定理 1 重述. 假设我们有一个参考模型,使得 πref(y|x)>0对于所有的提示x和答案y成立,并且参数β>0。所有奖励等价类,如第 5 节所定义,都可以使用重新参数化r(x,y)=βlogπ(y|x)πref(y|x)表示,对于某个模型π(y|x)

证明. 考虑任何奖励函数 r(x,y),它在 KL 约束的 RL 问题下诱导了一个最优模型πr(y|x),其解由方程(4)给出。根据方程(5),当我们对两边进行对数线性化时,我们得到:

r(x,y)=βlogπr(y|x)πref(y|x)+βlogZ(x)

其中 Z(x)=yπref(y|x)exp(1βr(x,y))(注意Z(x)也依赖于奖励函数r)。使用操作符r(x,y)=f(r,πref,β)(x,y)=r(x,y)βlogZ(x),我们可以看到这个新的奖励函数在r的等价类中,

我们有:

r(x,y)=βlogπr(y|x)πref(y|x)

这完成了证明。

我们可以进一步扩展这些结果。我们可以看到,如果 rr是同一类别中的两个奖励函数,那么

f(r,πref,β)(x,y)=βlogπr(y|x)πref(y|x)=βlogπr(y|x)πref(y|x)=f(r,πref,β)(x,y)

其中第二个等式遵循引理 2。我们已经证明了操作符 f将所有来自特定等价类的奖励函数映射到同一个奖励函数。接下来,我们展示对于每个奖励函数的等价类,具有定理 1 中概述的重新参数化的奖励函数是唯一的。

命题 1. 假设我们有一个参考模型,使得 πref(y|x)>0对于所有的提示x和答案y成立,并且参数β>0。那么每个奖励函数的等价类,如第 5 节所定义,都有一个唯一的奖励函数r(x,y),可以重新参数化为r(x,y)=βlogπ(y|x)πref(y|x)对于某个模型π(y|x)

证明. 我们使用反证法进行。假设我们有来自同一类别的两个奖励函数,使得 r(x,y)=r(x,y)+f(x)。此外,假设r(x,y)=βlogπ(y|x)πref(y|x)对于某个模型π(y|x)并且r(x,y)=βlogπ(y|x)πref(y|x)对于某个模型π(y|x),使得ππ。然后我们有:

r(x,y)=r(x,y)+f(x)=βlogπ(y|x)πref(y|x)+f(x)=βlogπ(y|x)exp(1βf(x))πref(y|x)=βlogπ(y|x)πref(y|x)

对于所有的提示 x和完成y。那么我们必须有π(y|x)exp(1βf(x))=π(y|x)。由于这些都是分布,对y求和得到两边的和,我们得到exp(1βf(x))=1并且由于β>0,我们必须有f(x)=0对于所有的x。因此r(x,y)=r(x,y)。这完成了证明。

我们已经展示了每个奖励类别都有一个唯一的奖励函数,可以按照定理 1 中概述的那样表示,该函数由 f(r,πref,β)给出,对于该类别中的任何奖励函数都是如此。

8. 附录 B. DPO 实现细节和超参数

DPO 相对容易实现;下面提供了 DPO 损失的 PyTorch 代码示例:

python
import torch.nn.functional as F

def dpo_loss(pi_logps, ref_logps, yw_idxs, yl_idxs, beta):
    """pi_logps: 策略的对数概率,形状为 (B,)
    ref_logps: 参考模型的对数概率,形状为 (B,)
    yw_idxs: 首选完成的索引,在 [0, B-1] 中,形状为 (T,)
    yl_idxs: 非首选完成的索引,在 [0, B-1] 中,形状为 (T,)
    beta: 控制KL惩罚强度的温度参数
    每对 (yw_idxs[i], yl_idxs[i]) 代表单个偏好对的索引。
    """
    pi_yw_logps, pi_yl_logps = pi_logps[yw_idxs], pi_logps[yl_idxs]
    ref_yw_logps, ref_yl_logps = ref_logps[yw_idxs], ref_logps[yl_idxs]
    pi_logratios = pi_yw_logps - pi_yl_logps
    ref_logratios = ref_yw_logps - ref_yl_logps
    losses = -F.logsigmoid(beta * (pi_logratios - ref_logratios))
    rewards = beta * (pi_logps - ref_logps).detach()
    return losses, rewards

除非另有说明,我们通常使用 β=0.1,批量大小为 64,并且使用学习率为1×106的 RMSprop 优化器作为默认设置。我们从 0 到1×106在 150 步内线性预热学习率。对于 TL;DR 摘要,我们使用β=0.5,其余参数保持不变。

Maintained by Robin