跳转到内容

输入关键词开始搜索

    DPO(直接偏好优化)

    概念更新 2026-07-19置信度 high#概念#基础#长青#对齐#RLHF

    一种无需显式奖励模型和强化学习的偏好对齐方法,通过重参数化将 RLHF 目标转化为简单的二元交叉熵损失,仅需几行 PyTorch 代码即可实现。

    DPO 的核心洞察:语言模型本身就隐含了一个奖励函数。利用 RLHF 最优策略的闭式解,可以反解出 r(x,y) = β·log(π/π_ref),代入 Bradley-Terry 偏好模型后归一化项神奇地抵消,最终得到一个稳定的分类损失:

    LDPO=E ⁣[logσ ⁣(βlogπθ(yw)πref(yw)βlogπθ(yl)πref(yl))]\mathcal{L}{\mathrm{DPO}} = -\mathbb{E}!\left[\log \sigma!\left(\beta\log\frac{\pi\theta(y_w)}{\pi_{\mathrm{ref}}(y_w)} - \beta\log\frac{\pi_\theta(y_l)}{\pi_{\mathrm{ref}}(y_l)}\right)\right]

    直观理解:增大好回答的相对概率,减小坏回答的相对概率,梯度自动加权。

    1. 极简实现:不需要训练独立的 RM、不需要 PPO 采样循环、不需要 Value Function
    2. 稳定训练:消除了 PPO 中难估计的归一化项(软价值函数),解决了 RLHF 的不稳定性
    3. 高效:训练期间无需从策略采样(vs PPO 每步都要采样生成)
    4. 效果优于或持平 PPO:在 TL;DR 摘要和 Anthropic HH 对话上均达到或超越 PPO
    1. 从 RLHF 的最优策略闭式解出发π*(y|x) ∝ π_ref(y|x)·exp(r(x,y)/β)
    2. 反解奖励r(x,y) = β·log(π/π_ref) + β·log Z(x) — 语言模型本身隐含了奖励模型
    3. 代入 Bradley-Terry:Z(x) 抵消,得到 DPO loss
    4. 梯度效应:增大 preferred 回答似然、减小 dispreferred 似然,错得越多梯度越大
    时间 里程碑
    2023.05 DPO 论文发布(NeurIPS 2023),RL-free 对齐范式确立
    2023.07 Llama 2 仍使用 PPO,但学界开始大量采用 DPO
    2024.01 Mixtral Instruct 使用 DPO
    2024.07 Llama 3 后训练采用迭代 SFT + DPO + Rejection Sampling(弃用 PPO)
    • DPO vs RLHF/PPO:DPO 不需要显式 RM 和 RL 采样,直接优化偏好;PPO 需要 RM→采样→PPO 更新循环
    • DPO vs IPO:IPO(Identity Preference Optimization)是 DPO 的变体,用二次损失替代 sigmoid,对过拟合更鲁棒
    • DPO vs KTO:KTO 不需要偏好对,仅需单一样本的“好/坏”标签
    • DPO vs ORPO:ORPO 将 SFT loss 和偏好优化 loss 合并,不需要参考模型
    • “DPO 不需要偏好数据” — DPO 仍然需要人类偏好对比数据,只是不需要单独训练 RM
    • “DPO 完全替代了 RLHF” — 更高温度、多轮交互等场景下 PPO 仍有优势