直接偏好优化(Direct Preference Optimization,常缩写为DPO)是一种训练语言模型的方法,旨在使其更倾向于基于人类偏好数据所选择的输出。该方法被引入作为RLHF的一种更简单的替代方案。与其先训练一个单独的奖励模型,再运行强化学习算法来针对该模型进行优化,DPO将相同的偏好对齐问题重新数学表述,使得语言模型可以直接通过一个单一的、基于成对偏好响应(首选与次选)计算的监督损失来进行训练,从而无需奖励模型和强化学习循环。
起源
DPO由斯坦福大学的研究人员在2023年的一篇论文中提出。他们证明了RLHF中通常使用的强化学习目标存在一个闭式最优解,该解可以直接用语言模型自身的输出概率来表达。这一理论成果意味着,模型可以通过简单地增加其分配给首选响应相对于次选响应的概率来训练,以逼近RLHF所追求的相同最优策略,而所用的损失函数则源自与RLHF中奖励模型训练相同的底层偏好模型--Bradley-Terry成对比较模型。
工作原理
DPO的训练从与RLHF的奖励模型训练相同的数据类型开始:一个包含提示词的数据集,每个提示词配有一对响应--一个是由人类标注者偏好的“首选”响应,另一个是“次选”响应。DPO并非利用这些数据训练一个单独的奖励模型,而是直接训练语言模型本身。它计算一个损失,该损失会增加首选响应相对于次选响应的概率,并以模型的初始版本(通常是训练开始前的状态)作为参考点。这个参考模型充当一种隐式的正则化器,防止模型在优化过程中偏离其初始行为太远,从而保持输出的流畅性和合理性。由于DPO完全绕过了奖励模型的训练和强化学习的采样与评分循环,它在实现上比完整的RLHF流程要简单得多,训练过程也更稳定,计算成本更低。
与RLHF的关系
DPO和RLHF追求的是相同的根本目标:使语言模型的输出与人类偏好对齐,这通常是继对预训练基础模型进行监督式微调之后的又一个阶段。RLHF通过间接方式实现这一目标:先训练一个显式的奖励模型,然后使用强化学习优化循环(最常用的是近端策略优化,即PPO)来微调语言模型以最大化该奖励。而DPO则将这两个阶段合并为一个单一的监督式目标。这种简化避免了RLHF中常见的训练不稳定性、对超参数的敏感性以及强化学习基础设施的复杂性。然而,这种简化也带来了一定的灵活性损失:由于DPO完全依赖于预先收集的静态偏好数据集,它无法像RLHF那样,在训练过程中利用一个可查询的奖励模型来评估和优化超出该数据集范围的新生成响应。
应用与影响
自提出以来,DPO及其相关的偏好优化变体在工业界和学术界都得到了迅速而广泛的采用,部分原因在于它极大地简化了工程实现。许多不具备运行稳定强化学习训练循环所需基础设施的团队,现在也能够利用标准的监督学习工具来执行偏好对齐。DPO已成为训练开源权重模型(例如由Hugging Face和Mistral AI等组织发布的模型)的常用技术,并且从2023年起,许多模型的公开训练方案中都包含了偏好优化变体的应用。此后,一些衍生方法也相继被提出,例如移除参考模型项以简化训练,或将DPO扩展到每个提示词包含两个以上候选响应的场景。
局限性
由于DPO直接从一个固定的、预先收集的偏好数据集中学习,而不是使用一个可以对新输出进行评分的显式奖励模型,它通常被认为在泛化到与训练数据分布差异较大的文本方面能力较弱。此外,DPO继承了RLHF的一个核心依赖:其最终效果完全取决于底层人类偏好标注的质量和一致性。标注者的偏见、标注不一致或偏好标准过于狭窄,都会直接影响训练出的模型行为。与RLHF一样,DPO本身并不能保证模型是真实或安全的;它只是朝着偏好数据所奖励的方向进行优化。如何确保偏好优化过程符合更广泛的价值观和安全要求,仍然是对齐领域中一个活跃的研究和争论话题。