🎿二十一、DPO(Direct Preference Optimization
2025-2-12
| 2025-5-7
字数 1485阅读时长 4 分钟
type
status
password
date
slug
summary
category
URL
tags
icon
本文介绍了一种名为Direct Preference Optimization(DPO)的方法,它是直接优化语言模型(LM)以符合人类偏避免了传统RLHF中的奖励模型构建和强化学习步骤,以更好地满足人类偏好。DPO算法更简单,更稳定;RHLF算法更复杂一些,调参更难,但通过调参可以达到比DPO更好的性能。

1.基本原理

DPO(Direct Preference Optimization)的核心思想是直接优化模型偏好的方法,不需要显式地定义奖励函数,而是通过比较不同模型输出的结果,选择更符合人类偏好的结果作为训练目标

1.1 基本概念

首先,假设我们有一个预训练的语言模型和一组人类对模型生成结果的偏好数据。我们的目标是训练一个新的策略模型 ,使其生成的输出更符合人类的偏好。

1.2 传统RLHF

在传统的RLHF(Reinforcement Learning from Human Feedback)框架中,人类的偏好被用来训练一个奖励模型 ,该模型预测人类对于给定输入和输出对的偏好强度。然后,使用RL算法优化语言模型以最大化这个预测的奖励。

1.3 直接偏好优化(DPO)

DPO的关键创新是避免显式训练奖励模型,而是直接根据人类的偏好来优化语言模型。为了实现这一点,我们首先定义一个基于偏好的目标函数,直接将人类的偏好转化为模型训练的损失函数。
具体来说,如果人类偏好偏向于两个潜在输出中的一个 相对于 ,我们可以使用以下的二元交叉熵损失函数来直接优化语言模型
其中,表示人类偏好的响应,表示人类拒绝的响应 ;是参考策略,让尽量接近是一个超参数控制偏离的程度。

2. DPO公式推导

论文中的Direct Preference Optimization (DPO)公式推导涉及几个重要步骤,主要是从基于偏好的学习问题到直接优化策略的转变。以下是关键公式推导的详细步骤:

2.1 强化学习目标与KL约束

在强化学习中,常见的目标是最大化期望奖励,同时可能希望优化后的策略不要与原始策略偏离太远。这可以通过KL散度(Kullback-Leibler divergence)来约束,形成如下优化问题:
其中,是奖励函数,是策略,是参考策略(例如预训练的语言模型),是一个权衡因子。

2.2 从奖励函数到优化策略的转变

文章提出了一种方法,通过改变变量将奖励优化问题直接转化为策略优化问题。核心思想是将奖励函数与策略之间建立一个显式的函数关系。函数关系推导如下所示:
其中

2.2 DPO的最优策略

通过上一节可以得到优化后的策略为:
  • 代表参考策略,限制尽量接近
  • 是一个控制策略偏离参考策略程度的参数。
  • 是归一化常数,确保为概率分布。
其中,是归一化因子,确保是一个有效的概率分布。

具体是什么?

在DPO方法中,是一个归一化常数,也称为配分函数(partition function)。它确保了由奖励函数和参考策略转换得到的最优策略是一个有效的概率分布。具体来说, 的表达式为:
其中:
  • 是给定的输入(如文本、状态等)。
  • 遍历所有可能的输出(如文本的可能续写、动作的可能选择等)。
  • 是参考策略(如预训练语言模型)在给定输入时输出的概率。
  • 是对输入和输出的奖励函数,反映了这对输入输出的偏好程度或质量。
  • 是一个正则化参数,控制策略偏离参考策略的程度。

2.3 直接优化策略

在确定了之间的关系后,可以直接通过最大化偏好数据上的似然来优化策略,而不需要显式地拟合一个奖励函数。
根据Bradley-Terry模型可得损失函数为

3. 实践

3.1 数据集

notion image

3.2 训练

给定样本,训练DPO模型。开始训练时,reference model和policy model都是同一个模型,只不过在训练过程中reference model不会更新权重。
notion image

结论

通过这样的推导,DPO方法能够绕过显式的奖励模型学习和复杂的强化学习过程,直接通过简单的分类损失来优化语言模型的策略,使其更好地符合人类的偏好。这种方法不仅简化了偏好学习的流程,还在实验中显示出与现有方法相当或更优的性能。
 
 
notion image
  • LLM
  • 强化学习
  • 二十二、强化学习-大模型二十、强化学习GAE
    Loading...