DPO 的算法原理是什么?
未标记
考查重点:相对概率与成对偏好。以优劣回答的策略/参考概率比构损失,增相对偏好,不必先奖励模型再 PPO
本题目录
参考答案
核心回答
DPO(Direct Preference Optimization,直接偏好优化)利用同一问题下的优选回答与劣选回答,直接优化策略模型对这对回答的相对偏好。它把带参考策略 KL 正则的奖励最大化目标,转化成可用监督学习方式训练的偏好分类损失,不需要先单独训练一个显式奖励模型,再执行标准 PPO 的在线采样更新循环。
偏好对与参考策略如何参与
每条样本是 (x, y_w, y_l):x 为问题,y_w 是标注偏好的回答,y_l 是较差回答。训练时有可更新的策略 πθ,以及冻结的参考策略 πref,通常从 SFT 模型初始化。
定义两份回答相对参考策略的 log 概率提升之差:
Δθ = log[πθ(y_w|x) / πref(y_w|x)]
− log[πθ(y_l|x) / πref(y_l|x)]
标准 DPO 损失为,其中期望取自偏好对数据集:
L_DPO = −E[log σ(βΔθ)]
σ 是 sigmoid,β>0 对应原目标中参考策略 KL 项的系数。训练希望优选回答相对参考策略的提升,大于劣选回答的相对提升;参考策略提供比较基准,不参与梯度更新。
这里的 log π(y|x) 是完整回答序列的 log 概率,通常对回答 token 的条件 log 概率求和,排除 prompt 和 padding,并按统一的结束标记、模板与截断规则处理。直接除以回答长度会改变原始目标,属于需要单独说明的变体。
为什么能省去显式奖励模型
从奖励最大化加 KL 正则的目标出发:
最大化 E_{y~π}[r(x,y)] − β KL(π || πref)
其最优策略满足 π*(y|x) ∝ πref(y|x) × exp(r(x,y)/β),反过来可写成:
r(x,y) = β log[π*(y|x) / πref(y|x)] + β log Z(x)
Bradley–Terry 偏好模型用 σ(r_w−r_l) 描述优选概率。同一问题两份回答的奖励相减时,log Z(x) 抵消,便得到上面的 DPO 损失。因此策略的 log 概率比同时起到了隐式奖励的作用。
这是在相应偏好模型与优化假设下的推导,不表示有限、带噪的数据训练后就自动得到真实用户偏好的最优模型。
一个可复算例子
为方便计算,取 β=1。假设参考策略对两份回答的概率均为 0.2,当前策略对优选回答给 0.4,对劣选回答给 0.1,则:
Δ = log 2 − log 0.5 = log 4
σ(Δ) = 0.8
单样本损失 ℓ = −log 0.8 ≈ 0.2231
当当前策略与参考策略相同时,Δ=0,损失为 log 2≈0.6931。示例说明该偏好对已被赋予更高的优选概率,并不是推荐的超参数设置或实测训练结果。
与 SFT、PPO 的边界
SFT 主要学习优质回答的似然;DPO 同时使用优选与劣选回答,学习相对参考模型的偏好差异。标准离线 DPO 可直接读取固定偏好对,训练链路较简单;在线收集新偏好再训练属于扩展工作流,不能据此说 DPO 永远无法使用在线数据。
PPO 常从当前策略采样,依据奖励和优势估计更新,可以结合环境反馈;DPO 的效果更依赖偏好对质量、覆盖范围和参考策略是否合适。标签噪声、长度偏好、分布偏移与过度优化都可能导致退化。β 在理论目标中控制偏离参考的代价,但实际梯度也受其缩放影响,不能简单理解为“越大每步改得越少”。
参考资料
- 国内:WeThinkIn:强化学习高频知识点:借鉴偏好对训练链路,解释正文中标准离线 DPO 的数据来源及偏好质量对优化的影响。
- 国内:zero2Agent:训练与数据:参考 DPO 与在线策略优化的比较,区分正文中固定偏好对训练和在线采样、评分的链路。
- 国内:DeepSeek-AI 等:DeepSeekMath:借鉴附录中 DPO、PPO 的讨论,解释正文中离线偏好与环境奖励、优势更新的信号差异。
- 国外:Rafailov 等:Direct Preference Optimization:依据从 KL 正则目标、隐式奖励到 Bradley–Terry 模型的推导,说明正文中的标准 DPO 损失及参考策略作用。
- 国外:Schulman 等:PPO:参考 PPO 的采样、裁剪与价值估计,解释正文中它与 DPO 离线偏好训练的流程差别。
相关面经
9 篇收录题集
大模型基础
编码题专题汇编
RLHF、PPO、DPO、损失函数
后训练章节追问
后训练综合问答
强化学习与对齐
「腾讯、腾讯混元、阿里通义」
DPO原理与应用 介绍DPO(Direct Preference Optimization)的原理、适用任务及与SFT的关系。变体: 「京东、字节跳动、美团」
DPO原理: 「京东、字节Seed、字节跳动、百度、百度文心、美团、蚂蚁集团、阿里巴巴」


