直接偏好优化技术DPO基础理论及推导

论文标题:Direct Preference Optimization: Your Language Model is Secretly a Reward Model 

论文链接:https://arxiv.org/abs/2305.18290

论文来源:NeurIPS 2023

一、概述

为了能够将语言模型的行为与人类偏好对齐,现有的方法使用精心设计的人类偏好数据集集,将期望的行为灌输到语言模型中,这些偏好数据集代表了人类认为安全和有益的行为类型。目前的大模型偏好对齐主要依赖于基于人类反馈的强化学习技术(Reinforcement Learning from Human Feedback, RLHF),RLHF方法利用奖励模型(Reward Model)拟合人类偏好数据集,然后使用强化学习技术优化语言模型策略(policy),以使其能够产生高奖励的响应,且不会偏离原始模型太远。虽然RLHF训练的模型具有令人印象深刻的对话和编码能力,但RLHF pipeline比监督学习要复杂得多,涉及在训练循环中训练多个语言模型并从语言模型策略中采样,这会造成巨大的计算成本。

本文研究验证了现有方法使用的基于强化学习的目标可以用一个简单的二元交叉熵目标来直接优化,无需奖励模型与强化学习,由此简化了偏好学习的pipeline。本文提出直接偏好优化(Direct Preference Optimization, DPO)技术,能够隐式地优化与现有RLHF算法相同的目标(即在一个KL散度约束下最大化奖励),且很容易实现和能够直接训练。DPO更新过程会增大偏好响应相较于不偏好响应的log概率,同时其包含一个动态的、每个样本上的重要性权重,以避免模型退化(这种退化在使用朴素的概率比值目标时会发生)。

与现有的方法类似,DPO依赖于一种理论偏好模型(比如Bradley-Terry模型),这一类模型度量一个给定的奖励函数(Reward Function)对齐经验偏好数据的好坏程度。不同的是,DPO并没有采用训练奖励模型以及强化学习的方式,而是利用一种奖励模型的重参数化技巧,使得能够闭式地(in close form)获取最优的策略模型。给定模型响应的人类偏好数据集,DPO可以使用简单的二元交叉熵目标来优化策略,得到适合偏好数据的隐式奖励函数的最优策略。

二、前提

RLHF pipeline通常包含三个阶段:1)监督微调(Supervised Fine-Tuning, SFT);2)偏好采样和奖励学习;3)强化学习优化。

  1. SFT阶段

RLHF通常从在一个预训练语言模型上利用下游任务(如对话、总结等)的高质量演示数据监督微调开始,来获得一个模型。

  1. 奖励建模阶段

在第二阶段,利用prompt来使得SFT模型产生成对的响应。这些响应接着将由人类标注更加偏好哪一个,标注为,这里的和分别表示偏好的和不偏好的补全。现在假设这些偏好符合某个隐式奖励模型,也就是我们无法直接访问的奖励函数的真实分布。

通常有一些可用于建模偏好的模型,例如Bradley-Terry (BT)模型(如果我们有几个排名的答案的话,可以采用更一般的Plackett-Luce排名模型)。BT模型的基本思想是,通过对各个对象进行配对比较,可以估计出每个对象的“实力”或“能力”,从而计算出在任意一对对象之间进行比较时,某个对象获胜的概率。具体来说,假设有个对象(例如运动员、产品等),我们用表示对象的实力参数。对于两个对象和,对象在比较中获胜的概率可以表示为:

其中,和都是正的实力参数。BT模型广泛应用于竞技体育排名、音乐和艺术竞赛、市场研究中的产品比较等领域。通过配对比较,Bradley-Terry模型能够提供一个相对简单但有效的框架来比较多个对象的相对实力或偏好。

在偏好对齐的场景下,BT模型可将真实的人类偏好分布建模为:

真实的奖励函数与真实的偏好分布都是不可访问的,不过我们可以通过人类标注的方式获得从中采样的人类偏好数据集,然后利用这个数据集即可参数化一个奖励模型,并根据极大似然估计来估计其参数。将这个问题作为一个二分类问题的话,我们便有了RLHF中建模奖励函数的负对数似然损失:

其中为Logistic函数。在语言模型的场景下,奖励函数通常从SFT模型初始化而来,在其最后一个transformer层的顶部添加一个线性层,使其输出一个标量预测值作为奖励值。为了确保这个奖励函数具有低方差,现有方法通常会标准化奖励值,即。

  1. 强化学习微调阶段

在强化学习阶段,我们使用前一阶段学习到的奖励函数来为语言模型提供反馈,通常强化学习阶段相当于以下优化问题:

这里的是一个超参数,用于控制偏离基础参考策略(reference policy)的程度,也就是初始的SFT模型,在优化过程中其参数是固定的。为实际优化的策略模型,通常策略模型也由初始化而来。上式的KL散度约束是很重要的,因为奖励模型是在SFT模型的输出分布上训练得到的,因此只有在这个分布上奖励模型的预测值才是准确的,这个KL散度约束防止了策略模型的输出分布偏离的输出分布,同时也保持了生成内容的多样性并且防止模式坍塌到单一的高奖励答案。

由于语言生成的离散性,上面的目标是不可微的,因此通常使用强化学习来优化这个目标。标准的方法将奖励函数构造成,然后使用PPO来最大化这个奖励函数。RLHF的详细流程可参考生成式大模型的RLHF技术(一):基础

三、方法

本文的目标是推导出一种直接使用偏好的策略优化方法,不像之前的RLHF方法需要学习一个奖励模型然后利用强化学习来优化策略模型,本文的方法利用一种特殊的奖励模型参数化,使得能够闭式地获取最优的策略模型,而不需要一个强化学习的训练过程。DPO利用从奖励函数到最优策略的解析映射推导,使得我们能够将奖励函数上的损失转换为策略模型上的损失。这种变量改变方法避免了拟合一个显式的、独立的奖励模型,同时仍然在现有的人类偏好模型下(即BT模型)进行优化。本质上,策略模型同时代表了语言模型和(隐式的)奖励模型。

  1. DPO目标的推导

对于前面的KL散度约束的奖励最大化目标公式(4),其在一般的奖励函数下的最优解为:

这里的,详细推导请参看本文最后一个章节的第1小节。对于而言,其中的我们可以通过ground-truth奖励函数的极大似然估计来得到,但配分函数的估计仍然是unfeasible的。这是因为和作为语言模型的输入输出文本,其状态空间非常地广阔。因此这个最优解的表示在实践中是很难计算的。不过我们可以重新排列公式(5)来用最优策略、参考策略以及未知的配分函数来重参数化奖励函数:

公式(6)中的重参数化设计可以应用到ground-truth奖励和对应的最优策略模型上。幸运的是,BT模型只依赖于两个补全的奖励的差值,详细推导请参看本文最后一个章节的第2小节。用和替换公式(6)中的和,然后将代入BT模型,即可使用最优策略模型和参考模型来表示人类偏好概率,也就是说BT模型下的最优的RLHF策略模型满足以下偏好模型:

现在我们有了以最优策略模型表示(而非以奖励模型表示)的人类偏好概率,因此我们就可以使用一个面向一个参数化策略模型的极大似然目标。类似于公式(3)中的奖励建模过程,我们的策略目标函数变为了:

于是,我们现在利用一个替代参数化来拟合隐式奖励,其最佳策略为优化后的。此外,由于该过程等价于拟合一个重新参数化的BT模型,因此该过程具有一定的理论性质,比如在适当的偏好数据分布假设下的一致性。

  1. DPO更新做了什么?

为了更好地理解DPO,我们可以分析一下DPO损失函数的梯度,其在参数上的梯度可以写作:

这里的是由语言模型和参考模型隐式定义的奖励。直观来看,损失函数的梯度增加了偏好补全的似然,并降低了不偏好补全的似然。需要注意的是,这些样本的权重取决于隐式奖励模型对不偏好的补全进行评分的高低程度,缩放因子为,即隐式奖励模型对这些补全排序的错误程度,同时考虑到KL散度约束的强度。本文的实验表明了这种加权的重要性,因为这种方法的朴素版本如果没有加权系数,可能会导致语言模型退化。

  1. DPO pipeline

DPO的整体pipeline为: 

①对每个prompt采样补全,并由人类标注以获得离线偏好数据集; 

②对于给定的、和,优化来最小化。

在DPO方法中,由于偏好数据集是从采样而来,因此我们设置。在实践中,人们可能会希望直接使用公开可用的偏好数据集,而不是自己生成样本并收集人类的偏好。在这种情况下是不可访问的,因此我们通过最大化偏好补全的似然来初始化,即。这一设置有助于缓解DPO在不可用的真实参考分布和之间的分布偏移。

推导

本节补充一些前文省略的公式推导过程。

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

首先对于前面的公式(4),其在任意奖励函数和一般的非参数化策略类下的一般形式为:

在该式基础上,有以下推导过程:

这里的为配分函数:

注意这里的只与和参考策略有关,不依赖于策略。现在我们可以定义:

这里的满足且,因此实际上我们是定义了一个有效的概率分布。由于不是的函数,我们可以重新组织一下公式(11),继续以下推导过程:

现在,由于并不依赖于,因此上述目标的最小值将会在第一个KL散度项最小时达成。由吉布斯不等式可知,当且仅当两个概率分布完全相同时KL散度达到最小值0。因此我们所求的的最优解即为:

  1. BT模型下DPO目标推导

对于公式(2)中展示的BT模型对人类偏好的建模,可以做以下转换:

这里的为sigmoid函数。根据公式(6)可知我们可以将不可访问的ground truth奖励函数用最优的策略来表示:

将公式(15)代入公式(14)即可得:

这个概率即是公式(8)中所采用的单实例损失。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值