发表时间: 2023-05 · arXiv:2305.18290
原文: https://arxiv.org/abs/2305.18290
文章标题:直接偏好优化:你的语言模型秘密地是一个奖励模型
作者/机构:Rafael Rafailov, Archit Sharma, Eric Mitchell, Stefano Ermon, Christopher D. Manning, Chelsea Finn (Stanford University, CZ Biohub)
一句话结论 本文提出了直接偏好优化(DPO)算法,通过将奖励建模与策略优化合二为一,仅用一个简单的分类损失就能直接微调语言模型以对齐人类偏好,在完全舍弃强化学习的前提下取得了媲美甚至超越传统 RLHF 的效果。
要解决什么问题 现有的大规模无监督语言模型虽然具备强大的世界知识和推理能力,但由于训练方式完全无监督,精确控制其生成行为非常困难。当前主流的解决方案是基于人类反馈的强化学习(RLHF),其标准流程分为三步:先进行监督微调,接着拟合一个反映人类偏好的独立奖励模型,最后使用 PPO 等强化学习算法在训练循环中不断从策略模型采样,以最大化估计奖励并约束模型不偏离初始状态。这一机制的卡点在于其极高的复杂度和不稳定性:它不仅需要同时维护和训练多个语言模型,而且在强化学习微调阶段必须持续进行模型采样,这带来了巨大的计算开销。同时,传统 Actor-Critic 算法在优化目标时,策略梯度往往面临高方差的问题,导致训练过程极易崩溃,或者需要繁琐的超参数调优。由于语言生成的离散性,原有的奖励最大化目标不可微,强行将其转化为标准的强化学习设置不仅门槛极高,也限制了对齐技术的普及。
怎么做的 直接偏好优化(DPO)的核心思路是利用奖励函数到最优策略的解析映射,将原本针对奖励函数的损失直接转换为针对策略模型的损失。它之所以能绕开传统 RLHF 的卡点,是因为它通过数学重参数化,证明了在 Bradley-Terry 等偏好模型下,配分函数可以被完全消去,从而无需在训练中进行任何模型采样,也无需拟合独立的奖励模型。具体而言,在带有 KL 散度约束的强化学习目标下,最优策略与奖励函数之间存在解析解。通过代数变换,可以将未知的奖励函数用最优策略、参考策略 $\pi_{ref}$ 以及未知的配分函数表达出来。将这一等价关系代入人类偏好概率模型后,配分函数被巧妙抵消,DPO 从而构建了如下的策略优化目标:$$ \mathcal{L}_{\text{DPO}} = -\mathbb{E}_{(x, y_w, y_l) \sim \mathcal{D}} \left[ \log \sigma \left( \beta \log \frac{\pi_\theta(y_w|x)}{\pi_{ref}(y_w|x)} - \beta \log \frac{\pi_\theta(y_l|x)}{\pi_{ref}(y_l|x)} \right) \right] $$在这个设计中,策略网络 $\pi_\theta$ 同时承担了语言模型和隐式奖励模型的双重职责。更新机制的本质是增加偏好回答 $y_w$ 相对于不偏好回答 $y_l$ 的对数概率。关键在于,其梯度包含一个动态的、逐样本的重要性权重,该权重由隐式奖励模型对回答排序的错误程度以及 KL 约束强度 $\beta$ 共同决定。这种加权机制能有效防止模型在优化过程中发生退化。整个流程只需准备好离线偏好数据集,初始化参考模型,然后直接用上述交叉熵损失进行梯度下降即可完成对齐。
效果如何 实验在三个任务上展开:受控情感生成(基于 gpt2-large 模型)、摘要生成(基于微调过的 GPT-J 模型)和单轮对话(基于 Pythia-2.8B 模型,包含 17 万次对话数据),硬件依托 GPU 集群完成。对比基线涵盖了多种路线:代表零样本能力的 Zero-shot prompting、代表基础监督微调的 SFT 与 Preferred-FT、代表无约束似然最小化的 Unlikelihood、代表传统强化学习路线的 PPO 与 PPO-GT(可访问真实奖励的预言机),以及代表推理期搜索的 Best of N。在量化结果上,DPO 在情感生成任务中展现了极高的优化效率,在相同的 KL 散度下实现了比 PPO 甚至 PPO-GT 更高的真实奖励。在摘要任务中,DPO 微调后的模型对参考摘要的胜率达到 61%,超越了 PPO 的最佳表现(57%),且对采样温度具有更强的鲁棒性。在单轮对话任务中,DPO 是唯一一个在保持高计算效率的同时,性能超越数据集中人类首选回答的方法,其效果甚至媲美计算成本高昂的 Best of 128 基线。此外,将摘要模型零样本迁移到新的 CNN/DailyMail 数据集时,DPO 依然显著优于 PPO。不过作者也承认了该方法的局限性:相比于学习显式的奖励函数,DPO 策略在分布外数据的泛化表现仍需更全面的研究,且奖励过度优化在 DPO 设置下的具体表现尚不明确;在实际生成中,DPO 有时也会输出看似合理但包含事实错误的回答,且自动化评估极易受到提示词的影响。
我们回顾了Ziegler等人【索引51,Fine-tuning language models from human preferences,2020】(以及后来的【索引40,Learning to summarize from human feedback,2022】,【索引1,Training a helpful and harmless assistant with reinforcement learning from human feedback,2022】,【索引28,Training language models to follow instructions with human feedback,2022】)中的RLHF流程。它通常包括三个阶段:1)监督微调(SFT);2)偏好采样和奖励学习;3)强化学习优化。
目标与核心洞见:受强化学习算法在诸如微调语言模型等大规模问题上应用的挑战所驱动,我们的目标是推导一种直接使用偏好进行策略优化的简单方法。与先前的RLHF方法(学习奖励然后通过RL优化)不同,我们的方法利用了一种特定的奖励模型参数化选择,使其最优策略能够以封闭形式提取,而无需RL训练循环。正如我们接下来将详细描述的,我们的关键洞见是利用从奖励函数到最优策略的分析映射,这使我们能够将奖励函数的损失函数转换为策略的损失函数。这种变量替换方法避免了拟合一个显式的、独立的奖励模型,同时仍然在现有的人类偏好模型(如Bradley-Terry模型)下进行优化。实质上,策略网络既代表了语言模型,也代表了(隐式的)奖励。
推导DPO目标:我们从与先前工作相同的RL目标(公式3)开始,考虑一个通用的奖励函数 $r$。遵循先前的工作【索引31,Reinforcement learning by reward-weighted regression for operational space control. In Proceedings of the 24th international conference on Machine learning, 2007】,【索引30,Advantage-weighted regression: Simple and scalable off-policy reinforcement learning. arXiv preprint arXiv:1910.00177, 2019】,【索引19,On reinforcement learning and distribution matching for fine-tuning language models with no catastrophic forgetting. In Advances in Neural Information Processing Systems, 2022】,【索引15,Aligning language models with preferences through f-divergence minimization. In Proceedings of the 40th International Conference on Machine Learning, 2023】,可以很简单地证明,KL约束的奖励最大化目标(公式3)的最优解形式如下:
其中 $Z(x) = \sum_y \pi_{ref}(y|x) \exp(\frac{1}{\beta} r(x, y))$ 是配分函数。完整的推导见附录A.1。即使我们使用真实奖励函数 $r^*$ 的最大似然估计 $r_\phi$,估计配分函数 $Z(x)$ 仍然是昂贵的【索引19,On reinforcement learning and distribution matching for fine-tuning language models with no catastrophic forgetting. In Advances in Neural Information Processing Systems, 2022】,【索引15,Aligning language models with preferences through f-divergence minimization. In Proceedings of the 40th International Conference on Machine Learning, 2023】,这使得该表示在实践中难以利用。然而,我们可以重新排列公式4,用其对应的最优策略 $\pi_r$、参考策略 $\pi_{ref}$ 和未知的配分函数 $Z(\cdot)$ 来表示奖励函数。具体来说,我们首先对公式4的两边取对数,然后通过一些代数运算得到:
将重参数化应用于偏好模型:我们可以将此重参数化应用于真实奖励 $r^*$ 及其对应的最优模型 $\pi^*$。幸运的是,Bradley-Terry模型仅依赖于两个完成之间奖励的差异,即 $p^*(y_1 \succ y_2|x) = \sigma(r^*(x, y_1) - r^*(x, y_2))$。将公式5中 $r^*(x, y)$ 的重参数化代入偏好模型公式1,配分函数被消去,我们可以仅用最优策略 $\pi^*$ 和参考策略 $\pi_{ref}$ 来表示人类偏好概率。因此,在Bradley-Terry模型下,最优的RLHF策略 $\pi^*$ 满足偏好模型:
推导过程在附录A.2中。虽然公式6使用了Bradley-Terry模型,我们也可以在更通用的Plackett-Luce模型【索引32,The analysis of permutations. Journal of the Royal Statistical Society. Series C (Applied Statistics), 1975】,【索引23,Individual choice behavior: A theoretical analysis. Courier Corporation, 2012】下推导出类似的表达式,如附录A.3所示。
DPO的损失函数:现在我们已经用最优策略而不是奖励模型来表示人类偏好数据的概率,我们可以为参数化策略 $\pi_\theta$ 构建一个最大似然目标。类似于奖励建模方法(即公式2),我们的策略目标变为:
通过这种方式,我们使用一种替代的参数化方法来拟合一个隐式奖励,其最优策略就是 $\pi_\theta$。此外,由于我们的过程等同于拟合一个重参数化的Bradley-Terry模型,它享有某些理论特性,例如在偏好数据分布的适当假设下的收敛性【索引4,Generalized results for the existence and consistency of the MLE in the Bradley-Terry-Luce model. International Conference on Machine Learning, 2022】。在第5节中,我们进一步讨论DPO与其他工作相关的理论特性。
DPO更新的机制:为了从机制上理解DPO,分析损失函数 $\mathcal{L}_{\text{DPO}}$ 的梯度是很有用的。关于参数 $\theta$ 的梯度可以写成:
其中 $\hat{r}_\theta(x, y) = \beta \log \frac{\pi_\theta(y|x)}{\pi_{ref}(y|x)}$ 是由语言模型 $\pi_\theta$ 和参考模型 $\pi_{ref}$ 隐式定义的奖励(更多细节在第5节)。直观上,损失函数 $\mathcal{L}_{\text{DPO}}$ 的梯度增加了偏好完成 $y_w$ 的似然性,并降低了不偏好完成 $y_l$ 的似然性。重要的是,样本的权重取决于隐式奖励模型 $\hat{r}_\theta$ 对不偏好完成的评分高出多少,并由 $\beta$ 缩放,即隐式奖励模型对完成排序的错误程度,同时考虑了KL约束的强度。我们的实验表明这种加权的重要性,因为没有加权系数的朴素版本方法可能导致语言模型退化(附录表3)。
DPO流程概述:通用的DPO流程如下:1) 对于每个提示 $x$,从 $\pi_{ref}(\cdot | x)$ 中采样完成 $y_1, y_2$,并用人类偏好进行标注,以构建离线偏好数据集 $\mathcal{D} = \{x^{(i)}, y_w^{(i)}, y_l^{(i)}\}_{i=1}^N$。2) 针对给定的 $\pi_{ref}$、$\mathcal{D}$ 和期望的 $\beta$,优化语言模型 $\pi_\theta$ 以最小化 $\mathcal{L}_{\text{DPO}}$。在实践中,人们希望重用公开可用的偏好数据集,而不是生成样本和收集人类偏好。由于偏好数据集是使用 $\pi^{SFT}$ 采样的,所以当 $\pi^{SFT}$ 可用时,我们初始化 $\pi_{ref} = \pi^{SFT}$。然而,当 $\pi^{SFT}$ 不可用时,我们通过最大化偏好完成 $(x, y_w)$ 的似然来初始化 $\pi_{ref}$,即 $\pi_{ref} = \arg\max_\pi \mathbb{E}_{x,y_w \sim \mathcal{D}}[\log \pi(y_w | x)]$。这个过程有助于减轻不可用的真实参考分布与DPO使用的 $\pi_{ref}$ 之间的分布偏移。更多关于实现和超参数的细节可以在附录B中找到。
在本节中,我们进一步解读DPO方法,提供理论支持,并将DPO的优势与用于RLHF的行动者-评论家算法(如PPO【索引39,Proximal policy optimization algorithms, 2017】)存在的问题联系起来。
定理1的证明思路:考虑任意奖励函数 $r(x, y)$,它导出一个对应的最优模型 $\pi_r(y|x)$,由公式4指定。我们将证明 $r$ 的等价类中的一个奖励函数可以用上述重参数化表示。我们定义投影 $f$ 为:
操作符 $f$ 只是用 $\pi_r$ 的配分函数的对数来归一化奖励函数。由于增加的归一化项只是前缀 $x$ 的函数,所以 $f(r; \pi_{ref}, \beta)(x, y)$ 是 $r(x, y)$ 等价类中的一个奖励函数。最后,将公式5的右侧(对任何奖励函数都成立)替换 $r$,我们得到 $f(r; \pi_{ref}, \beta)(x, y) = \beta \log \frac{\pi_r(y|x)}{\pi_{ref}(y|x)}$。也就是说,投影 $f$ 产生了 $r$ 的等价类中一个具有所需形式的成员,并且我们提出的重参数化没有损失奖励模型的任何通用性。
DPO选择的特定奖励函数:我们也可以将定理1看作是精确指定了DPO重参数化在每个等价类中选择的奖励函数,即满足以下条件的奖励函数:
即 $\pi(y|x)$ 是一个有效的分布(概率为正且总和为1)。然而,根据公式4,我们可以看到公式9是奖励函数 $r(x, y)$ 导出的最优策略的配分函数。DPO算法的关键洞见是,我们可以对欠定的Plackett-Luce(特别是Bradley-Terry)偏好模型族施加某些约束,这样我们既保留了可表示的奖励模型的类别,又明确地使公式4中的最优策略对于所有提示 $x$ 都是解析可解的。
任务与数据集:
模型架构:
gpt2-large作为基础模型。SFT模型在IMDb训练集上微调。Pythia-2.8B【索引3,Pythia: A suite for analyzing large language models across training and scaling, 2023】模型。由于没有现成的SFT模型,通过在偏好数据中的首选完成上进行微调来创建SFT模型。硬件配置: 论文中未明确列出具体的硬件配置,但提及实验计算资源部分由斯坦福基础模型研究中心(CRFM)提供,暗示使用了GPU集群。
软件配置:
gpt-4-0314)作为人类评估的代理,用于评估摘要质量和响应的有用性。评估方法:
对比方法:
实验一:DPO优化RLHF目标的效率如何?
实验二:DPO能否扩展到真实的偏好数据集?
实验三:对新输入分布的泛化能力
实验四:通过人类判断验证GPT-4的判断
def dpo_loss(pi_logps, ref_logps, yw_idxs, yl_idxs, beta):
"""
pi_logps: 策略的对数概率, shape (B,)
ref_logps: 参考模型的对数概率, shape (B,)
yw_idxs: 偏好完成的索引 in [0, B-1], shape (T,)
yl_idxs: 不偏好完成的索引 in [0, B-1], shape (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
siebert/sentiment-roberta-large-english作为真实奖励模型,gpt2-large作为基础模型。首先在IMDb数据子集上进行1个epoch的监督微调。然后用这个模型为25000个前缀采样4个完成,并使用真实奖励模型为每个前缀创建6个偏好对。Unlikelihood基线:在情感实验中包含了unlikelihood基线,但在摘要和对话实验中没有包含,因为它产生的响应通常没有意义,这被认为是无约束的似然最小化导致的结果。如表3所示。