作者:
(1) Rafael Rafailo,斯坦福大学,同等贡献;更多初级作者名单前面已列出;
(2)Archit Sharma,斯坦福大学,同等贡献;更多初级作者列于前面;
(3)Eric Mitchel,斯坦福大学,同等贡献;更多初级作者列于前面;
(4)Stefano Ermon,CZ Biohub;
(5)克里斯托弗·曼宁(Christopher D. Manning),斯坦福大学
(6)切尔西·芬恩,斯坦福大学。
数学推导
A.2 根据 Bradley-Terry 模型推导 DPO 目标
A.3 根据 Plackett-Luce 模型推导 DPO 目标
A.4 推导 DPO 目标函数的梯度和 A.5 引理 1 和 2 的证明
C 实验设置的更多细节和 C.1 IMDb 情绪实验和基线细节
D 其他实证结果
D.1 最佳 N 基线对各种 N 的表现和 D.2 样本响应和 GPT-4 判断
虽然大规模无监督语言模型 (LM) 可以学习广泛的世界知识和一些推理技能,但由于其训练完全无监督,因此很难精确控制其行为。现有的获得这种可控性的方法是收集模型生成相对质量的人类标签,并微调无监督语言模型以符合这些偏好,通常使用从人类反馈中进行强化学习 (RLHF)。然而,RLHF 是一个复杂且通常不稳定的过程,首先要拟合一个反映人类偏好的奖励模型,然后使用强化学习微调大型无监督语言模型以最大化这个估计的奖励,而不会偏离原始模型太远。在本文中,我们引入了 RLHF 中奖励模型的新参数化,可以以封闭形式提取相应的最优策略,让我们能够仅用简单的分类损失来解决标准 RLHF 问题。由此产生的算法,我们称之为直接偏好优化 (DPO),稳定、高效且计算量轻,无需在微调或执行重大超参数调整期间从 LM 中采样。我们的实验表明,DPO 可以微调 LM,使其与人类偏好保持一致,效果与现有方法一样好甚至更好。值得注意的是,使用 DPO 进行微调在控制代际情绪的能力方面超过了基于 PPO 的 RLHF,并且在总结和单轮对话中匹配或提高了响应质量,同时实施和训练起来要简单得多。
在非常大的数据集上训练的大型无监督语言模型 (LM) 获得了令人惊讶的能力 [11, 7, 40, 8]。然而,这些模型是在具有各种目标、优先事项和技能的人生成的数据上训练的。其中一些目标和技能可能不适合模仿;例如,虽然我们可能希望我们的人工智能编码助手了解常见的编程错误以便纠正它们,但在生成代码时,我们希望我们的模型偏向于其训练数据中存在的(可能罕见的)高质量编码能力。同样,我们可能希望我们的语言模型能够意识到 50% 的人相信的常见误解,但我们当然不希望模型在 50% 的查询中声称这种误解是正确的!换句话说,从模型非常广泛的知识和能力中选择其所需的响应和行为对于构建安全、高性能和可控的人工智能系统至关重要 [26]。虽然现有方法通常使用强化学习 (RL) 来引导 LM 以匹配人类偏好,
我们将证明,现有方法所使用的基于 RL 的目标可以通过简单的二元交叉熵目标进行精确优化,从而大大简化偏好学习流程。
从高层次来看,现有方法使用精选的人类偏好集将所需行为灌输到语言模型中,这些偏好集代表了人类认为安全和有用的行为类型。此偏好学习阶段发生在对大型文本数据集进行大规模无监督预训练的初始阶段之后。虽然偏好学习最直接的方法是在人类展示高质量响应时进行监督微调,但最成功的方法是从人类(或人工智能)反馈中进行强化学习(RLHF/RLAIF;[12, 2])。RLHF 方法将奖励模型拟合到人类偏好数据集,然后使用 RL 优化语言模型策略以产生分配高奖励的响应,而不会偏离原始模型太远。虽然 RLHF 可以生成具有令人印象深刻的对话和编码能力的模型,但 RLHF 流程比监督学习复杂得多,涉及训练多个 LM 并在训练循环中从 LM 策略中进行采样,从而产生大量的计算成本。
在本文中,我们展示了如何直接优化语言模型以遵循人类偏好,而无需明确的奖励建模或强化学习。我们提出了直接偏好优化 (DPO),该算法隐式优化与现有 RLHF 算法相同的目标(具有 KL 散度约束的奖励最大化),但易于实现且易于训练。直观地说,DPO 更新增加了偏好响应与不偏好响应的相对对数概率,但它结合了动态的、每个示例的重要性权重,可防止我们发现在简单概率比目标下发生的模型退化。与现有算法一样,DPO 依赖于理论偏好模型(例如 Bradley-Terry 模型;[5]),该模型衡量给定奖励函数与经验偏好数据的匹配程度。然而,虽然现有方法使用偏好模型来定义偏好损失以训练奖励模型,然后训练优化学习到的奖励模型的策略,但 DPO 使用变量变化将偏好损失直接定义为策略的函数。因此,给定一个人类偏好与模型响应的数据集,DPO 可以使用简单的二元交叉熵目标来优化策略,从而为适合偏好数据的隐式奖励函数生成最佳策略。
我们的主要贡献是直接偏好优化 (DPO),这是一种简单的非强化学习算法,用于根据偏好训练语言模型。我们的实验表明,对于使用最多 6B 个参数的语言模型进行情绪调节、总结和对话等任务中的偏好学习,DPO 至少与现有方法(包括基于 PPO 的 RLHF)一样有效。