DPO 是什么?它和 RLHF 有什么区别?- 一句话定位
DPO 是什么?它和 RLHF 有什么区别?- 一句话定位
DPO(Direct Preference Optimization,直接偏好优化)是 2023 年 Anthropic 提出的、用对比损失直接优化人类偏好的对齐方法,可以看成 RLHF 中 PPO 步骤的"数学等价简化版"。它把"训练奖励模型 + PPO 强化学习"两步合并为一步,在偏好数据充足时几乎可以媲美 RLHF,且显存更低、训练更稳;但在数据有限时容易过拟合,所以业界通常"SFT + DPO"作为标配,而 ChatGPT、Claude 这类闭源大模型仍坚持 RLHF (PPO)。
核心概念(术语表)
- RLHF(Reinforcement Learning from Human Feedback):用人类反馈训练奖励模型,再用强化学习优化 LLM 的对齐范式,三步走 SFT→RM→PPO。
- DPO(Direct Preference Optimization):跳过奖励模型,直接用 (y_win, y_lose) 偏好对优化语言模型的对比损失,2023 年由 Anthropic 提出。
- PPO(Proximal Policy Optimization):RLHF 中常用的 RL 算法,通过裁剪的目标函数稳定训练,是 RLHF 第三阶段的核心。
- Reward Model (RM):用人类标注的偏好对 (y_win, y_lose) 训练的"打分模型",输入 (x, y) 输出一个标量奖励 r(x,y)。
- KL 散度:衡量两个概率分布距离的指标,RLHF 用它约束微调后的模型不偏离参考模型太远。
- Reference Model:RLHF/DPO 中作为"锚点"的 SFT 模型,提供初始概率分布 π_ref(y|x)。
- Bradley-Terry 模型:经典的成对偏好概率模型 P(y_w > y_l) = σ(r(y_w) − r(y_l)),RLHF/DPO 都基于它。
- Reward Hacking:模型学会"讨好"奖励模型而非真正满足人类偏好的现象,是 RLHF 经典痛点。
- Prospect Theory / 人类价值函数:KTO 论文引入的概念,描述人类在收益/损失区域效用梯度不一致的"风险规避"特性。
- SFT(Supervised Fine-Tuning):用高质量指令数据对预训练模型做监督微调,是所有对齐流程的第一步"教模型说话"。
- RLHF 起源:2017 年由 OpenAI 和 DeepMind 在"Deep Reinforcement Learning from Human Preferences"论文中正式提出,2022 年 ChatGPT 让它家喻户晓。
- DPO 起源:2023 年由 Stanford 的 Rafailov 等人在论文《Direct Preference Optimization: Your Language Model is Secretly a Reward Model》中提出,核心洞察是"最优策略 π* 与奖励函数之间存在闭式解,因此可以直接优化策略本身"。
- 演进脉络:RLHF (PPO) → DPO → IPO / KTO / SimPO / GRPO 等系列变种,趋势是"去掉奖励模型、简化训练流程"。
工作原理 / 核心机制(详细讲解)
RLHF 三阶段流程(输入/输出/步骤):
- SFT 阶段:输入 = 高质量指令数据 {x_i, y_i};处理 = 标准 next-token 交叉熵损失;输出 = 一个能遵循指令的 SFT 模型 π_sft。
- 奖励模型训练:输入 = 同一个 prompt x 的两个回答 (y_win, y_lose),由人类或 GPT-4 标注;处理 = Bradley-Terry 损失 L_RM = −E[log σ(r_φ(x,y_win) − r_φ(x,y_lose))];输出 = 奖励模型 r_φ(x,y)。
- PPO 强化学习:输入 = prompt 集合 + 训练好的 RM;处理 = 最大化 E[r_φ(x,y)] − β·KL(π_θ ‖ π_ref);输出 = 对齐后的策略 π_θ。全程需维护 RM、参考模型、目标模型 3 个模型,对显存和稳定性都是考验。
DPO 一步到位流程:
- 输入:偏好数据集 D = {(x, y_win, y_lose)},参考模型 π_ref(通常是 SFT 模型)。
- 核心损失函数:L_DPO = −E[(x,y_w,y_l)~D] [ log σ( β·log(π_θ(y_w|x)/π_ref(y_w|x)) − β·log(π_θ(y_l|x)/π_ref(y_l|x)) ) ]。
- 处理逻辑:让"好回答 y_win 相对于参考模型的概率提升" 大于 "坏回答 y_lose 相对于参考模型的概率提升";不需要显式奖励模型,不需要采样 rollout,不需要 PPO 的 actor-critic 框架。
- 输出:直接对齐好的策略 π_θ,只需维护 2 个模型(参考模型 + 目标模型)。
从 RLHF 到 DPO 的数学推导(5 步简化):
- RLHF 目标:max_π E[r(x,y)] − β·KL(π ‖ π_ref)
- 代入 KL 散度定义 → 得到闭式最优策略 π*(y|x) ∝ π_ref(y|x)·exp(r(x,y)/β)
- 反解出奖励:r(x,y) = β·log(π*(y|x)/π_ref(y|x)) + β·log Z(x)
- 把这个 r 代入 Bradley-Terry 损失,partition function Z(x) 被两个样本相减时抵消
- 得到 DPO 损失:直接优化 π_θ 即可,无需 RM
关键洞察:DPO 不是"放弃 RLHF",而是发现 PPO 学到的最优策略 π* 其实等价于一个特殊的概率分布,所以可以直接用监督学习的方式拟合它。
关键知识点(15 条)
- RLHF 三步走:SFT → 训练奖励模型 → PPO 强化学习。
- RLHF 全程维护 3 个模型:奖励模型 + 参考模型 + 目标模型。
- DPO 只需 2 个模型:参考模型 + 目标模型,显存占用近乎减半。
- DPO 2023 年由 Stanford 的 Rafailov 等人提出(Anthropic 也参与)。
- ChatGPT、Claude 等闭源大模型 API 最终对齐仍用 RLHF (PPO)。
- Hugging Face 开源 LLM 排行榜第一的 10B 模型 + Mistral 8×7B MoE 用 DPO。
- Zephyr、Yi、Mistral-Instruct 等主流开源模型标配 SFT + DPO。
- DPO 的隐式优化目标与 PPO 数学等价(论文已证明)。
- DPO 在偏好数据有限时更容易过拟合,DeepMind 论文 4.2 节明确指出。
- PPO 学到的策略是 DPO 学到策略的"真子集"(《Is DPO Superior to PPO?》定理 4.1)。
- KL 散度是 RLHF 的"安全绳",约束模型不偏离参考太远;DPO 把 KL"内化"到了损失里。
- DPO 表现出最明显的"风险规避"——损失区域的效用梯度远大于收益区域。
- RLHF 的核心痛点:流程复杂、训练不稳、显存高、Reward Hacking。
- Reward Hacking 指模型学会"刷分"奖励模型而非真正对齐人类偏好。
- 业界主流对齐方案 = SFT (教说话) + DPO (对齐偏好),少数高价值场景叠加 PPO。
应用场景(5 个真实例子)
- 场景 1:ChatGPT / Claude:OpenAI 和 Anthropic 在最终对齐阶段仍采用 RLHF (PPO),因为闭源场景偏好数据量大、算力充足,需要 PPO 的稳健性。
- 场景 2:Mistral 8×7B MoE:在 SFT 阶段后用 DPO 进行优化,登顶 Hugging Face 开源榜单,验证了 DPO 在大模型上的可扩展性。
- 场景 3:Zephyr 系列:Hugging Face 团队用 SFT + DPO 流程训练 7B 模型,在 MT-Bench、AlpacaEval 上接近 GPT-3.5 水平,成为开源 SFT+DPO 范式的标杆。
- 场景 4:Yi 系列(零一万物):在 SFT 后用 DPO 做偏好对齐,证明 DPO 在中文场景同样有效。
- 场景 5:10B 级开源榜首模型:Hugging Face Open LLM Leaderboard 第一的 10B 模型在 SFT 后用 DPO 优化,效果显著。
常见误区 / 踩坑(5 条)
- ❌ 误区 1:很多人以为 DPO 完全取代了 RLHF。
✅ 正解:DPO 是 RLHF 中 PPO 步骤的"等价简化",不是替代品;数据充足时效果接近,数据稀缺时 RLHF 更稳健。 - ❌ 误区 2:DPO 不需要参考模型。
✅ 正解:DPO 必须保留参考模型 π_ref 用于计算 log ratio,显存省的是奖励模型,不是参考模型。 - ❌ 误区 3:DPO 训练出来就一定比 PPO 好。
✅ 正解:在有限偏好数据下,DPO 会过拟合到标注偏好上、偏离参考模型;PPO 通过显式 KL 约束更稳健(《Is DPO Superior to PPO?》定理 4.1)。 - ❌ 误区 4:DPO 等于"无 RL 的对齐"。
✅ 正解:DPO 的优化目标和 PPO 等价,只是把强化学习转化成了监督学习的对比损失形式。 - ❌ 误区 5:ChatGPT 不再用 RLHF。
✅ 正解:ChatGPT、Claude 等闭源大模型在最终对齐阶段仍坚持 RLHF (PPO),只是开源社区更多用 DPO。
性能 / 复杂度(数据驱动)
- RLHF 计算成本:需训练 RM + PPO 采样 + 多次梯度更新,单次训练显存通常 2-3×于 SFT;GPT-4 级别模型 RLHF 训练动辄数周、千卡 GPU。
- DPO 计算成本:只需一次前向 + 反向,无需采样 rollout,显存近乎减半(省掉 RM),训练速度通常比 PPO 快 2-5×。
- 与替代方案对比:
- RLHF (PPO):训练慢、显存高、效果最稳,适合闭源旗舰模型 + 大规模偏好数据。
- DPO:训练快、显存低、数据有限时易过拟合,适合开源中小模型 + 中等规模偏好数据。
- 临界点:偏好数据 > 100K 且算力充足时 PPO 更优;< 100K 且想快速迭代时 DPO 更优。
- 典型数据:Zephyr-7B 用 SFT + DPO 在 4×H100 上训练约 8 小时,效果接近 GPT-3.5;同规模 PPO 通常需要 24+ 小时。
与相关概念的区别(3 对)
- vs PPO:
- 维度 1(训练方式):PPO 是 on-policy 强化学习,需采样;DPO 是 off-policy 监督学习,无需采样。
- 维度 2(显存):PPO 需 actor + critic + ref + RM;DPO 只需 ref + policy。
- 维度 3(稳定性):PPO 有裁剪机制更稳定;DPO 在数据少时容易过拟合。
- 怎么选:数据少/算力紧选 DPO,数据多/算力够选 PPO。
- vs SFT:
- 维度 1(监督信号):SFT 用 (x,y) 单一答案;DPO 用 (y_win, y_lose) 偏好对。
- 维度 2(能力):SFT 教"怎么说",DPO 教"哪种说法更好"。
- 维度 3(顺序):SFT 是第一步,DPO 必须在 SFT 之后。
- 怎么选:SFT 是所有对齐的前提,DPO 是 SFT 之上的"偏好精修"。
- vs IPO / KTO / SimPO:
- 维度 1(损失函数):DPO 用 log-sigmoid;IPO 用二次损失;KTO 引入前景理论;SimPO 用长度归一化。
- 维度 2(数据要求):DPO 需成对偏好;KTO 只需二元"好/坏"标签更易标注。
- 维度 3(效果):DPO 是 baseline,IPO/KTO/SimPO 在不同场景各有优势。
- 怎么选:标注成本高选 KTO;想要 DPO 改进版选 IPO / SimPO。
进阶 / 面试加分项(3 条)
- 最新进展:DPO 之后学界已演化出 IPO(Identity Preference Optimization)、KTO(Prospect Theory)、SimPO(Simple Preference Optimization)、GRPO(Group Relative Policy Optimization,DeepSeek 用)、Online DPO 等变种,趋势是"去掉参考模型"或"单条偏好即可训练"。
- 业界争议:Anthropic 内部曾尝试 DPO 但最终回到 PPO;DeepMind 论文明确指出 DPO 易过拟合;学界对"DPO 是否真的等价于 PPO"在离线数据场景下仍有讨论。
- 金句送给候选人:"RLHF 教模型"拿高分",DPO 教模型"分得清好坏"——一个靠奖励函数驱动,一个靠对比损失内化,但本质都在让模型对齐人类偏好。"
主要来源:知乎专栏《DPO vs. RLHF:大型语言模型对齐的"简化"与"稳健"之争》、CSDN 博客《RLHF与DPO的本质区别》(2025-11-03)。
面试如何回答
🟢 什么是 DPO?它和 RLHF 的核心区别一句话怎么说?
回答要点:
DPO(Direct Preference Optimization) 是 2023 年 Stanford/Anthropic 提出的直接偏好优化方法,用 (y_win, y_lose) 偏好对和对比损失直接优化语言模型,可以看成 RLHF 中 PPO 步骤的"数学等价简化版"。
核心区别有三点:
- 流程:RLHF 是 SFT → 训练 RM → PPO 三步走;DPO 是 SFT → 对比损失一步到位。
- 模型数量:RLHF 维护 RM + 参考模型 + 目标模型 3 个;DPO 只需参考模型 + 目标模型 2 个。
- 优化方式:RLHF 用强化学习(PPO)采样 rollout;DPO 用监督学习的对比损失,无需采样。
真实场景:Zephyr-7B、Mistral 8×7B 等开源模型都标配 SFT + DPO,而 ChatGPT、Claude 这类闭源旗舰仍坚持 RLHF (PPO)。
金句:"RLHF 让模型"刷高分",DPO 让模型"分得清好坏"——殊途同归。"
加分项:DPO 不是替代 RLHF,而是 RLHF 的闭式解;它在数据充足时效果几乎一致,数据稀缺时 RLHF 更稳健。
🟢 请详细描述 RLHF 的三个步骤,每一步的输入输出是什么?
回答要点:
RLHF(Reinforcement Learning from Human Feedback)由三个串行阶段组成,每一步都有明确的输入和输出。
第一步 SFT(监督微调):输入是高质量指令数据 {(x_i, y_i)};处理是用标准 next-token 交叉熵损失微调预训练模型;输出是一个能遵循指令的 SFT 模型 π_sft。这是"教模型说话"的环节,所有对齐流程的前置步骤。
第二步 奖励模型训练:输入是同一个 prompt x 的两个回答 (y_win, y_lose),由人类或 GPT-4 标注优劣;处理是用 Bradley-Terry 损失 L_RM = −E[log σ(r_φ(x,y_win) − r_φ(x,y_lose))] 训练打分模型;输出是奖励模型 r_φ(x, y),对任意回答给一个标量分数。
第三步 PPO 强化学习:输入是 prompt 集合 + 训练好的 RM;处理是最大化 E[r_φ(x,y)] − β·KL(π_θ ‖ π_ref),让模型既拿高分又不过度偏离参考模型;输出是对齐后的策略 π_θ。这一步需要采样 rollout,显存和调参成本最高。
真实场景:ChatGPT 的 InstructGPT 流程就是经典 RLHF 三步走,每一步都依赖上一步的输出。
金句:"SFT 教说话,RM 教品味,PPO 教权衡——RLHF 的三步哲学。"
加分项:RLHF 全程维护 3 个模型是显存高的主因,DPO 砍掉 RM 后显存近乎减半。
🟡 DPO 为什么可以跳过奖励模型?它的核心数学推导是什么?
回答要点:
DPO 能跳过奖励模型的关键洞察是:最优 RLHF 策略 π* 与奖励函数之间存在闭式关系。
推导分五步:
- RLHF 目标:max_π E[r(x,y)] − β·KL(π ‖ π_ref)。
- 代入 KL 散度定义并求导,得到闭式最优策略 π*(y|x) ∝ π_ref(y|x)·exp(r(x,y)/β)。
- 反解出奖励函数:r(x,y) = β·log(π*(y|x)/π_ref(y|x)) + β·log Z(x),其中 Z(x) 是配分函数。
- 把这个 r 代入 Bradley-Terry 损失 L_RM,两个样本的 Z(x) 在相减时抵消,无需计算。
- 得到 DPO 损失:L_DPO = −E[log σ(β·log(π_θ(y_w)/π_ref(y_w)) − β·log(π_θ(y_l)/π_ref(y_l)))],直接优化策略 π_θ 即可。
为什么能跳过 RM:因为 RM 本身可以从 (π*, π_ref) 反推出来,所以不需要单独训 RM,直接训 π_θ 等价于隐式训 RM。
真实场景:Zephyr-7B 用这个损失在 4×H100 上训约 8 小时,效果接近 GPT-3.5。
金句:"你的语言模型本身就是一个奖励模型"——这是 DPO 论文标题的核心洞察。
加分项:DPO 不是"无 RL",而是把 RL 转化成了监督学习的对比损失形式。
🟡 DPO 有什么缺点?为什么 ChatGPT、Claude 仍坚持 RLHF?
回答要点:
DPO 看似完美,但有三个明显短板,这也是闭源大模型仍坚持 RLHF 的原因。
缺点 1:偏好数据有限时易过拟合。DeepMind 论文 4.2 节指出 DPO 在小数据集上会过拟合到标注偏好上、偏离参考模型;PPO 通过显式 KL 散度约束更稳健。《Is DPO Superior to PPO?》定理 4.1 证明:PPO 学到的策略是 DPO 学到策略的真子集,意味着 DPO 的解空间更大但更"野"。
缺点 2:人类价值函数过度风险规避。KTO 论文分析发现 DPO 在损失区域的效用梯度远大于收益区域,表现出明显的"风险规避"——这与人类的真实偏好分布不完全吻合,可能导致过度保守。
缺点 3:训练不稳定 + Reward Hacking 风险。RLHF 同样有 Reward Hacking,但 PPO 的 actor-critic + 裁剪机制能一定程度缓解;DPO 一旦拟合偏差,更难校正。
为什么闭源仍用 RLHF:OpenAI、Anthropic 拥有百万级偏好数据和万卡 GPU,偏好数据"足够多"就让 DPO 的过拟合问题不显著,但他们仍选择 PPO 是为了"上限更高、可控性更强"。
真实场景:Anthropic 内部曾测试 DPO,最终在旗舰产品 Claude 中仍采用 RLHF。
金句:"DPO 适合 80% 的开源场景,RLHF 适合 20% 的高价值场景——闭源旗舰属于后者。"
加分项:业界已有 IPO、KTO、SimPO 等改进版缓解 DPO 的过拟合和风险规避问题。
🟡 请对比 DPO 和 PPO 在训练成本、显存占用、稳定性上的差异。
回答要点:
DPO 和 PPO 在工程上有显著差异,核心来自"是否需要采样 rollout"。
训练成本:PPO 是 on-policy 算法,每步需要 actor 采样 rollout、critic 评估优势,再做梯度更新;DPO 是 off-policy 对比损失,只需一次前向+反向。实测 DPO 训练速度通常比 PPO 快 2-5 倍。
显存占用:PPO 训练需要同时加载 actor + critic + 参考模型 + 奖励模型 4 个模型;DPO 只需参考模型 + 目标模型 2 个。DPO 显存近乎减半,这在 70B+ 大模型上意义重大。
稳定性:PPO 有 clip 机制(限制策略更新幅度)+ KL 惩罚 + value loss,训练相对稳定;DPO 看似更稳(标准监督学习),但实际在偏好数据稀缺时容易过拟合到标注偏好上。
对比表:
- 训练成本:DPO << PPO(快 2-5×)
- 显存占用:DPO < PPO(省一半)
- 稳定性(小数据):DPO < PPO(DPO 易过拟合)
- 稳定性(大数据):DPO ≈ PPO
- 效果上限:DPO ≤ PPO
真实场景:Zephyr-7B 用 SFT + DPO 在 4×H100 上训约 8 小时;同规模 PPO 通常需要 24+ 小时。
金句:"DPO 用监督学习的简单换 RL 强化学习的复杂,但简单不等于更好——边界是数据量。"
加分项:当偏好数据 > 100K 且算力充足时 PPO 更优;< 100K 且想快速迭代时 DPO 更优。
🔴 请从 RLHF 出发逐步推导出 DPO 的损失函数,并解释每一步的数学含义。
回答要点:
DPO 损失是 RLHF 的"闭式解简化",推导分五步。
Step 1:RLHF 原始目标。max_π E_{(x,y)~π}[r(x,y)] − β·KL(π(·|x) ‖ π_ref(·|x))。前半部分最大化奖励,后半部分用 KL 散度约束模型不偏离参考模型。
Step 2:代入 KL 散度定义。KL(π ‖ π_ref) = E_{y~π}[log(π(y|x)/π_ref(y|x))],代入后对 π 求导并令导数为 0,得到闭式最优策略:π*(y|x) = (1/Z(x))·π_ref(y|x)·exp(r(x,y)/β),其中 Z(x) = Σ_y π_ref(y|x)·exp(r(x,y)/β) 是配分函数。
Step 3:反解奖励函数。对 π* 两边取 log 并整理,得到 r(x,y) = β·log(π*(y|x)/π_ref(y|x)) + β·log Z(x)。核心洞察:奖励函数可以由 (π*, π_ref) 表示,无需独立训练。
Step 4:代入 Bradley-Terry 损失。原始 RM 损失是 −log σ(r(x,y_w) − r(x,y_l));把 Step 3 的 r 代入,注意 Z(x) 在 y_w 和 y_l 两个样本的减法中完全抵消,无需计算配分函数。
Step 5:得到 DPO 损失。L_DPO = −E_{(x,y_w,y_l)}[log σ(β·log(π_θ(y_w|x)/π_ref(y_w|x)) − β·log(π_θ(y_l|x)/π_ref(y_l|x)))]。直接优化策略 π_θ,无需 RM。
关键洞察:DPO 不是"放弃 RLHF",而是发现 PPO 学到的最优策略 π* 满足一个特定形式,所以可以直接用监督学习拟合它。
真实场景:Mistral 8×7B MoE 和 HuggingFace 10B 榜首模型都用这个损失在 SFT 后做对齐。
金句:"从 max 奖励 + KL 约束,到 log-sigmoid 对比损失——DPO 把 RL 化成了 SL。"
加分项:如果想绕过参考模型节省显存,可以看 SimPO、IPO 等改进版。
🔴 DPO 在偏好数据有限时为什么会过拟合?有什么缓解方法?
回答要点:
DPO 在小数据集上容易过拟合,是它最知名的"暗病",根因来自 KL 散度的"隐式化"。
为什么会过拟合:RLHF 中 KL 散度是显式约束,每一步都强制 π_θ 不偏离 π_ref 太远,相当于一根"安全绳";DPO 把 KL 内化到了对比损失里,只有 (y_win, y_lose) 出现过的样本才会被约束,未在训练集出现的动作 y_3 完全不受约束,模型可以随意给它们分配概率,导致 π_θ 与 π_ref 差距过大。
论文证据:《Is DPO Superior to PPO for LLM Alignment?》定理 4.1 证明:PPO 学到的策略是 DPO 学到策略的真子集,意味着 DPO 解空间更大但更"野";在有限偏好数据下 DPO 会最大化自己的目标但偏离参考模型,而 PPO 因显式 KL 约束不会走太远。另一篇《Policy optimization in RLHF》证明 DPO 在有限样本下理论上有更大的估计误差。
缓解方法:
- IPO(Identity Preference Optimization):用二次损失替代 log-sigmoid,避免过拟合到 sigmoid 饱和区。
- KTO:引入前景理论,用"好/坏"二元标签替代成对偏好,降低标注需求。
- SimPO:去掉参考模型,用长度归一化 + 边际项,在小数据上更稳。
- 在线 DPO:用当前模型采样新偏好对,持续扩充数据集。
- 增加 β:β 控制 KL 强度,β 越大越接近参考模型(但牺牲对齐强度)。
真实场景:很多团队在 10K-50K 偏好数据上 DPO 效果很好,但 1K 以下数据 PPO 更稳。
金句:"DPO 的隐式 KL 像看不见的安全绳,数据多时没事,数据少时会绊倒你。"
加分项:DeepMind 实验显示 DPO 在 UltraFeedback (61K) 上表现优异,但在 1K 子集上明显差于 PPO。
🟡 现在业界主流的大模型对齐方案是什么?为什么?
回答要点:
业界主流方案是 SFT + DPO,少数高价值场景叠加 PPO 或 RLHF。
为什么 SFT + DPO 成为标配:
- 成本:DPO 比 PPO 快 2-5 倍、显存近乎减半,在算力紧缺的中小团队和开源项目中几乎是唯一可行选择。
- 效果:在偏好数据 10K-100K 区间,DPO 效果与 PPO 几乎一致,且更稳定(PPO 调参极难)。
- 生态:Zephyr-7B、Mistral-Instruct、Yi 等主流开源模型都用这个流程,工具链(HuggingFace TRL、Llama-Factory)成熟。
为什么闭源仍坚持 RLHF:ChatGPT、Claude、Gemini 最终对齐仍用 RLHF (PPO),原因有三:
- 数据量:百万级偏好数据让 DPO 的过拟合问题不显著。
- 算力:闭源厂商有万卡 GPU,PPO 的训练成本可承受。
- 上限:PPO 的解空间是 DPO 的子集,但 DPO 不一定能找到 PPO 的最优解,PPO 理论上限更高。
新兴趋势:
- GRPO(DeepSeek 用):去掉 critic,用组内相对优势估计,显存更低。
- Online DPO:持续采样新偏好对,融合 on-policy 优势。
- Process Reward Model (PRM):在数学/代码推理任务上对中间步骤打分,RLHF 升级版。
真实场景:Llama-3 用 SFT + DPO + Rejection Sampling;GPT-4 用 SFT + RLHF (PPO)。
金句:"开源选 DPO 是因为穷且稳,闭源选 PPO 是因为富且狠——选型本质是 ROI。"
加分项:DPO 之后学界已演化出 IPO / KTO / SimPO / GRPO 等变种,建议关注 HuggingFace TRL 最新实现。
