Direct Preference Optimization: Your Language Model is Secretly a Reward Model

发表时间: 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 有时也会输出看似合理但包含事实错误的回答,且自动化评估极易受到提示词的影响。

A1 主要贡献

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

A3 背景知识

我们回顾了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)强化学习优化。

A2 方法细节

4 直接偏好优化

A3 关键Observation/设计原则

5 DPO的理论分析

在本节中,我们进一步解读DPO方法,提供理论支持,并将DPO的优势与用于RLHF的行动者-评论家算法(如PPO【索引39,Proximal policy optimization algorithms, 2017】)存在的问题联系起来。

5.1 你的语言模型秘密地是一个奖励模型

5.2 行动者-评论家算法的不稳定性

A4 实验环境

A4 实验结果

A5 结论

A6 附录

A 数学推导

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

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

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

A.4 推导DPO目标的梯度

A.5 引理1和2的证明

A.6 定理1的证明

B DPO实现细节和超参数

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

C 实验设置的进一步细节

D 额外的实验结果