人类反馈强化学习 (RLHF) 包含一个多阶段流程:训练一个监督微调 (SFT) 模型,根据人类偏好训练一个奖励模型 (RM),然后使用强化学习(如PPO)针对该奖励模型对SFT模型进行微调。尽管这种流程有效,但它涉及多个可变部分,每个部分都有其复杂性和潜在的不稳定性。准确训练奖励模型可能存在难度,而使用强化学习优化策略可能对超参数敏感,并易出现奖励作弊等问题。
直接偏好优化 (DPO) 通过简化这一流程提供了一个有吸引力的替代方案。它完全跳过了显式奖励建模和强化学习阶段。相反,DPO直接优化语言模型策略,使其与数据集中表达的人类偏好对齐。它通过巧妙地将对齐任务重新定义为对偏好数据进行的简单分类问题来实现这一点。
DPO的主要思想
DPO背后的认识是,标准RLHF目标——旨在最大化奖励同时对偏离基础策略进行正则化——可以直接使用偏好数据进行优化。回顾RLHF中,目标通常是找到一个策略π来最大化:
Ex∼D,y∼π(⋅∣x)[r(x,y)]−βRLDKL(π(⋅∣x)∣∣πref(⋅∣x))
其中r(x,y)是奖励,πref是一个参考策略(通常是SFT模型),βRL是一个正则化系数,而DKL是Kullback–Leibler散度。
理论表明,这个目标的最优解π∗具有与奖励函数r(x,y)和参考策略πref相关的特定形式:
π∗(y∣x)=Z(x)1πref(y∣x)exp(βRL1r(x,y))
其中Z(x)是一个分配函数,确保概率总和为一。
此外,奖励模型r(x,y)本身是使用偏好数据训练的。假设使用像Bradley-Terry模型这样的偏好模型,给定提示x,人类偏好补全yw而不是yl的概率建模为:
P(yw≻yl∣x)=σ(r(x,yw)−r(x,yl))
其中σ是Sigmoid函数。
DPO结合了这些认识。它利用最优策略和奖励函数之间的关系,仅根据最优策略π∗和参考策略πref重写了偏好概率P(yw≻yl∣x):
P(yw≻yl∣x)=σ(βRLlogπref(yw∣x)π∗(yw∣x)−βRLlogπref(yl∣x)π∗(yl∣x))
这个方程将偏好数据直接关联到我们想要学习的策略(π∗,由我们可训练的策略πθ近似)和一个已知的参考策略πref。DPO通过定义一个损失函数来使用这一点,该损失函数基于最小化在此推导模型下观察到的偏好的负对数似然。
DPO损失函数
DPO损失函数训练策略πθ以满足数据集D中观察到的人类偏好(x,yw,yl),其中yw是提示x的偏好(胜出)补全,而yl是不偏好(落败)补全。损失定义为:
LDPO(πθ;πref)=−E(x,yw,yl)∼D[logσ(βlogπref(yw∣x)πθ(yw∣x)−βlogπref(yl∣x)πθ(yl∣x))]
我们来分解一下:
- πθ:正在优化的语言模型策略(微调)。
- πref:固定的参考策略,通常是DPO训练开始时使用的SFT模型。它起到正则化器的作用。
- (x,yw,yl):偏好数据集中的一个三元组。
- logπref(y∣x)πθ(y∣x):策略πθ与参考策略πref对补全y赋予的概率的对数比。这一项隐式地表示奖励。
- β:一个超参数,类似于RLHF目标中的βRL。它控制对满足偏好的重视程度,与保持接近参考策略的程度相平衡。更高的β意味着更强的对齐压力。
- σ:Sigmoid函数。
- logσ(...):应用于胜出和落败补全之间隐式奖励差异的逻辑损失。
直观地看,该损失函数促使策略πθ增加偏好补全yw的相对对数概率,并降低不偏好补全yl的相对对数概率,这与参考策略πref相比。最小化此损失函数直接最大化了策略πθ符合人类偏好数据的可能性。
实现与训练
实现DPO包含以下步骤:
- 从SFT模型开始: 使用监督微调在指令遵循数据上训练一个基础语言模型。这个模型将用作初始的πθ和固定的πref。
- 收集偏好数据: 收集一个包含三元组(x,yw,yl)的数据集D,其中人类(或可能是AI标注者,如RLAIF中)已表示对于提示x,补全yw优于yl。这与RLHF奖励建模阶段所需的数据相同。
- 计算对数概率: 在训练期间,对于每个三元组(x,yw,yl),计算当前策略πθ和固定参考策略πref下胜出和落败补全的对数概率:
- logπθ(yw∣x) 和 logπθ(yl∣x)(需要对πθ进行前向传播并启用梯度)
- logπref(yw∣x) 和 logπref(yl∣x)(需要对πref进行前向传播并禁用梯度)
- 计算DPO损失: 使用这些对数概率来计算如上所述的LDPO损失。
- 优化: 使用梯度下降更新πθ的权重以最小化损失。参考策略πref在整个过程中保持固定。
整个过程更接近于标准监督微调,而不是RLHF流程,这使其更容易实现且训练可能更稳定。
传统RLHF流程与更简单的DPO流程的对比。DPO将奖励建模和策略优化结合到一个微调阶段,使用专门的损失函数。
DPO的优点
- 简洁性: 主要优点是消除了奖励模型训练和RL优化阶段。这显著简化了对齐流程,降低了工程复杂性和潜在的故障点。
- 稳定性: DPO避免了将RL算法(如PPO)应用于大型模型时常出现的潜在不稳定性及超参数调优挑战。训练过程类似于标准监督学习。
- 直接性: 它直接针对偏好目标优化策略,而不依赖于一个中间的(且可能不完善的)奖励模型作为替代。
- 高效性: 训练的计算强度低于完整的RLHF过程,特别是与PPO所需的采样和优化循环相比。
缺点与考虑
- 数据依赖性: 与RLHF类似,DPO的有效性取决于偏好数据集D的质量和数量。有偏或有噪声的偏好数据将导致对齐效果不佳的模型。
- 无显式奖励: DPO不生成显式奖励模型。虽然这简化了训练,但显式RM有时有助于评估补全或理解模型行为。
- 超参数调优: 温度参数β非常重要。它平衡了对参考模型的遵循与对偏好数据的拟合。设置过低可能导致对齐效果不佳,而设置过高则可能导致策略过度拟合偏好并过度偏离基础SFT模型,从而可能降低其他任务的性能或增加生成伪影。
- 性能上限: 尽管DPO在实践中由于其稳定性通常表现与RLHF相当或更好,但理论上,一个完美调优的RLHF流程,如果带有准确的奖励模型,在某些情况下可能会实现略好的对齐效果。然而,实现这种完美的RLHF设置通常有难度。
DPO代表了对齐技术的一个重要进展,与传统RLHF相比,它提供了一种更精简且通常更稳定的方法。它的简洁性使其成为许多对齐任务的有吸引力的选择,前提是可获得高质量的偏好数据。理解DPO为指导LLM行为的工具集增加了一个强有力的方法。