DPO 技术解析:不需要奖励模型,如何让大语言模型学会做出更好的选择?

举报
yd_222597624 发表于 2026/11/06 00:08:03 2026/11/06
【摘要】 一、背景:为什么大语言模型需要偏好优化?1.1 从模型训练到人类偏好对齐大语言模型通常通过海量文本数据进行预训练,学习语言规律、知识表示和文本生成能力。但模型能够生成合理的文本,并不意味着它生成的内容一定符合人类期望。例如,面对同一个问题,模型可能生成多个答案:回答 A:内容准确,逻辑清晰,直接解决问题;回答 B:包含一些正确信息,但存在冗余内容;回答 C:表达流畅,但存在事实错误。这些回答...

一、背景:为什么大语言模型需要偏好优化?

1.1 从模型训练到人类偏好对齐

大语言模型通常通过海量文本数据进行预训练,学习语言规律、知识表示和文本生成能力。

但模型能够生成合理的文本,并不意味着它生成的内容一定符合人类期望。

例如,面对同一个问题,模型可能生成多个答案:

  • 回答 A:内容准确,逻辑清晰,直接解决问题;

  • 回答 B:包含一些正确信息,但存在冗余内容;

  • 回答 C:表达流畅,但存在事实错误。

这些回答都可能具有一定的语言合理性,但从人类偏好的角度来看,它们的质量显然不同。

因此,仅依靠传统的语言模型训练目标还不够。我们还需要让模型理解什么样的回答更好,什么样的行为应该被鼓励。

这就是偏好对齐(Preference Alignment)需要解决的问题。

1.2 传统 RLHF 有什么不足?

RLHF 是大语言模型对齐的重要技术路线,典型流程包括三个阶段:

第一阶段:监督微调(SFT)

使用高质量的指令和回答数据训练模型,使其具备遵循指令和生成合理回答的能力。

第二阶段:奖励模型训练(Reward Modeling)

收集人类对不同回答的偏好数据,例如针对同一个问题,人工选择回答 A 优于回答 B。

利用这些偏好数据训练奖励模型,使其能够预测回答的相对质量。

第三阶段:强化学习优化(RL Optimization)

通常使用 PPO 等强化学习算法,让语言模型生成回答,再利用奖励模型给出的奖励信号更新模型参数。

传统 RLHF 的主要流程如下:

预训练语言模型
       |
       v
监督微调(SFT)
       |
       v
收集人类偏好数据
       |
       v
训练奖励模型(RM)
       |
       v
强化学习优化(PPO)
       |
       v
对齐后的语言模型

这种方法虽然有效,但存在一些工程挑战:

  1. 需要额外训练和维护奖励模型;

  2. 奖励模型与策略模型需要配合训练;

  3. PPO 涉及采样、奖励计算和策略更新,训练过程相对复杂;

  4. 奖励模型可能出现奖励过度优化(Reward Hacking)问题,即模型学会获得高奖励,却不一定真正生成高质量回答。

那么,是否可以直接利用人类偏好数据优化语言模型,而不需要单独训练奖励模型?

DPO 正是针对这个问题提出的。

二、DPO 的核心思想:直接从偏好数据中优化模型

2.1 什么是 DPO?

DPO 全称为 Direct Preference Optimization,即直接偏好优化。

它由 Rafailov 等研究人员在 2023 年提出,论文发表于 NeurIPS 2023,论文标题为:

Direct Preference Optimization: Your Language Model is Secretly a Reward Model.

DPO 最核心的思想是:

既然我们已经知道对于同一个问题,人类更喜欢哪个回答,那么就可以直接调整语言模型,让模型提高生成优质回答的概率,同时降低生成较差回答的概率。

例如,针对同一个问题:

Prompt:什么是机器学习?

Chosen:
机器学习是人工智能的一个重要分支,
通过算法从数据中学习规律,并利用这些规律
对未知数据进行预测或决策。

Rejected:
机器学习就是让计算机自己思考,
不需要数据,也不需要任何算法。

其中:

  • Chosen:人类更偏好的回答;

  • Rejected:人类不偏好的回答。

DPO 不需要先训练一个独立的奖励模型,再使用强化学习优化策略,而是直接利用这两类数据构造训练目标。

从直观上看,DPO 希望模型做到:

  • 提高 Chosen 回答的生成概率;

  • 降低 Rejected 回答的生成概率;

  • 同时避免模型偏离原始模型太远。

2.2 DPO 与传统 RLHF 的关系

理解 DPO,需要先理解它与 RLHF 的联系。

传统 RLHF 通常通过奖励函数指导模型优化:

模型希望生成获得更高奖励的回答,但如果只追求奖励最大化,可能导致模型偏离原有的语言分布。

因此,传统方法通常会增加 KL 散度约束,使优化后的模型不要偏离参考模型太远。

可以将目标简化表示为:

最大化:
回答获得的期望奖励
-
KL 约束惩罚

DPO 的一个重要理论贡献,就是利用这个优化目标的数学结构,推导出一个可以直接通过偏好数据训练策略模型的目标函数。

也就是说,它不是简单地放弃奖励模型,而是通过数学推导,将奖励函数隐式地表示在策略模型与参考模型的概率比值中。

三、DPO 的数学原理:为什么可以直接优化?

这是 DPO 最核心的技术部分。

3.1 从奖励函数出发

首先,考虑带有 KL 散度约束的强化学习目标:

[
\max_{\pi_\theta}
\mathbb{E}{y\sim\pi\theta(y|x)}[r(x,y)]
-\beta D_{KL}(\pi_\theta|\pi_{ref})
]

其中:

  • (\pi_\theta):当前需要优化的语言模型;

  • (\pi_{ref}):参考模型,通常是 SFT 模型;

  • (r(x,y)):回答对应的奖励;

  • (\beta):控制策略偏离参考模型程度的参数;

  • (D_{KL}):衡量两个概率分布之间的差异。

这个目标希望模型获得更高奖励,同时保持与参考模型的分布相对接近。

根据该目标,可以推导出最优策略:

[
\pi^*(y|x)=
\frac{1}{Z(x)}
\pi_{ref}(y|x)
\exp\left(\frac{r(x,y)}{\beta}\right)
]

其中,(Z(x)) 是归一化因子。

进一步变换,可以得到:

[
r(x,y)=
\beta\log\frac{\pi^*(y|x)}{\pi_{ref}(y|x)}
+\beta\log Z(x)
]

这个公式非常重要。

它说明:奖励函数可以通过当前策略模型和参考模型的概率比值来表示。

换句话说,不一定需要单独训练一个奖励模型,才能获得用于偏好优化的奖励表达。

3.2 引入人类偏好模型

接下来,需要将上述结果与人类偏好联系起来。

DPO 使用经典的 Bradley-Terry 偏好模型描述两个回答之间的偏好关系:

\sigma(r(x,y_w)-r(x,y_l))
]

其中:

  • (y_w):人类更喜欢的回答;

  • (y_l):人类不喜欢的回答;

  • (\sigma):Sigmoid 函数。

将前面推导的奖励表达代入,由于两个回答对应的归一化项相互抵消,可以得到:

\beta\log\frac{\pi_\theta(y_l|x)}
{\pi_{ref}(y_l|x)}
\right)
]

这样,就不再需要显式训练一个独立的奖励模型。

3.3 DPO 损失函数

基于上述偏好概率,可以构建 DPO 的训练损失:

\beta\log\frac{\pi_\theta(y_l|x)}
{\pi_{ref}(y_l|x)}
\right)
\right]
]

这个公式看起来比较复杂,但其核心含义很直观:

让模型相对于参考模型,更倾向于生成被人类偏好的回答,而不是被人类拒绝的回答。

在训练过程中:

  • 如果模型更倾向于生成 Chosen,损失通常会下降;

  • 如果模型更倾向于生成 Rejected,损失通常会增大;

  • 如果模型已经能够较好地区分两者,优化压力就会相应减小。

其中,(\beta) 控制偏好优化的尺度,也与策略相对于参考模型的约束程度有关。

四、DPO 的实际训练流程

从工程实现角度来看,DPO 的训练流程相对简洁。

4.1 准备偏好数据

DPO 的训练数据通常采用三元组结构:

[
(x,y_w,y_l)
]

其中:

  • x:输入 Prompt;

  • yw:偏好的回答;

  • yl:不偏好的回答。

例如:

Prompt Chosen Rejected
解释什么是深度学习 准确、清晰的解释 不完整或存在错误的解释
编写一个 Python 排序函数 正确且可运行的代码 存在逻辑错误的代码
总结一篇技术论文 忠实于原文的总结 存在信息遗漏或虚构的总结

偏好数据可以来自人工标注、专家评价,也可以通过模型生成候选回答后,再利用人工或其他评价机制进行筛选。

数据质量直接影响最终优化效果。

4.2 初始化策略模型和参考模型

通常以已经完成 SFT 的模型作为初始策略模型。

同时复制一份 SFT 模型作为参考模型。

              SFT Model
                 |
          +------+------+
          |             |
          v             v
    Policy Model    Reference Model
          |             |
       可训练          冻结
          |             |
          +------+------+
                 |
            DPO Training

其中:

  • Policy Model:在训练过程中更新参数;

  • Reference Model:保持参数不变,用于计算参考概率。

4.3 计算偏好概率并优化

对于每条偏好数据,分别计算 Chosen 和 Rejected 在策略模型、参考模型下的生成概率。

然后代入 DPO 损失函数,通过反向传播更新策略模型参数。

这里通常使用回答部分的 Token Log Probability 计算序列概率,Prompt 部分不参与回答概率的累计。

整个训练过程可以概括为:

输入偏好数据
    |
    v
Policy Model 计算回答概率
    |
    v
Reference Model 计算回答概率
    |
    v
计算 Chosen / Rejected 概率比
    |
    v
计算 DPO Loss
    |
    v
反向传播更新 Policy Model
    |
    v
重复训练直至收敛

与 PPO 相比,DPO 不需要在每个训练步骤中额外进行策略采样、奖励模型打分和复杂的强化学习更新,因此训练流程更加直接。

五、DPO 相比 PPO 有哪些优势和局限?

5.1 DPO 的主要优势

1. 训练流程更加简单

不需要单独训练奖励模型,也不需要完整的 PPO 强化学习训练流程。

2. 直接利用偏好数据

只需要构建 Prompt、Chosen 和 Rejected 三元组,就可以进行训练。

3. 优化目标更加直接

模型直接学习人类偏好的相对关系,而不需要先通过奖励模型间接获得奖励信号。

4. 更容易进行工程集成

DPO 可以基于常规语言模型训练框架实现,与 SFT 训练流程具有较好的兼容性。

5.2 DPO 的局限性

DPO 并不是在所有场景下都优于 PPO。

1. 对偏好数据质量高度敏感

如果 Chosen 和 Rejected 本身质量差异不明显,或者标注存在较多噪声,模型就很难学到稳定的偏好规律。

2. 依赖已有的偏好数据

经典 DPO 通常采用离线偏好数据。如果模型遇到训练数据没有覆盖的新场景,就难以通过静态偏好数据获得新的探索反馈。

3. 可能出现过拟合

如果模型过度学习训练集中的偏好模式,可能在训练数据上表现很好,但在其他任务上出现能力退化。

4. 无法自动解决奖励设计问题

DPO 虽然不需要显式训练奖励模型,但偏好数据本身仍然隐含着评价标准。如果偏好数据存在系统性偏差,模型也会继承这些偏差。

5.3 DPO 与 SFT、PPO 的区别

对比维度 SFT DPO PPO
核心目标 学习示范行为 学习偏好关系 最大化奖励
训练数据 输入与标准回答 Chosen / Rejected 采样轨迹与奖励
是否需要奖励模型 否 否 传统 RLHF 中需要
是否需要在线采样 否 经典 DPO 不需要 通常需要
优化方式 监督学习 偏好损失 强化学习
实现复杂度 较低 较低 相对较高

需要注意,DPO 和 PPO 并不是完全互斥的技术。它们解决的是不同训练范式下的优化问题,可以根据数据来源、训练目标和模型能力选择。

六、DPO 的进一步发展

DPO 提出后,研究人员围绕偏好优化进行了大量后续探索。

例如:

IPO(Identity Preference Optimization)

针对传统 DPO 在某些条件下可能出现的偏好过度优化问题,IPO 采用不同的优化目标,希望获得更加稳定的偏好学习效果。

KTO(Kahneman-Tversky Optimization)

不再严格要求每个训练样本都包含一组 Chosen 和 Rejected 回答,而是尝试利用单条正向或负向反馈进行优化。

ORPO(Odds Ratio Preference Optimization)

将监督微调与偏好优化结合起来,减少对独立参考模型的依赖。

这些方法反映出偏好优化技术的一个重要发展方向:如何降低偏好数据的获取成本,提高训练稳定性,并让模型能够更有效地从反馈中学习。

七、总结

DPO 是大语言模型偏好对齐领域的一项重要技术创新。

它通过数学推导,将 KL 约束下的奖励最大化问题转化为直接基于偏好数据的优化问题,使模型不再必须依赖独立的奖励模型和传统 PPO 流程。

从技术角度来看,DPO 的价值不仅在于简化了 RLHF 的训练流程,更在于提供了一种新的模型优化思路:

不一定要直接告诉模型一个回答应该获得多少奖励,也可以通过比较不同回答之间的优劣关系,让模型逐渐学会人类更偏好的行为。

当然,DPO 并没有消除偏好对齐中的所有难题。偏好数据质量、评价标准一致性、模型泛化能力以及长期训练稳定性,仍然是值得持续研究的问题。

未来,随着偏好数据构建、自动评价和强化学习技术不断发展,DPO 及其衍生方法仍将在大语言模型对齐和能力优化中发挥重要作用。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。