#LLM + DPO 经典工作、发展脉络与未解问题

核心结论:DPO 仍然重要,但它的角色已经从 2023 年的“RLHF/PPO 替代明星算法”,变成了 2024–2026 年偏好优化生态里的基础组件、强 baseline、warm-up 工具和理论分析对象。

更准确地说:DPO 没有过时;但研究前沿已经从“用 DPO 替代 PPO”转向“DPO 暴露出的 offline、噪声、长度偏差、reference/KL、credit assignment、online exploration、reasoning/agent 适配等问题该如何解决”。


#1. DPO 要解决的原始矛盾:RLHF 太重,但人类偏好又很重要

#1.1 RLHF/PPO 的经典流程

在 InstructGPT / ChatGPT 早期的对齐路线里,典型 RLHF 流程是:

  1. SFT:用人工高质量指令数据微调 base model;
  2. Reward Model:收集人类偏好对,训练一个 reward model;
  3. PPO/RL:用 reward model 给模型采样输出打分,再用 PPO 优化 policy,同时加 KL 约束防止模型跑飞。

这个路线有效,但很复杂:

  • reward model 要单独训练;
  • PPO 不稳定;
  • KL 系数难调;
  • rollout 成本高;
  • reward hacking 风险大;
  • 开源社区很难复现完整工业 RLHF pipeline。

所以 2023 年左右,社区出现一个强需求:

能不能不训练显式 reward model、不跑 PPO,但仍然利用人类偏好数据?

DPO 就是在这个问题下出现的。


#2. DPO 的核心思想:把 RLHF 改写成一个 pairwise classification loss

#2.1 经典论文

Direct Preference Optimization: Your Language Model is Secretly a Reward Model

Rafailov et al., 2023, NeurIPS 2023

arXiv: 2305.18290

DPO 的关键洞察是:在 KL-regularized RLHF 中,最优 policy 和 reward 之间有一个解析关系。于是可以把 reward 写成 policy 相对于 reference model 的 log-ratio:

rθ(x,y) = β log [ πθ(y|x) / πref(y|x) ]

然后结合 Bradley-Terry 偏好模型,把“chosen 比 rejected 好”的概率写成:

P(yw ≻ yl | x) = σ( β [ log πθ(yw|x)/πref(yw|x) - log πθ(yl|x)/πref(yl|x) ] )

于是训练目标就是让 chosen 的 log-ratio 高于 rejected。

说人话:

DPO 不再显式训练 reward model,而是把当前 policy 相对 reference model 的概率变化当作隐式 reward。

如果模型相比 reference 更愿意生成 chosen、而更不愿意生成 rejected,就说明它朝人类偏好方向移动了。

#2.2 DPO 为什么快速流行?

因为它刚好打中了开源 LLM 对齐的痛点:

传统 RLHF/PPODPO
要训练 reward model不需要显式 reward model
要跑 PPO / RL rollout像 SFT 一样训练
工程复杂、不稳定简单、稳定、易复现
KL 控制麻烦reference model 隐式提供 KL anchor
需要较强 RL infra普通 finetuning 框架即可

所以 DPO 在 2023–2024 迅速成为开源 LLM post-training 的常用方法。Zephyr、OpenHermes、Nous-Hermes、OpenChat 等开源对齐路线里,DPO 或 DPO 类方法都非常常见。


#3. DPO 之前:直接偏好优化不是凭空出现的

DPO 虽然是标志性工作,但它不是突然冒出来的。它前面已经有一批工作在尝试绕开 PPO。

#3.1 SLiC-HF

SLiC-HF: Sequence Likelihood Calibration with Human Feedback

2023

核心思想:用 ranking loss / calibration loss 直接调整 chosen 和 rejected 的 likelihood,不显式跑 PPO。

它的重要性在于提前说明:

人类偏好不一定只能通过 reward model + PPO 使用,也可以直接转化成 supervised-style loss。

#3.2 RRHF

RRHF: Rank Responses to Align Language Models with Human Feedback

2023

核心思想:给多个 response 排名,让模型提高高排名回答的 likelihood,降低低排名回答的 likelihood。

它和 DPO 的关系是:RRHF 更像经验性 ranking loss,DPO 则给出了更漂亮的 KL-regularized RLHF 推导。

#3.3 这些前驱工作暴露的问题

这些方法共同说明一个趋势:

alignment 可以从“强化学习工程问题”转向“偏好数据监督学习问题”。

但它们缺少 DPO 那样简洁的理论解释。DPO 的影响力来自两点结合:

  1. 工程上像 SFT 一样简单;
  2. 理论上能从 KL-constrained RLHF 推导出来。

#4. DPO 后续发展:不是一个算法,而是一整条问题链

DPO 火了之后,后续工作基本围绕它暴露的问题展开。可以把发展脉络理解成几条线:

  1. 理论稳定性修正:DPO 会不会过优化?margin 会不会无限增大?
  2. 降低数据要求:能不能不需要 pairwise preference?
  3. 去掉 reference model:能不能不加载 reference model?
  4. 处理噪声和校准:偏好标签不可靠怎么办?
  5. 缓解长度偏差:DPO 是不是在奖励“更长”?
  6. 细粒度 credit assignment:整段回答 chosen/rejected 太粗怎么办?
  7. online 化:静态 preference data 不够怎么办?
  8. reasoning / agent 适配:长推理、工具调用、多轮轨迹中 DPO 够不够?

下面按这条问题链展开。


#5. 第一类:修正 DPO 的理论与过优化问题

#5.1 IPO:Identity Preference Optimization

代表论文:

A General Theoretical Paradigm to Understand Learning from Human Preferences

Azar et al., 2023

arXiv: 2310.12036

IPO 关注的问题是:

DPO 的 logistic loss 在确定性偏好数据上,可能不断鼓励 chosen/rejected 的 margin 变大,导致过拟合和 policy drift。

DPO 的逻辑类似:只要 chosen 比 rejected 更好,那就继续拉大差距。

问题是,如果训练数据里偏好标签总是确定性的,DPO 可能会不断增大 log-ratio margin。这样会带来:

  • policy 远离 reference;
  • 输出变模板化;
  • diversity 降低;
  • 对 preference data 过拟合;
  • 在真实生成分布上变差。

IPO 的核心直觉是:

不要无限拉大 chosen/rejected 差距,而是让它们的 reward difference 接近一个合理目标。

所以 IPO 更像给 margin 设置了一个“适度目标”,而不是越大越好。

#5.2 IPO 推动了什么?

IPO 的意义不在于完全替代 DPO,而在于它让大家意识到:

DPO 的 loss 不是天然无害的。它可能把 preference label 当成无限可信信号,从而过度优化。

这之后出现了很多 margin-aware、regularized、robust DPO 变体。


#6. 第二类:降低数据要求——从 pairwise preference 到 binary feedback

#6.1 KTO:Kahneman-Tversky Optimization

代表论文:

KTO: Model Alignment as Prospect Theoretic Optimization

Ethayarajh et al., 2024

arXiv: 2402.01306

DPO 需要数据形式:

(x, yw, yl)

也就是同一个 prompt 下要有 chosen 和 rejected。

但现实产品数据经常不是 pairwise,而是:

  • 用户点赞 / 点踩;
  • 审核通过 / 拒绝;
  • 生成结果可接受 / 不可接受;
  • 安全样本 good / bad;
  • 用户是否继续使用。

所以 KTO 问:

如果只有单条样本的 desirable / undesirable 标签,没有成对 preference,还能不能做 alignment?

KTO 借鉴 Kahneman-Tversky 的 prospect theory,即人类对收益和损失不对称。它允许用 binary feedback 做优化。

#6.2 KTO 解决的问题

  • 不需要 pairwise preference;
  • 更适合线上产品日志;
  • 更适合 AI judge 自动标注数据;
  • 数据构造成本低于 DPO。

#6.3 KTO 暴露的新问题

  • binary label 信息量比 pairwise preference 更低;
  • 正负样本比例很关键;
  • “desirable”的阈值不稳定;
  • 不同用户、不同标注者的好坏标准可能不一致;
  • 仍然需要防止 policy drift。

#6.4 发展意义

KTO 标志着偏好优化从 pairwise human preference 扩展到 cheap feedback / binary feedback / product feedback。这对实际应用非常重要。


#7. 第三类:去掉 reference model——ORPO 和 SimPO

DPO 训练时需要 reference model。对大模型来说,这意味着:

  • 显存增加;
  • 计算增加;
  • 训练 pipeline 更复杂;
  • reference choice 会影响结果。

于是 2024 年出现了很多 reference-free 路线。

#7.1 ORPO:SFT 和 preference optimization 合一

代表论文:

ORPO: Monolithic Preference Optimization without Reference Model

Hong, Lee, Thorne, 2024

arXiv: 2403.07691

ORPO 的目标是:

不要 reference model,也不要分成 SFT 和 DPO 两个阶段,而是一个 loss 同时完成模仿 chosen 和压低 rejected。

它的目标大致是:

L_ORPO = L_SFT + λ L_OR

其中:

  • SFT loss 提高 chosen response 概率;
  • odds ratio loss 拉开 chosen 和 rejected。

#7.2 ORPO 解决的问题

  • 不需要 reference model;
  • 训练成本低;
  • SFT 和 preference optimization 合一;
  • 对资源有限的开源训练很友好。

#7.3 ORPO 的问题

  • 没有 reference anchor,policy 更容易漂移;
  • chosen 同时作为 SFT target 和 preference target,对 chosen 质量依赖很强;
  • 如果 rejected 很弱,训练信号有限;
  • 如果 rejected mislabeled,影响很大;
  • 更像 SFT 阶段增强,不一定适合强模型后期 alignment。

#7.4 SimPO:更简单的 reference-free DPO

代表论文:

SimPO: Simple Preference Optimization with a Reference-Free Reward

Meng et al., 2024

arXiv: 2405.14734

SimPO 认为 DPO 有两个明显问题:

  1. 需要 reference model;
  2. sequence log-prob 容易有长度偏差。

它用当前模型的平均 log-probability 作为 reward:

r(x,y) = (1 / |y|) log πθ(y|x)

也就是 length-normalized likelihood。然后用 margin-based preference loss,让 chosen 的平均 log-prob 高于 rejected。

#7.5 SimPO 解决的问题

  • 不需要 reference model;
  • 用平均 log-prob 缓解长度偏差;
  • 目标更接近生成时的平均 token likelihood;
  • 工程极简。

#7.6 SimPO 的问题

  • reference-free 意味着更容易 drift;
  • 平均 log-prob 不等于真实人类偏好;
  • 可能偏好高频、保守、模板化表达;
  • margin 是新的关键超参;
  • 理论上不再像 DPO 那样直接对应 KL-regularized RLHF。

#7.7 SimPO 的意义

SimPO 代表了 2024 年以后很强的一条实用主义路线:

不再执着于严格 RLHF 推导,而是设计简单、有效、低成本的 preference loss。


#8. 第四类:处理偏好噪声与校准问题

DPO 默认 chosen/rejected 标签是可靠的。但现实中偏好数据经常很脏:

  • 人类标注者意见不一致;
  • AI judge 有偏差;
  • chosen 只是总体略好;
  • rejected 也可能有局部优点;
  • 多目标偏好互相冲突;
  • 安全、帮助性、真实性、简洁性无法压缩成一个二元标签。

所以 2024–2026 出现大量 robust / calibrated DPO 变体。

#8.1 R-DPO / Robust DPO

这是一类方法,不一定指单篇统一论文。

核心目标:

让 DPO 不要过度相信 noisy preference labels。

常见思路包括:

  1. label-noise modeling:假设偏好标签有 flip probability,对 loss 做修正。
  2. confidence-weighted DPO:根据 judge confidence 或 preference margin 给样本加权。
  3. distributionally robust DPO:优化 worst-case preference risk,增强分布外鲁棒性。
  4. regularized DPO:加强 KL、margin、entropy 等约束,防止错误偏好导致模型跑飞。

#8.2 Cal-DPO / AlphaDPO 等

代表工作包括:

  • Cal-DPO: Calibrated Direct Preference Optimization for Language Model Alignment, 2024, arXiv: 2412.14516
  • AlphaDPO: Adaptive Reward Margin for Direct Preference Optimization, 2024, arXiv: 2410.10148

这些工作说明 DPO 的一个核心问题是:

DPO 不知道每个 preference pair 应该被多强地相信,也不知道 chosen/rejected 差距应该拉多大。

也就是说,DPO 的“偏好强度”缺少校准。


#9. 第五类:长度偏差与 verbosity bias

这是 DPO 非常重要、也很容易被忽略的问题。

#9.1 为什么 DPO 会有长度问题?

DPO 用的是 sequence log-prob:

log π(y|x) = Σt log π(yt | x, y<t)

这天然和长度有关。

如果 preference dataset 里 chosen 往往比 rejected 更长,模型可能学到:

更长 = 更好

而不是真正学到:

更准确、更有帮助、更符合用户意图 = 更好

这会导致:

  • 回答变长;
  • 解释过度;
  • 信息密度下降;
  • 模板话术增加;
  • 安全免责声明变多;
  • reasoning 中出现更长但不更正确的 CoT。

#9.2 相关工作

代表论文:

Loose lips sink ships: Mitigating Length Bias in Reinforcement Learning from Human Feedback

Shen et al., 2023

arXiv: 2310.05199

Length Desensitization in Direct Preference Optimization

Liu et al., 2024

arXiv: 2409.06411

这些工作说明,DPO/RLHF 很容易把长度当作 reward proxy。

#9.3 这对 reasoning 很危险

对推理模型来说,长度偏差尤其麻烦:

  • 更长 CoT 不一定更正确;
  • 模型可能学会写“看起来合理”的推理;
  • 可能强化 post-hoc rationalization;
  • 可能在 benchmark 上讨好 judge,但真实能力没提升。

这和 latent reasoning 很相关:

如果训练目标奖励显式长 CoT,模型可能优化的是“可见推理文本”,而不是内部真正有效的 latent computation。


#10. 第六类:DPO 的 sequence-level credit assignment 太粗

DPO 的训练单位是整段 response:

(x, yw, yl)

但一个回答好坏往往来自局部:

  • 某个数学步骤错了;
  • 某个工具调用错了;
  • 某个事实 hallucinate 了;
  • 某段安全表述越界了;
  • 某个代码 patch 引入 bug;
  • 某个 reasoning branch 方向错了。

整段 chosen/rejected 只能告诉模型“总体哪个好”,不能告诉模型“哪里好、哪里坏”。

#10.1 TDPO / token-level DPO

代表论文:

TIS-DPO: Token-level Importance Sampling for Direct Preference Optimization With Estimated Weights

2024

arXiv: 2410.04350

相关方向还有 Token-level Direct Preference Optimization。

核心思想:

不要把整段 response 当成一个不可分割的 arm,而要考虑 token-level 或局部 token 的重要性。

它想解决:

  • DPO 的 sequence-level preference 太粗;
  • rejected 中也可能有好 token;
  • chosen 中也可能有坏 token;
  • 长回答中的关键错误被整体 preference 淹没;
  • token-level KL / reward contribution 需要更精细控制。

但如果标签仍然只是 sequence-level chosen/rejected,那 token-level 权重本质上还是估计出来的,而不是真实标注。所以 token-level DPO 是进步,但还没完全解决 step-level / process-level credit assignment。

#10.2 Step-DPO:面向长链推理的 step-wise preference

代表论文:

Step-DPO: Step-wise Preference Optimization for Long-chain Reasoning of LLMs

Lai et al., 2024

arXiv: 2406.18629

Step-DPO 关注数学推理:

对 long-chain reasoning 来说,只知道最终回答好坏不够,应该对推理步骤做 preference optimization。

它把偏好优化单位从 response 变成 reasoning step。

为什么重要?因为数学/代码/agent 里真正的问题是:

  • 哪一步开始错?
  • 哪一步是无效探索?
  • 哪一步虽然中间看似绕路,但最终有帮助?
  • 失败轨迹中有没有可复用的好步骤?

普通 DPO 不知道这些。


#11. 第七类:从 offline DPO 到 online / iterative DPO

DPO 原始形式是 offline:

  • 数据固定;
  • preference pair 来自旧 policy;
  • 训练时不采样当前 policy;
  • 不探索新行为。

这带来根本问题:

模型训练后进入的新分布,offline preference data 可能没有覆盖。

#11.1 offline DPO 的问题

假设 preference data 来自 SFT model 或旧版本模型。DPO 训练后,policy 变了,它会生成新风格、新错误、新路径。

但离线数据里没有这些新输出的偏好标签。

于是 DPO 容易:

  • 只在旧数据分布上变好;
  • 对当前 policy 的真实错误无能为力;
  • 学到偏好分类边界,而不是提升 deployment-time generation;
  • 在 benchmark 上变强,但真实任务不一定变强。

#11.2 online alignment 相关证据

代表论文:

Understanding the performance gap between online and offline alignment algorithms

Tang et al., 2024

arXiv: 2405.08448

这类工作指出:

  • online alignment 在 reward overoptimization 场景下通常更强;
  • offline 方法的 pairwise classification 能力不等于实际生成质量;
  • offline data coverage 和 data quality 不能完全解释 online/offline gap;
  • 当前 policy 采样出来的数据对持续提升很关键。

#11.3 Online DPO / Iterative DPO

Online DPO 的典型流程:

  1. 当前 policy 对 prompt 采样多个回答;
  2. 人类、reward model、LLM judge 或 verifier 排序;
  3. 构造新的 chosen/rejected pair;
  4. 用 DPO 更新模型;
  5. 重复迭代。

它解决的问题是:preference data 跟着 policy 走,而不是停留在旧模型分布。

但 online DPO 引入新风险:

  • judge bias 自我强化;
  • 模型学会讨好 judge;
  • reward hacking;
  • diversity collapse;
  • 数据越来越窄;
  • 成本升高;
  • 安全风险更难控制。

所以 online DPO 实际上把问题推向了更一般的 online RL / self-improvement / verifier-guided training。


#12. DPO 和 reasoning / RLVR 的关系

这是现在很关键的问题:在 2025–2026 的 reasoning model 时代,DPO 还够不够?

我的判断:

DPO 对 style、helpfulness、safety、instruction following 很有效;但对数学、代码、agent planning、长链推理,仅靠 DPO 不够。

原因有几个。

#12.1 Reasoning 需要探索,DPO 本身不探索

数学和代码能力经常来自:

  • 尝试不同解法;
  • 失败后回退;
  • 运行测试;
  • verifier 检查;
  • 搜索更长路径;
  • 自我修正。

DPO 只是在已有 chosen/rejected 上重加权,不产生新经验。

所以 reasoning 前沿更关注:

  • RLVR;
  • GRPO;
  • PPO-like online RL;
  • verifier-guided RL;
  • process reward model;
  • rejection sampling + iterative training。

#12.2 outcome preference 太稀疏

一个数学答案 chosen 比 rejected 好,不代表模型知道:

  • 哪个推理步骤有效;
  • 哪个步骤错了;
  • 为什么错;
  • 是否只是 final answer 碰巧正确。

所以 DPO 容易强化“看起来像好推理”的文本,而不是实际推理能力。

#12.3 DPO 可以做 warm-up,但难做最终优化器

在 reasoning 训练里,DPO 更适合:

  • 用于 cold start;
  • 用于偏好风格对齐;
  • 用于安全和格式控制;
  • 用于从 verifier / judge 产生的 pairwise 数据做初步优化。

但真正提升深层 reasoning,往往需要 on-policy RLVR 或过程监督。


#13. DPO 和 LLM Agent 的关系:问题更严重

普通 DPO 数据是:

(x, yw, yl)

但 agent 的决策过程是:

st, at, ot+1, rt, ...

也就是:

  • 状态;
  • 动作;
  • 工具调用;
  • 外部观察;
  • 中间失败;
  • 修复;
  • 最终任务成功与否。

#13.1 Agent 偏好是 trajectory-level,不是 response-level

一个 agent 轨迹可能包括:

  1. 理解任务;
  2. 检索网页;
  3. 读文件;
  4. 写代码;
  5. 运行测试;
  6. 修 bug;
  7. 再测试;
  8. 总结结果。

如果只对整条轨迹做 chosen/rejected,模型不知道:

  • 哪个工具调用关键;
  • 哪个文件读取多余;
  • 哪个错误修复有效;
  • 哪一步导致任务失败;
  • 哪个中间失败其实是必要探索。

#13.2 Agent 需要 cost-aware preference

用户对 agent 的偏好不是单一“最终答案好不好”,还包括:

  • 是否少打扰用户;
  • 是否工具调用合理;
  • 是否避免危险操作;
  • 是否验证结果;
  • 是否成本低;
  • 是否能从错误恢复;
  • 是否能主动分解任务;
  • 是否知道什么时候停止。

普通 DPO 很难表达这些多目标偏好。

#13.3 Agent 更需要 step-level / tool-level / state-conditioned DPO

更合理的方向可能是:

(st, at+, at-)

也就是在同一个状态下比较两个动作:

  • 该不该搜索;
  • 该调用哪个工具;
  • 该读哪个文件;
  • 该不该问用户;
  • 该不该继续探索。

这比整段 response preference 更接近 agent RL。


#14. DPO 当前是否仍受关注?

结论:是,仍然非常受关注。

但关注方式已经变化。

#14.1 检索证据

调研中检索了 2024–2026 arXiv 上标题/摘要中明确包含 Direct Preference Optimization 或 DPO 的论文。粗略统计显示:

年份明确含 “Direct Preference Optimization” 的 arXiv 论文数含 DPO / Direct Preference Optimization 的相关结果
2024约 61 篇约 93 篇
2025约 81 篇约 132 篇
2026 截至 6 月中旬约 46 篇约 74 篇

说明:

  • “DPO” 作为缩写有少量歧义;
  • 更保守应看 “Direct Preference Optimization” 精确短语;
  • 即便按保守口径,2024–2026 仍持续有大量新工作。

所以 DPO 没有退潮成无人关注的方法。

#14.2 但 DPO 不再是唯一中心

2023 年社区关注:

DPO 能否替代 PPO/RLHF?

2024–2026 年社区关注:

DPO 作为基础偏好优化模块,还有哪些问题?如何修补?如何迁移到多模态、推理、agent、安全、领域模型?

也就是说,DPO 从“新方法”变成了“基础设施”。


#15. 现在 DPO 被关注在哪些方向?

#15.1 作为标准 baseline

几乎所有新的 preference optimization 方法都会和 DPO 对比:

  • IPO
  • KTO
  • ORPO
  • SimPO
  • CPO
  • Cal-DPO
  • AlphaDPO
  • Robust DPO
  • Online DPO
  • Step-DPO
  • TDPO

DPO 已经是 post-training 论文里的默认参照物。

#15.2 作为工程组件

DPO 仍被广泛用于:

  • SFT 后轻量 alignment;
  • domain adaptation;
  • safety alignment;
  • refusal tuning;
  • LLM-as-judge 偏好数据训练;
  • 多模态 hallucination 缓解;
  • 图像/视频生成偏好对齐;
  • code generation;
  • recommender systems;
  • clinical summarization;
  • speech/audio LLM。

这说明 DPO 已工程化。

#15.3 多模态 DPO

2024–2026 有大量工作把 DPO 扩展到:

  • LVLM hallucination;
  • image generation;
  • video diffusion;
  • multimodal reasoning;
  • autonomous driving;
  • medical vision-language。

代表方向包括:

  • V-DPO:用 vision-guided preference 缓解 LVLM hallucination;
  • VideoDPO:视频生成偏好对齐;
  • MIA-DPO:multi-image preference;
  • CHiP / VistaDPO 等层级多模态偏好优化;
  • diffusion / flow matching 上的 DPO 变体。

这说明 DPO 的思想已经超出纯文本 LLM。

#15.4 reasoning / math / code / agent

DPO 仍常被用于:

  • iterative DPO;
  • step-wise DPO;
  • code generation DPO;
  • tool-augmented LLM DPO;
  • computer-use agent preference learning;
  • math reasoning preference optimization。

但它在这些方向经常和 GRPO、RLVR、process reward、verifier-guided RL 比较。

这说明:

DPO 还在用,但大家已经意识到:复杂推理和 agent 不能只靠 response-level offline preference。

#15.5 safety alignment

DPO 也大量用于安全:

  • refusal alignment;
  • jailbreak defense;
  • toxicity reduction;
  • instruction hierarchy;
  • harmfulness suppression;
  • hallucination mitigation;
  • multilingual safety。

原因是安全偏好常常可以构造成 chosen/rejected:

  • 安全拒答 vs 不安全回答;
  • faithful answer vs hallucinated answer;
  • 遵守 hierarchy 的回答 vs 被 prompt injection 带偏的回答。

所以 DPO 在 safety post-training 中依然很常用。


#16. DPO 的核心问题总结

下面是我认为最重要的 DPO 问题,不是小修小补,而是范式层面的限制。

#16.1 它优化的是 pairwise classification,不等于优化自由生成质量

DPO 训练目标是 chosen 相对 rejected 的 margin 更大。但部署时我们要的是对任意 prompt 自由生成高质量答案。

这两者不完全一致。

模型可以在训练 pair 上分得很好,但实际生成时:

  • 变长;
  • 变模板;
  • 更会讨好 judge;
  • factuality 不提升;
  • reasoning 不提升;
  • 分布外泛化差。

#16.2 offline 数据分布会过时

DPO 通常用静态 preference data。

但 policy 训练后变了,它会访问新分布。旧数据不覆盖新错误。

这对 agent / reasoning 尤其严重,因为能力来自探索和环境反馈。

#16.3 reference model 既是稳定器,也是偏置来源

DPO 依赖:

log πθ / πref

reference model 不只是正则项,也是 reward 定义的一部分。

如果 reference model:

  • 本来不会推理;
  • 不会用工具;
  • 偏好冗长;
  • 有安全套话偏差;
  • 不擅长某领域;

DPO 可能继承甚至放大这些偏差。

同时,KL-to-reference 可能抑制真正的能力跃迁。例如 agent 可能需要偏离 SFT 行为,进行更长搜索和工具调用,但 reference KL 会惩罚这种行为。

#16.4 β / KL 强度敏感

DPO 的 β 控制 preference strength 和 reference constraint。

  • β 太大:模型变化弱;
  • β 太小:模型容易跑飞;
  • 不同任务、样本、训练阶段需要不同 β;
  • agent 的不同状态也可能需要不同 KL。

固定 β 对复杂任务很粗糙。

#16.5 preference noise 被强行放大

DPO 默认 chosen/rejected 是可靠的。

但现实偏好数据里:

  • 人类会错;
  • AI judge 会错;
  • chosen/rejected 差距很小;
  • 多目标冲突;
  • 风格偏好混入事实判断;
  • rejected 可能局部更好;
  • chosen 可能只是更会包装。

DPO 会把这些噪声当成强监督信号。

#16.6 长度偏差 / verbosity bias

DPO 容易学到:

更长、更详细、更像 benchmark 偏好的回答更好。

这在 AlpacaEval / MT-Bench / LLM judge 评测里尤其危险,因为 judge 也可能偏好长回答。

对 reasoning 来说,这可能导致:

更长的 CoT,而不是更强的推理。

#16.7 likelihood displacement:chosen 概率不一定真的上升

DPO 优化的是相对 margin。模型可以通过大幅降低 rejected 概率来扩大 margin,而不一定提高 chosen 概率。

相关论文:

DPO-Shift: Shifting the Distribution of Direct Preference Optimization

2025

arXiv: 2502.07599

这类工作指出,DPO 及变体中 chosen response probability 可能下降。这说明 DPO 的目标和“让模型更常生成好答案”之间存在错位。

#16.8 response-level credit assignment 太粗

DPO 不知道:

  • 哪个 token 关键;
  • 哪个 reasoning step 错;
  • 哪个 tool call 有用;
  • 哪个中间失败是必要探索;
  • 哪个局部 hallucination 导致整体失败。

这使它不适合作为长轨迹 agent 的唯一训练目标。

#16.9 对 latent reasoning 不友好

DPO 优化的是可见输出 token。

如果 chosen 的显式 CoT 更长、更像人类解释,DPO 可能强化显式推理文本。

但真正的 reasoning 能力可能来自 latent computation。

这就产生一个关键错位:

DPO 可能训练模型“写出看起来像推理的文本”,而不一定训练模型“内部进行更有效的推理”。

这和 latent-space reasoning 很相关。


#17. 方法谱系总表

方法年份解决什么问题核心贡献新问题
RLHF/PPO2017–2022用人类偏好优化模型reward model + PPO工程复杂、不稳定、成本高
SLiC-HF / RRHF2023绕开 PPOranking / likelihood calibration理论不如 DPO 简洁
DPO2023直接用 preference pair 替代 PPOKL-RLHF 改写成 pairwise lossoffline、噪声、长度、credit assignment
IPO2023DPO margin 过优化不鼓励无限拉大 margin工程生态较弱
KTO2024pairwise 数据昂贵用 binary feedback alignment信息量低、校准难
ORPO2024reference model 成本高SFT + preference 合一,无 reference容易 drift,依赖数据质量
SimPO2024reference 依赖、长度偏差reference-free + length-normalized reward平均 log-prob 不等于偏好
Cal-DPO / AlphaDPO2024偏好强度未校准动态 margin / calibrated loss新超参和调度策略
Robust DPO2024–2025preference noise噪声建模、confidence weighting噪声率难估计
TDPO / TIS-DPO2024token-level credit assignmenttoken importance / token-level loss仍缺真实 token label
Step-DPO2024长链推理 step creditreasoning step-level preferencestep 数据构造成本高
Online DPO2024–2026offline data 过时当前 policy 采样 + judge 偏好 + DPOjudge hacking、自我强化

#18. 研究判断

#18.1 DPO 的历史定位

DPO 是 LLM alignment 的一个关键拐点。

它的贡献不是“解决了 alignment”,而是:

把 RLHF 从复杂 RL pipeline 拉回到 supervised finetuning 生态,让偏好优化变得可复现、可扩展、可开源。

这非常重要。

#18.2 DPO 当前定位

现在 DPO 更像:

  1. baseline:所有新 preference optimization 都要和它比;
  2. warm-up:reasoning / agent RL 前的偏好初始化;
  3. style/safety alignment 工具
  4. 偏好数据质量诊断工具
  5. 理论分析对象
  6. 多模态/领域模型后训练通用组件

#18.3 DPO 不适合作为最终答案的场景

对于这些任务,DPO 单独不够:

  • 长链数学推理;
  • 代码 agent;
  • tool-use agent;
  • web navigation;
  • long-horizon planning;
  • self-improving agents;
  • latent reasoning;
  • 需要探索的任务;
  • 需要 verifiable reward 的任务;
  • 需要 multi-step credit assignment 的任务。

这些方向更需要:

  • online RL;
  • RLVR;
  • GRPO / PPO-like methods;
  • process reward;
  • verifier-guided search;
  • trajectory-level credit assignment;
  • model-based RL;
  • latent state/value learning。

#19. 可能有价值的研究机会

结合 LLM Agent、model-based RL、latent reasoning,DPO 后续最有意思的问题不是再发明一个小 loss,而是下面这些。

#19.1 Trajectory-DPO:从 response preference 到 agent trajectory preference

问题:

能不能把 DPO 扩展到 agent 轨迹,但不只是粗暴比较整条轨迹?

可能方向:

  • trajectory-level DPO;
  • segment-level DPO;
  • subgoal-level preference;
  • tool-call-level preference;
  • cost-aware trajectory preference;
  • success/failure trajectory decomposition。

关键挑战:

如何把整条轨迹的最终偏好,分解到中间 decision points?

这本质是 agent credit assignment。

#19.2 State-conditioned DPO:在同一状态比较动作

普通 DPO 比较:

(x, yw, yl)

Agent 更需要比较:

(st, at+, at-)

也就是:

  • 当前状态下该不该搜索?
  • 该调用哪个工具?
  • 该读哪个文件?
  • 该不该继续 debug?
  • 该不该问用户?
  • 该不该停止?

这更接近 Q-learning / advantage learning,也更适合和 model-based RL 结合。

#19.3 DPO + Verifiable Reward 混合训练

DPO 学人类偏好,RLVR 学客观正确性。

很多任务需要两者:

任务Verifiable rewardPreference reward
数学答案正确解法清晰
代码测试通过patch 可维护
搜索引用可验证总结易读
Agent任务完成成本低、少打扰
安全不违规仍然有帮助

值得研究:

R = R_verifiable + λ R_preference

或者:

  1. SFT 学基本格式;
  2. DPO 学人类偏好;
  3. RLVR 学可验证能力;
  4. online preference 修正用户体验。

#19.4 Latent-DPO:偏好不只作用于可见 token

如果未来模型有 latent reasoning state / hidden scratchpad,可以问:

能不能对 latent plan / latent trajectory 做 preference optimization?

可能方向:

  • 成功/失败轨迹的 hidden-state contrast;
  • latent plan preference;
  • hidden deliberation budget control;
  • anti-verbosity DPO;
  • reward latent computation 而不是长 CoT。

这个方向和“不要把显式长 CoT 当推理能力”高度相关。

#19.5 Adaptive reference / state-dependent KL

DPO 的 reference 太固定。

Agent / reasoning 里可能需要:

  • 简单任务强 KL,避免废话;
  • 困难任务弱 KL,允许探索;
  • 安全相关强 KL;
  • 工具调用阶段用 tool-use reference;
  • 推理阶段用 reasoning reference;
  • 用户体验阶段用 concise/helpful reference。

也就是:

β = β(st, task, uncertainty, risk)

这比固定 β-DPO 更 agentic。

#19.6 Preference model 不应是单一 scalar

DPO 把偏好压成:

yw ≻ yl

但真实用户偏好是多维的:

  • 正确性;
  • 简洁性;
  • 安全性;
  • 主动性;
  • 成本;
  • 速度;
  • 风格;
  • 不打扰;
  • 可验证;
  • 个性化。

未来 agent 可能需要 vector-valued preference / Pareto-DPO / controllable preference alignment。

这很适合做用户个性化 agent。


#20. 最后总结

DPO 的本质可以概括为:

用 preference pair 直接训练 policy,使 chosen 相对于 rejected 在当前模型/reference model 的 log-ratio 上更优,从而绕开显式 reward model 和 PPO。

它解决了:

  • RLHF 工程复杂;
  • reward model 训练麻烦;
  • PPO 不稳定;
  • 开源复现困难。

但它留下了:

  • offline data mismatch;
  • preference noise;
  • reference bias;
  • β 敏感;
  • 长度偏差;
  • likelihood displacement;
  • reward overoptimization;
  • response-level credit assignment 粗糙;
  • 对 reasoning / agent / latent computation 不适配。

所以我对 DPO 的判断是:

DPO 是偏好优化的“牛顿力学”级工具:简单、经典、仍然有用,但不是复杂智能体训练的最终理论。

对普通 chat alignment,它仍然很好用。

对 reasoning model,它适合 warm-up 和风格/安全对齐。

对 LLM Agent,它需要升级成 state/step/trajectory-level、online、verifiable、model-based 的偏好-RL 混合框架。

对 latent reasoning,它更像一个暴露问题的起点:我们不能只优化可见推理文本,还要想办法优化内部决策状态和计算过程。