后训练与对齐 进阶 约 20 分钟 更新 2026-10-02

DPO 及其变体:免去强化学习的偏好对齐

学习状态:
未学

一句话定义

DPO(Direct Preference Optimization)通过数学变换把 RLHF 的「奖励模型 + 强化学习」目标重写为一个直接的监督式损失,只用偏好数据与参考模型即可对齐,稳定性与工程复杂度显著优于 PPO 路线。

为什么重要

DPO(2023)把偏好对齐的门槛从「能跑强化学习」降到「能做监督训练」,迅速成为开源社区的主流选择,也改变了学界对「RL 是否必需」的讨论。其推导展示了「你的语言模型本身就是一个隐式奖励模型」这一深刻视角,是近年被引用最多的对齐论文之一。

前置知识

核心概念

原理与机制

RLHF 目标 max E[r] − β·KL 在 KL 约束下有闭式最优解 π*(y) ∝ π_ref(y)·exp(r(y)/β),反解得 r(y) = β·log(π(y)/π_ref(y)) + 常数。把这个「隐式奖励」代入 Bradley-Terry 偏好模型,就得到只含策略与参考模型的对数似然损失——不再需要训练 RM,也不再采样。机制上,DPO 相当于「对比学习」:拉近胜例、推远负例,且 KL 项内建在损失中防止崩塌。局限:纯离线,数据分布外的行为无法被纠正;对偏好数据噪声较敏感。

公式或模型

DPO 损失(Rafailov 等,2023):

L_DPO = − log σ( β·[ log(π(y_w|x)/π_ref(y_w|x)) − log(π(y_l|x)/π_ref(y_l|x)) ] )

直觉:让「胜例相对参考模型的提升」超过「负例的 提升」。

图示

RLHF: 偏好数据 → 训练RM → PPO在线采样 → 策略      (四个模型 + 采样回路)
DPO:  偏好数据 + 冻结参考模型 → 一步监督式损失 → 策略 (两个模型,无采样)

直观类比

RLHF 像雇教练陪练并随堂打分(在线反馈循环);DPO 像「把历史胜负录像做对比分析后直接改动作」——不需要陪练在场,但只能从已有录像里学,新的招数(数据分布外行为)无从发现。

实例或案例

开源生态中大量对话模型用 DPO 或其变体完成偏好阶段(如 Zephyr 项目采用 DPO 路线),原因即工程简单、单机可训;业界也普遍探索 RLHF 与 DPO 的混合配方(先 DPO 后在线迭代,或按能力域选择)。变体 KTO(2024)进一步允许「单条好/坏标注」而非成对数据,降低标注成本。

常见误区

与其他知识点的关系

自测题

  1. DPO 如何消去显式奖励模型?
    答案要点:利用 KL 约束下最优策略的闭式解反解奖励为 β·log(π/π_ref),代入偏好模型后 RM 不再出现。
  2. DPO 的参考模型起什么作用?
    答案要点:提供归一化基线,把「绝对似然」变成「相对提升」,隐式承载 KL 约束。
  3. 相比 RLHF,DPO 的两大局限?
    答案要点:离线无探索(受数据分布限制)、对偏好噪声敏感;在线场景仍需 RL 类方法。

延伸阅读