【论文笔记】Direct Preference Optimization: Your Language Model is Secretly a Reward Model

基本信息

标题: Direct Preference Optimization: Your Language Model is Secretly a Reward Model
作者: Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn
发表: NeurIPS 2024
arXiv: https://arxiv.org/abs/2305.18290

基本信息

摘要

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

现有的获取此类可控性的方法收集人类对模型生成相对质量的标签,并微调无监督LM以符合这些偏好,通常采用基于人类反馈的强化学习(RLHF)。

然而,RLHF是一个复杂且往往不稳定的程序,首先拟合一个反映人类偏好的奖励模型,然后使用强化学习对大型无监督LM进行微调,以最大化这个估计的奖励,同时不偏离原始模型太远。

在本文中,我们引入了RLHF中奖励模型的新参数化方法,这使得我们可以以闭式形式提取相应的最优策略,从而仅使用简单的分类损失解决标准的RLHF问题。

我们称之为直接偏好优化(DPO)的算法是稳定的、性能良好的,并且计算量轻,消除了在微调期间从LM中采样或进行重大超参数调整的需求。

我们的实验表明,DPO可以将LM微调以与人类偏好相一致,甚至比现有方法更好。

值得注意的是,使用DPO的微调在控制生成文本的情感方面超过了基于PPO的RLHF,在摘要和单轮对话中匹配或提高了响应质量,同时实现和训练过程大大简化。

简介

DPO optimizes for human preferences while avoiding reinforcement learning

DPO在避免强化学习的同时优化人类偏好。现有的方法在人类反馈下微调语言模型时,首先将奖励模型拟合到提示和人类偏好对响应的语料库中,然后使用强化学习找到最大化学习奖励的策略。相比之下,DPO直接优化满足偏好的最佳策略,以简单的分类目标为依据,拟合一个隐式奖励模型,其对应的最佳策略可以以封闭形式提取。

预备知识

我们回顾RLHF Pipeline。它通常包括三个阶段:

  1. 监督微调(SFT);
  2. 偏好采样和奖励学习;
  3. RL优化。

SFT

RLHF 通常从使用监督学习在高质量数据上对预训练的语言模型进行微调开始,这些数据用于感兴趣的下游任务(对话、摘要等),以获得一个模型πSFT\pi^{\text{SFT}}

Reward Modelling Phase

在第二阶段,SFT 模型被提示输入xx 以生成答案对(y1,y2)πSFT(yx)(y_1, y_2) \sim \pi^{\text{SFT}}(y \mid x)。然后将这些答案对呈现给人类标注者,他们表达对某个答案的偏好,表示为ywylxy_w \succ y_l \mid x,其中ywy_wyly_l 分别表示在(y1,y2)(y_1, y_2) 中首选和非首选的完成。假设这些偏好是由某个潜在的奖励模型r(y,x)r^*(y, x) 生成的,但我们无法访问该模型。有许多方法用于建模偏好,Bradley-Terry (BT) 模型是一个流行的选择(尽管更通用的 Plackett-Luce 排名模型在我们可以访问多个排序答案的情况下也与该框架兼容)。BT 模型规定人类偏好分布pp^* 可以写成:

p(y1y2x)=exp(r(x,y1))exp(r(x,y1))+exp(r(x,y2))p^*(y_1 \succ y_2 \mid x) = \frac{\exp{(r^*(x, y_1))}}{\exp{(r^*(x, y_1))} + \exp{(r^*(x, y_2))}}

假设可以访问从pp^* 中采样的静态比较数据集D={x(i),yw(i),yl(i)}i=1N\mathcal{D} = \left\{x^{(i)}, y_w^{(i)}, y_l^{(i)}\right\}*{i=1}^N,我们可以参数化一个奖励模型rϕ(x,y)r*\phi(x, y),并通过最大似然估计参数。将问题表述为二分类问题,我们有负对数似然损失:

LR(rϕ,D)=E(x,yw,yl)D[logσ(rϕ(x,yw)rϕ(x,yl))]\mathcal{L}*R(r*\phi, \mathcal{D}) = -\mathbb{E}*{(x, y_w, y_l) \sim \mathcal{D}}[\log \sigma(r*\phi(x, y_w) - r_\phi(x, y_l))]

其中σ\sigma 是逻辑函数。在LMs的上下文中,网络rϕ(x,y)r_\phi(x, y) 通常从SFT模型πSFT(yx)\pi^{\text{SFT}}(y \mid x) 初始化,并在最终的 Transformer 层之上添加一个线性层,产生单个标量预测作为奖励值。为了确保具有较低方差的奖励函数,先前的工作对奖励进行归一化,使得对所有xxEx,yD[rϕ(x,y)]=0\mathbb{E}*{x, y \sim \mathcal{D}}[r*\phi(x, y)] = 0

RL Fine-Tuning Phase

在 RL 阶段,学习到的奖励函数用于为语言模型提供反馈。遵循先前的工作,优化被公式化为:

maxπθExD,yπθ(yx)[rϕ(x,y)]βDKL[πθ(yx)πref(yx)]\max_{\pi_\theta} \mathbb{E}_{x \sim \mathcal{D}, y \sim \pi_\theta(y|x)} \left[ r_\phi(x, y) \right] - \beta \mathbb{D}_{\text{KL}} \left[ \pi_\theta(y \mid x) \parallel \pi_{\text{ref}}(y \mid x) \right]

其中β\beta 是一个控制与基础参考策略πref\pi_{\text{ref}} 偏离程度的参数,即初始 SFT 模型πSFT\pi^{\text{SFT}}。在实践中,语言模型策略πθ\pi_\theta 也初始化为πSFT\pi^{\text{SFT}}。附加的约束条件很重要,因为它防止模型偏离奖励模型准确的分布太远,同时保持生成的多样性并防止模式塌陷到单一高奖励答案。由于语言生成的离散性质,该目标是非可微的,并且通常使用强化学习进行优化。标准方法是构建奖励函数r(x,y)=rϕ(x,y)β(logπθ(yx)logπref(yx))r(x, y) = r_\phi(x, y) - \beta (\log \pi_\theta(y \mid x) - \log \pi_{\text{ref}}(y \mid x)),并使用 PPO 最大化。

Direct Preference Optimization

受到将强化学习算法应用于大规模问题(如微调语言模型)的挑战的启发,我们的目标是推导出一种直接使用偏好进行策略优化的简单方法。与先前的 RLHF 方法不同,这些方法首先学习奖励函数,然后通过 RL 对其进行优化,我们的方法利用了一种特定的奖励模型参数化选择,这使得可以在不经过 RL 训练循环的情况下以闭合形式提取其最优策略。正如我们接下来将详细描述的那样,我们的关键见解是利用从奖励函数到最优策略的解析映射,这使我们能够将奖励函数上的损失函数转换为策略上的损失函数。这种变量变换的方法避免了拟合一个显式的、独立的奖励模型,同时仍然在现有的人类偏好模型(如 Bradley-Terry 模型)下进行优化。本质上,策略网络代表了语言模型和(隐含的)奖励。

Deriving the DPO objective

我们从与先前工作相同的 RL 目标开始,在一般奖励函数rr 下。遵循先前的工作,可以直观地展示 KL 约束下的奖励最大化目标的最优解具有以下形式:

πr(yx)=1Z(x)πref(yx)exp(1βr(x,y))\pi_r(y \mid x) = \frac{1}{Z(x)} \pi_{\text{ref}}(y \mid x) \exp \left( \frac{1}{\beta} r(x, y) \right)

其中Z(x)=yπref(yx)exp(1βr(x,y))Z(x) = \sum_y \pi_{\text{ref}}(y \mid x) \exp \left( \frac{1}{\beta} r(x, y) \right) 是分区函数。即使我们使用 MLE 估计rϕr_\phi 来估计真实奖励函数rr^*,估计分区函数Z(x)Z(x) 仍然是昂贵的,这使得这种表示在实践中难以利用。然而,我们可以重新排列πr(yx)\pi_r(y \mid x) 公式,以用相应的最优策略πr\pi_r,参考策略πref\pi_{\text{ref}} 和未知的分区函数Z()Z(\cdot) 表示奖励函数。具体来说,我们首先对πr(yx)\pi_r(y \mid x) 公式的两边取对数,然后通过一些代数运算得到:

r(x,y)=βlogπr(yx)πref(yx)+βlogZ(x)r(x, y) = \beta \log \frac{\pi_r(y \mid x)}{\pi_{\text{ref}}(y \mid x)} + \beta \log Z(x)

我们可以将这种重新参数化应用于真实奖励rr^* 和相应的最优模型π\pi^*。幸运的是,Bradley-Terry 模型仅依赖于两个完成之间的奖励差异,即p(y1y2x)=σ(r(x,y1)r(x,y2))p^*(y_1 \succ y_2 \mid x) = \sigma(r^*(x, y_1) - r^*(x, y_2))。将r(x,y)r^*(x, y) 代入偏好模型公式p(y1y2x)=exp(r(x,y1))exp(r(x,y1))+exp(r(x,y2))p^*(y_1 \succ y_2 \mid x) = \frac{\exp{(r^*(x, y_1))}}{\exp{(r^*(x, y_1))} + \exp{(r^*(x, y_2))}} 中,分区函数被消去,我们可以仅用最优策略π\pi^* 和参考策略πref\pi_{\text{ref}} 表达人类偏好概率。因此,在 Bradley-Terry 模型下,最优 RLHF 策略π\pi^* 满足偏好模型:

p(y1y2x)=11+exp(βlogπ(y2x)πref(y2x)βlogπ(y1x)πref(y1x))p^*(y_1 \succ y_2 \mid x) = \frac{1}{1 + \exp \left( \beta \log \frac{\pi^*(y_2 \mid x)}{\pi_{\text{ref}}(y_2 \mid x)} - \beta \log \frac{\pi^*(y_1 \mid x)}{\pi_{\text{ref}}(y_1 \mid x)} \right)}

现在我们有了以最优策略而非奖励模型表示的人类偏好数据的概率,我们可以为参数化策略πθ\pi_\theta 制定最大似然目标。类似于奖励建模方法(即LR(rϕ,D)\mathcal{L}*R(r*\phi, \mathcal{D}) 公式),我们的策略目标变为:

LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπθ(ywx)πref(ywx)βlogπθ(ylx)πref(ylx))]\mathcal{L}*{\text{DPO}}(\pi*\theta; \pi_{\text{ref}}) = -\mathbb{E}*{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi*\theta(y_w \mid x)}{\pi_{\text{ref}}(y_w \mid x)} - \beta \log \frac{\pi_\theta(y_l \mid x)}{\pi_{\text{ref}}(y_l \mid x)} \right) \right]

通过这种方式,我们使用一种替代的参数化来拟合隐式奖励,其最优策略仅仅是πθ\pi_\theta。此外,由于我们的过程等价于拟合一个重新参数化的 Bradley-Terry 模型,因此它在偏好数据分布的适当假设下具有一些理论性质,例如一致性。

What does the DPO update do?

为了对 DPO 有一个机制性的理解,分析损失函数LDPO\mathcal{L}_{\text{DPO}} 的梯度是有用的。关于参数θ\theta 的梯度可以写为:

θLDPO(πθ;πref)=βE(x,yw,yl)D[σ(r^θ(x,yl)r^θ(x,yw))higher weight when reward estimate is wrong(θlogπ(ywx)increase likelihood of ywθlogπ(ylx)decrease likelihood of yl)]\nabla_{\theta} \mathcal{L}_{\text{DPO}}(\pi_{\theta}; \pi_{\text{ref}}) = - \beta \mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \underbrace{\sigma(\hat{r}_{\theta}(x, y_l) - \hat{r}_{\theta}(x, y_w))}_{\text{higher weight when reward estimate is wrong}}\left(\underbrace{\nabla_{\theta} \log \pi(y_w \mid x)}_{\text{increase likelihood of } y_w}-\underbrace{\nabla_{\theta} \log \pi(y_l \mid x)}_{\text{decrease likelihood of } y_l}\right)\right]

其中r^θ(x,y)=βlogπθ(yx)πref(yx)\hat{r}_{\theta}(x, y) = \beta \log \frac{\pi_{\theta}(y \mid x)}{\pi_{\text{ref}}(y \mid x)} 是由语言模型πθ\pi_{\theta} 和参考模型πref\pi_{\text{ref}} 隐式定义的奖励。直观上,损失函数LDPO\mathcal{L}_{\text{DPO}} 的梯度增加了首选完成ywy_w 的可能性,并减少了不首选完成yly_l 的可能性。重要的是,示例的权重取决于隐式奖励模型r^θ\hat{r}_{\theta} 对不首选完成的评分有多高,乘以β\beta,即隐式奖励模型对完成排序的错误程度,考虑了 KL 约束的强度。我们的实验表明这种加权的重要性,因为没有加权系数的该方法的朴素版本可能会导致语言模型退化。

DPO outline

通用的 DPO Pipeline 如下:

  1. 对于每个提示xx,采样完成y1,y2πref(x)y_1, y_2 \sim \pi_{\text{ref}}(\cdot \mid x),并使用人类偏好进行标记,以构建离线偏好数据集D={(x(i),yw(i),yl(i))}i=1N\mathcal{D} = \{(x^{(i)}, y_w^{(i)}, y_l^{(i)})\}_{i=1}^N
  2. 优化语言模型πθ\pi_\theta 以最小化给定πref\pi_{\text{ref}}D\mathcal{D} 以及期望的β\beta 下的损失函数LDPO\mathcal{L}_{\text{DPO}}

在实践中,人们希望重用公开可用的偏好数据集,而不是生成样本和收集人类偏好。

由于偏好数据集是使用πSFT\pi^{\text{SFT}} 采样的,因此每当可用时,我们初始化πref=πSFT\pi_{\text{ref}} = \pi^{\text{SFT}}

然而,当πSFT\pi^{\text{SFT}} 不可用时,我们通过最大化首选完成(x,yw)(x, y_w) 的可能性来初始化πref\pi_{\text{ref}},即πref=argmaxπEx,ywD[logπ(ywx)]\pi_{\text{ref}} = \arg\max_\pi \mathbb{E}_{x, y_w \sim \mathcal{D}} [\log \pi(y_w \mid x)]

此过程有助于缓解真实参考分布(不可用)与DPO使用的πref\pi_{\text{ref}} 之间的分布偏移。

实验

Left. The frontier of expected reward vs KL to the reference policy. DPO provides the highest expected reward for all KL values, demonstrating the quality of the optimization. Right. TL;DR summarization win rates vs. human-written summaries, using GPT-4 as evaluator. DPO exceeds PPO’s best-case performance on summarization, while being more robust to changes in the sampling temperature.

Left. Win rates computed by GPT-4 for Anthropic-HH one-step dialogue; DPO is the only method that improves over chosen summaries in the Anthropic-HH test set. Right. Win rates for different sampling temperatures over the course of training. DPO’s improvement over the dataset labels is fairly stable over the course of training for different sampling temperatures.

GPT-4 win rates vs. ground truth summaries for out-of-distribution CNN/DailyMail input articles

Comparing human and GPT-4 win rates and per-judgment agreement on TL;DR summarization samples. Humans agree with GPT-4 about as much as they agree with each other. Each experiment compares a summary from the stated method with a summary from PPO with temperature 0.

讨论

从偏好中学习是一种强大且可扩展的训练有能力的、对齐的语言模型的框架。我们引入了DPO,这是一种简单的训练范式,用于从偏好中训练语言模型,而不使用强化学习。DPO不是将偏好学习问题强制纳入标准的强化学习设置,以便使用现成的强化学习算法,而是识别了语言模型策略与奖励函数之间的映射,这使得可以直接通过简单的交叉熵损失训练语言模型以满足人类偏好,无需强化学习或泛化损失。几乎无需调整超参数,DPO的表现与现有的RLHF算法相似或更好,包括基于PPO的算法;因此,DPO显著降低了从人类偏好中训练更多语言模型的门槛。

局限性与未来工作

我们的结果提出了几个对未来工作具有重要意义的问题。与从显式奖励函数中学习相比,DPO策略如何泛化到分布之外?我们的初步结果表明,DPO策略可以像基于PPO的模型一样进行泛化,但还需要更深入的研究。例如,使用DPO策略进行自标注训练是否可以同样有效地利用未标记提示?在另一个方面,直接偏好优化设置中的奖励过度优化如何体现,图3右边的性能略有下降是否就是这种情况?此外,虽然我们评估了参数量高达60亿的模型,但探索将DPO扩展到数量级更大的最先进模型是一个令人兴奋的未来研究方向。关于评估,我们发现GPT-4计算出的胜率受到提示的影响;未来的工作可能研究从自动化系统中获取高质量判断的最佳方法。最后,DPO在从人类偏好训练语言模型之外还有许多可能的应用,包括在其他模态中训练生成模型。