DPO (Direct Preference Optimization,直接偏好优化) 是由斯坦福大学研究团队提出的一种用于微调大语言模型(LLM)的算法。它的核心贡献在于:绕过了传统 RLHF(基于人类反馈的强化学习)中复杂的奖励模型(Reward Model)训练和强化学习(PPO)阶段,直接在偏好数据上优化模型。


1. 为什么需要 DPO?

传统的 RLHF 是“Prompt x→x \rightarrowx 生成 y→y \rightarrowy RM 打分 →\rightarrow PPO 优化”。DPO 简化为: 对于同一个 Prompt xxx,给定两条轨迹(Response)ywy_wyw(更优)和 yly_lyl(稍差)。目标: 让模型生成的 ywy_wyw 的相对概率越来越大,而 yly_lyl 的相对概率越来越小。

公式推导本质: 利用最优策略与奖励函数之间的解析映射(Bradley-Terry 模型),把原本需要训练 RM 和做强化学习的过程,直接简化成了一个在偏好对(Preference Pairs)上的二分类交叉熵损失函数。


2. DPO 的数学公式

DPO 的精髓在于通过数学推导,证明了最优策略与奖励函数之间存在一种解析解的关系

核心损失函数

DPO 的损失函数公式如下:

LDPO(πθ;πref)=−E(x,yw,yl)∼D[log⁡σ(βlog⁡πθ(yw∣x)πref(yw∣x)−βlog⁡πθ(yl∣x)πref(yl∣x))]L_{DPO}(\pi_\theta; \pi_{ref}) = -\mathbb{E}_{(x, y_w, y_l) \sim D} \left[ \log \sigma \left( \beta \log \frac{\pi_\theta(y_w | x)}{\pi_{ref}(y_w | x)} - \beta \log \frac{\pi_\theta(y_l | x)}{\pi_{ref}(y_l | x)} \right) \right]LDPO(πθ;πref)=E(x,yw,yl)D[logσ(βlogπref(ywx)πθ(ywx)βlogπref(ylx)πθ(ylx))]

变量解释:
  • xxx:输入的提示词(Prompt)。
  • ywy_wyw:人类偏好的回答(Winning response)。
  • yly_lyl:人类拒绝的回答(Losing response)。
  • πθ\pi_\thetaπθ:正在训练的策略模型(我们要优化的模型)。
  • πref\pi_{ref}πref:参考模型(通常是 SFT 后的模型,参数冻结)。
  • β\betaβ:一个超参数,控制对参考模型的偏离程度(类似于 RLHF 中的 KL 散度约束权重)。β\betaβ 越大,模型越保守。
  • σ\sigmaσ:Sigmoid 函数,将数值映射到 (0,1)(0, 1)(0,1) 区间。

3. 如何理解这个公式?

我们可以把公式拆解为两部分来看:

  1. 对数比值的差值 (Log-ratio difference):
    (log⁡πθ(yw∣x)πref(yw∣x)−log⁡πθ(yl∣x)πref(yl∣x))\left( \log \frac{\pi_\theta(y_w | x)}{\pi_{ref}(y_w | x)} - \log \frac{\pi_\theta(y_l | x)}{\pi_{ref}(y_l | x)} \right)(logπref(ywx)πθ(ywx)logπref(ylx)πθ(ylx))

    • 前半部分表示:当前模型相对于原始模型,在多大程度上提高了选出好答案 (ywy_wyw) 的概率。
    • 后半部分表示:当前模型相对于原始模型,在多大程度上提高了选出坏答案 (yly_lyl) 的概率。
    • 两者的差值: 衡量了模型区分“好”与“坏”的能力。
  2. 梯度的动力学:

    • 当模型把 ywy_wyw 的概率提升得比 yly_lyl 更多时,括号内的值变大。
    • 由于前面有负号和 log⁡σ\log \sigmalogσ,最小化这个损失函数会迫使模型最大化这个差值
    • 结果: 模型会学习在输入 xxx 时,尽可能提高 ywy_wyw 的生成概率,同时压低 yly_lyl 的生成概率。

4. DPO 的优势与局限

优点

  • 简单高效: 只需要像普通微调(SFT)一样训练一个模型,不需要训练奖励模型,也不需要采样生成。
  • 性能强劲: 在许多基准测试中,DPO 的效果达到甚至超过了 PPO。
  • 稳定性: 移除了强化学习中不稳定的因素,训练过程非常平滑。

局限

  • 对数据质量敏感: DPO 极度依赖于 (yw,yl)(y_w, y_l)(yw,yl) 这种对偶数据的质量。
  • 泛化能力: 有研究指出,DPO 在未见过的分布上可能不如 PPO 健壮,因为它更像是在做“分类”而非真正的“探索”。
  • 容易过拟合: 如果 β\betaβ 设置不当,模型可能会为了迎合偏好数据而损失掉基本的语言表达能力。

总结

DPO 的出现将大模型的对齐从一个“强化学习问题”转化为了一个“有监督的分类问题”。它用极其简洁的数学手段实现了复杂的对齐目标,是目前工业界处理模型偏好学习的首选方案之一。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐