DPO:通过相对对数概率学习偏好
推导成对偏好 margin,并观察 β 对单个偏好样本的影响。
Direct Preference Optimization: Your Language Model is Secretly a Reward Model · Rafailov et al. · arXiv:2305.18290
Token Lab 原创学习解读 · 来源核对 2026-10-25 · 区分论文主张与合成教学例子。
01 · 论文提出了什么
DPO 借助参考策略,将 KL 正则奖励目标重参数化为偏好分类损失。论文评估情感、摘要与对话任务,该目标避免了对比设置中显式奖励模型加在线 RL 的训练循环。
一手来源:论文摘要 ↗学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
02 · 核心机制
Text / 原始公式
Δ = log πθ(yw|x) − log πθ(yl|x)
− log πref(yw|x) + log πref(yl|x)
L = −log σ(βΔ)
∂L/∂Δ = −βσ(−βΔ)margin 比较优选答案相对落选答案的增益,再扣除参考策略本来的偏好;它不是简单的优选答案概率。序列对数概率必须采用一致的分词、掩码和求和。推导中的 KL 惩罚鼓励接近参考策略,但有限数据和有限优化并不保证任意硬 KL 上限。
符号与直觉为教学解释,完整假设及实现细节请对照原论文方法。
机制图与逐步推导
| 符号 | 含义 |
|---|---|
| yw, yl | 优选与落选完整回答 |
| πref | 冻结参考策略 |
| Δ | 策略偏好 log-odds 减参考 log-odds |
- 在一致掩码约定下,仅计算回答 token 的对数概率,不应让 prompt token 概率意外影响回答比较。
- 策略分数为 −2、−3,参考为 −2.5、−3.2。策略差 1,参考差 0.7,因此
。 时 ,损失约 0.437488。 - 对 −logσ(βΔ) 求导得 −βσ(−βΔ),此处约 −0.708687。交换回答标签使
,损失增至约 1.037488。
断言策略与参考相同时损失为 log 2,测试标签交换与 padding 掩码。更低偏好损失不证明事实正确。
改变一个变量,解释结果为什么变。
原创教学计算,并非论文 benchmark 复现。条形在面板内相对缩放,具体数值与单位以标注为准。
04 · 手算一个例子
原创算例:策略对数 odds 为 0.8,参考为 0.3,因此
05 · 设计实验
先创建三组合成偏好对,手算损失,再训练。测试交换优选与落选是否使 Δ 变号。真实 POC 中固定参考 checkpoint,按 prompt 留出数据而非按单个 response;与监督基线比较,跟踪留出偏好准确率、生成质量、长度和估计 KL 漂移。
写出一个假设,保存配置与原始结果,提出替代解释,只报告证据支持的结论。关联实验是本地起点,不是完整论文复现。
打开关联课程/实验 →06 · 局限与审稿式追问
分析提醒:偏好标签可能包含文风偏差、不一致或分布缺口。训练损失下降不能证明事实性、安全性或用户效用改善。序列长度可能混淆比较,应记录准确评分约定,不能默默改为长度归一化。
策略与参考完全相同时,每一对的损失是什么?
两个对数比差抵消,
07 · 阅读原文
KL 正则目标、奖励重参数化与 DPO 损失推导;检查参考策略项。
年份采用首次 arXiv 投稿年份。未锁定版本的链接随修订变化,复现报告请记录准确版本。此处 DeepSeek-R1 明确固定为 v1。
继续学习本主题
LoRA:约束的是更新,而非整个模型
分解权重更新、计算可训练参数,并解释第一次梯度的不对称性。
Hu et al. · arXiv:2106.09685
QLoRA:显存预算不能只看权重位宽
区分存储权重、计算精度、适配器与训练状态,建立完整内存账本。
Dettmers et al. · arXiv:2305.14314