面试官皱眉:“大模型的 DPO 和 PPO 的区别是什么?”,我:“没学过”,他:“回去重新学!”
面试官来讲讲大模型的 DPO 和 PPO 有什么区别♂️我DPO 和 PPO 都是用来做对齐的让模型的输出更符合人类偏好。DPO 比 PPO 简单一些。面试官……「简单一些」是表面话。具体哪里简单少了什么组件再说PPO 是强化学习算法DPO 是监督学习算法这个根本性差别你能讲出来吗♂️我哦哦DPO 不需要奖励模型PPO 需要奖励模型面试官方向对了。那再问一个PPO 训练时要同时维护几个模型为什么需要这么多KL 约束又是干什么的♂️我呃……我记得是有 4 个模型但具体是哪 4 个想不起来。面试官典型的「知道有但讲不清」。PPO 的 4 模型架构是 policy主模型 reference参考模型 reward model奖励模型 value model价值模型DPO 把这个砍到只剩 policy reference 两个。这种「能不能说清楚每个组件做什么」是面试拉差距的地方。回去搞清楚再来。答到这里才反应过来DPO 和 PPO 的区别不是「谁更简单」那一层而是「在线 RL vs 等价监督学习」的本质分歧。把这条主线讲清楚剩下 GRPO 那些新东西也就顺出来了。 简要回答DPO 和 PPO 都是大模型对齐训练里的方法都是在 SFT 之后让模型的输出更符合人类期望。PPO 是强化学习里的一个算法在大模型里的用法是先额外训练一个「奖励模型」来给模型的回答打分然后用 PPO 这个 RL 算法不断调整大模型的参数让它生成的内容往高分方向走。这套流程需要同时维护好几个模型工程复杂度高训练也容易不稳定所以成本比较大。DPO 是后来提出的简化方案它不需要单独训练奖励模型。它直接拿「人类偏好对」数据就是同一个问题的「好回答」和「差回答」让模型直接学「应该更像哪个」。更准确地说DPO 是从带 KL 约束的 RLHF 目标推导出来的一个闭式偏好优化目标不是说它和任意 PPO 训练过程都完全等价。工程上可以把它理解成把复杂 RL 流程简化成监督学习问题只需要两个模型更稳定、更好实现。简单总结PPO 是「先训练裁判、再训练选手」DPO 是「直接拿比赛录像告诉选手哪个动作对哪个动作错」两者目标一致但 DPO 省去了裁判这个中间层。 详细解析SFT 之后还差什么要理解 PPO 和 DPO得先搞清楚它们出现的背景为什么 SFT 训完之后还需要对齐预训练让模型掌握了语言能力和世界知识SFT监督微调让模型学会了用对话格式回答问题。但 SFT 本质上是「模仿」模型在模仿标注人员写的标准答案的格式和风格。这里有一个根本问题SFT 告诉模型「怎么写」但没有告诉模型「哪个更好」。举个例子同一个问题「怎么学好 Python」可以有很多种合格的回答有的很简洁有的很详细有的带代码有的全文字。SFT 只学了某一种写法但用户对质量的偏好是有排序的比如带代码示例的回答会更受欢迎或者承认「我不知道」比自信地胡说更安全。这种「知道合格但不知道哪个更好」的局限就是对齐阶段要解决的问题。不经过对齐的模型可能会生成有毒内容、一本正经地胡说八道或者输出让用户不满意的答案。PPO 和 DPO 都是解决这个问题的方案只是路径不同。PPO先培养「裁判」再训练「选手」PPOProximal Policy Optimization近端策略优化是强化学习里的一个经典算法最早不是为大模型设计的但 OpenAI 在 InstructGPT 里把它用到了 RLHF基于人类反馈的强化学习流程里。第一步训练奖励模型Reward Model这个阶段人类标注员会拿到很多「同一问题的多个回答」然后按质量排名。比如问题「解释什么是递归」回答 A 比回答 B 好回答 B 比回答 C 好。用这些排名数据训练一个专门的奖励模型让它学会「给一个回答打质量分」。这个奖励模型就是裁判它代替人类完成后续的自动评分。第二步用 PPO 优化主模型有了裁判就可以用强化学习来训练主模型了。流程是主模型生成一段回答 - 奖励模型打分 - PPO 根据得分调整主模型的参数让它以后生成更高分的回答。但这里有一个危险如果只追求高分模型可能学会「钻空子」生成一些奖励模型打高分但实际上没用的内容这叫做 reward hacking。为了防止这个PPO 流程里会同时维护一个「参考模型」Reference Model也就是 SFT 之后的原始模型的冻结副本并用 KL 散度一种衡量两个概率分布差距的指标约束主模型让它不要偏离参考模型太远。KL 散度就像一根绳子主模型可以向高分方向移动但不能走太远。整个 PPO 训练中同时需要维护 4 个模型# PPO 训练时需要同时维护的四个模型policy_model load_sft_model() # 主模型正在被优化的reference_model load_sft_model() # 参考模型冻结SFT 模型副本用于 KL 约束reward_model load_reward_model() # 奖励模型裁判给回答打分value_model load_value_model() # 价值模型RL 辅助估算未来奖励期望4 个模型同时加载到显存里每个都和主模型差不多大光是显存占用就是 SFT 训练的好几倍。加上 RL 训练本身的不稳定性超参数敏感、容易 reward hacking、训练曲线震荡PPO 的工程难度和资源成本都极高能驾驭 PPO 的团队在业界凤毛麟角。DPO绕过裁判直接看回放DPODirect Preference Optimization直接偏好优化是 2023 年斯坦福提出的方法核心思路是一个数学上的等价转化。研究者们发现RLHFPPO 方案的优化目标可以通过推导改写成一个纯监督学习的目标函数不需要显式训练和调用奖励模型。直觉上「奖励模型」的功能可以被「主模型相对于参考模型的概率比值」完全替代如果主模型在某个回答上比参考模型提升了更多概率那这个回答就被认为更受偏好。这个等价关系让 DPO 可以直接用「偏好对」数据chosen/rejected来训练数据格式长这样# DPO 的训练数据格式同一问题的「好回答」和「差回答」对{ prompt: 如何学好 Python, chosen: 建议先从官方文档入手配合做小项目实践..., # 人类更偏好的回答 rejected: Python 很简单随便找个教程看看就行了... # 人类不太喜欢的回答}DPO 的损失函数直觉上做的事情是# DPO 损失函数直觉简化版不是完整公式loss -log( sigma( beta * (log(policy(chosen) / ref(chosen)) # chosen 在主模型和参考模型之间的对数概率比 - log(policy(rejected) / ref(rejected))) # rejected 在主模型和参考模型之间的对数概率比 ))# 目标让 chosen 的比值 rejected 的比值# 即相对于参考模型主模型在 chosen 上的概率提升要大于在 rejected 上的提升简单说就是两件事同时发生模型对「好回答」的概率相对于参考模型升高模型对「差回答」的概率相对于参考模型降低。整个过程不需要奖励模型只需要主模型和参考模型两个# DPO 训练只需要两个模型policy_model load_sft_model() # 主模型正在被优化的reference_model load_sft_model() # 参考模型冻结用于计算概率比# 相比 PPO 少了 reward_model 和 value_model资源需求减半DPO 把对齐训练变成了一个普通的监督学习问题用现成的深度学习框架就能实现训练稳定超参数也容易调。这就是为什么开源社区大量采用 DPO 的原因不需要复杂的 RL 基础设施。两种方案的对比维度PPODPO是否需要奖励模型需要需单独训练不需要同时维护的模型数4 个2 个训练稳定性较差RL 本身不稳定好等价于监督学习实现难度高需要 RL 基础设施低标准训练框架即可表达能力强可探索训练数据之外的空间稍弱受偏好数据分布限制代表模型ChatGPT 早期版本、InstructGPT、Llama 2-ChatZephyr、部分 Mistral / Qwen 派生 Instruct 模型PPO 的进阶版GRPO 简介讲 PPO 和 DPO 的同时最近两年2024-2026非常火的一个新方案是GRPOGroup Relative Policy Optimization是 DeepSeek 在 2024 年DeepSeekMath论文里提出的 PPO 改进版。GRPO 的核心创新是砍掉了 PPO 的 Value Model。PPO 的 4 模型架构里Value Model 的作用是估计「当前状态的预期奖励」作为基线然后算「实际奖励 - 预期奖励」得到优势函数Advantage。但 Value Model 是一个独立的神经网络规模和主模型差不多大要单独训练、占显存。GRPO 的做法是对一个问题 q从主模型采样 G 个回答典型 G8用奖励模型或对错判定给每个回答打分得到 r_1, r_2, …, r_G。然后用「组内归一化」算每个回答的相对优势A_i (r_i - mean(r_1..r_G)) / std(r_1..r_G)「组内平均分」充当了 Value Model 的角色这个基线天然就有不用单独训练 Value Model。整个 PPO 的 4 模型架构变成 3 模型架构Policy / Reference / Reward显存占用接近 DPO 但保留了 RL 探索能力。GRPO 还有一个杀手级特性对「可验证任务」特别友好。数学题、代码题这类「答案对就是对、错就是错」的场景r_i 直接用 0/1 判定就行连 Reward Model 都可以省。DeepSeek R1-Zero 就是这么做的纯靠强化学习训出推理能力。谁在用 GRPODeepSeek R1 / R1-Zero推理模型的代表DeepSeek-Math数学推理模型Qwen-Math 系列阿里的推理增强模型2026 年大厂面试问对齐方法GRPO 几乎是必问点能讲出「砍掉 Value Model 用组内归一化代替」这一句就是高分回答。各自适合什么场景理解了两者的权衡选择就很清晰了。PPO 适合对对齐效果要求极高、资源充足、有 RL 工程能力的团队。它能探索训练数据里没有的高质量回答方式理论上表达能力更强ChatGPT 早期的强大效果很大程度上就来自精心调优的 PPO 流程。但门槛极高能驾驭它的团队凤毛麟角。DPO 适合快速迭代、GPU 资源有限、开源社区场景。不需要 RL 工程能力偏好数据收集相对容易众包打排名就可以训练一次成功率高。大多数开源模型在资源有限的情况下都选 DPO效果虽然可能略逊于精心调优的 PPO但工程代价小得多。一个简单的判断原则是如果你想在已有偏好数据的分布上把模型质量提升一步DPO 够用且高效如果你需要模型探索超出现有数据的能力边界、或者对齐效果要求接近 OpenAI 的水平才值得投入 PPO 的工程成本。 面试总结回到开头那段对话问到 DPO 和 PPO 的区别最重要的是先讲清楚两者都在解决「SFT 之后的对齐问题」。SFT 让模型学会按指令回答但回答风格不一定符合人类偏好所以需要进一步训练让模型学会「哪种回答更受人类欢迎」。这一句铺垫先讲到面试官就知道你抓到了对齐这件事的本质。接下来讲 PPO 的流程先收集人类偏好排序数据 → 训一个奖励模型代替人类打分 → 用 PPO 算法调整主模型参数让它生成的回答尽量得高分。整个流程要同时维护 4 个模型policy / reference / reward / value训练复杂、不稳定、调参难。能把「4 个模型分别做什么」讲清楚面试官就知道你真的研究过 RLHF 流程。DPO 的核心创新是「把带 KL 约束的 RLHF 目标改写成偏好对上的监督学习损失」。不需要显式奖励模型不需要跑 PPO直接拿 (prompt, chosen, rejected) 三元组训练让模型学会「好回答的概率比差回答提升得多」。流程从 4 模型砍到 2 模型训练稳定、容易实现。能用「PPO 是先训裁判再训选手DPO 是直接拿比赛录像告诉选手哪个动作对」这种类比讲出来会比纯讲算法生动很多。最关键的一句话是两者目标一致但 DPO 省掉了「奖励模型」这个中间层让对齐训练变成监督学习。这是 DPO 在开源社区大爆发的核心原因。如果还想再加分可以提一句 GRPODeepSeek 2024 年提出的 PPO 改进版砍掉 Value Model 用组内归一化代替让面试官知道你跟得上 2026 年的最新对齐方法。能讲到这一层已经是面试里很难追问的水平了。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】