大模型训练范式:读懂 SFT、DPO、PPO 与 GRPO
刚接触大模型后训练时很容易把几件事混在一起模型是不是先写一个答案再把它改得更像标准答案奖励模型和 Critic 都输出分数为什么还要分开既然都有优化效果四种方法是不是按顺序全部训练一遍就行理解它们不妨换一个切入点模型拿什么作为学习材料怎样把材料变成训练信号最后更新谁的参数沿着这三个问题看SFT、DPO、PPO 和 GRPO 就不再是四个需要死记的缩写而是四种不同的学习机制。一、先搭一个共同框架训练改变的是生成概率自回归语言模型每次根据已有上下文给“下一个 token”分配概率。token 可以是一段字、词或符号不一定对应一个汉字。将一段回答中各个位置的条件概率相乘就得到这段回答的概率实际计算通常取对数把乘法变成加法。这里x 是问题y 是整段回答θ 表示待训练参数π 表示模型的生成概率分布。后面出现的“提高概率”都是在调整参数而不是在某一段现成文字上直接增删改。这也解释了“算概率”和“生成答案”的区别算概率是拿一段已有文本计算模型有多倾向于说出它生成答案是按模型当前的概率分布真正选出 token 并组成新文本。前者是 SFT、标准离线 DPO 的训练基础后者进入了 PPO、GRPO 的采样循环。训练数据是“现成的”还是“边学边生成的”标准流程示意。箭头表示数据与学习信号的流向不是四种方法的执行顺序。二、SFT用示范回答教模型“照这样答”SFTSupervised Fine-Tuning有监督微调的学习材料是“问题优质示范回答”。它不要求两份答案分出高下也不需要奖励分数示范回答本身就是监督信号。一次参数更新实际上发生了什么假设示范回答拆成若干 token。训练时预测某个位置的下一个 token使用的是问题和示范回答的真实前缀这叫Teacher Forcing教师强制。即使整段文本一次送进模型因果掩码也会阻止当前位置看到未来 token“整段输入”不等于“偷看后面的答案”。读一批样本。将问题与示范回答拼成训练序列。计算指定 token 的概率。在每个回答位置检查模型给示范中的下一个 token 分配了多大概率。汇总损失。目标 token 的概率越低负对数损失越大。常见指令微调只对回答部分计损失对问题部分做掩码。更新参数。反向传播并执行优化器更新再处理下一批数据。这个式子表示单条样本的 token 损失求和实现中还可能按有效 token 或批次取平均。最小化损失就是推动模型提高示范回答的概率。待训练的语言模型参与更新不需要额外的奖励模型或 Critic。SFT 适合把期望的行为直接示范出来例如如何遵循指令、采用什么输出格式、怎样完成某类任务。但“学示范”不是“保证背出原句”它学习的是一批示范背后的生成规律。它也不会仅凭某个回答未出现在示范中就知道这个回答为什么不好。三、DPO不用重写范文直接学习“哪个更好”DPODirect Preference Optimization直接偏好优化使用“问题chosenrejected”。chosen 是一对回答里更受偏好的那个不一定完美rejected 是相对较差的那个也不一定完全错误。它学习的是这种相对关系。先分清数据准备和正式训练准备偏好数据时可以先让模型生成候选回答再请人或评估机制选出更好的回答。但到了标准离线 DPO 的参数更新阶段这些回答已经固定不需要每一步再生成第三个答案更不会拿第三个答案与 chosen 做文本相似度比较。训练中有两个角色一个是会更新的策略模型 πθ另一个是冻结的参考模型 πref通常取训练开始前的模型作为基准。对同一条偏好样本两者分别计算 chosen 和 rejected 的整段对数概率共形成四个概率量。损失在比较什么令 y⁺ 为 choseny⁻ 为 rejected。DPO 的核心比较量是第一组括号衡量“现在更偏向谁”第二组括号衡量“参考模型原来更偏向谁”。两者相减得到相对于参考模型的偏好变化再构造单条样本损失σ 是 sigmoid 函数β 是控制参考约束与偏好优化权衡的超参数不是学习率。对于给定样本最小化这个损失会推动 Δ 增大也就是让 chosen 对 rejected 的相对优势增强。完整训练目标还会在数据集上取平均。一次更新的流程取偏好样本 → 两个模型分别计算两段回答的对数概率 → 算 DPO 损失 → 反向传播 → 只更新策略模型。参考模型保持冻结标准 DPO 不单独训练奖励模型也不训练 Critic。需要保留一个重要限定相对优势变大不保证 chosen 的绝对概率每次都上升。两者概率都下降但 rejected 下降得更多相对关系也可能改善。DPO 也不是把 rejected 改写成 chosen而是改变未来生成时的倾向。四、PPO让模型自己尝试再根据反馈学习SFT 和离线 DPO 的回答来自已有数据PPOProximal Policy Optimization近端策略优化把生成新回答放入训练循环。模型先尝试获得反馈再更新自己用更新后的策略继续尝试。奖励模型和 Critic到底各自负责什么奖励模型Reward评价这次实际生成的回答。回报 Critic在每个生成位置预测 “从这里按当前策略继续写平均能获得多少后续回报”。用一道题来看题目买了 2 袋糖每袋 3 颗又得到 4 颗一共有多少颗为方便理解设定一个教学评分规则最终答案是 10奖励为 1否则为 0。这里用程序规则代替奖励模型承担的是相同的 “提供评分信号” 的角色。模型已经写到“先算两袋糖2 × 3 6。接下来加上另外 4 颗……”假设 Critic 此时输出 0.9。它的意思不是 “这一步得了 0.9 分”而是根据目前的前缀和这个模型的能力继续生成下去预计最终平均得到 0.9 分。在这个只有 0/1 奖励的例子里也可以理解为Critic 估计接下来最终答对的概率约为 90%。这些数值都是教学假设不是真实实验结果。同一个前缀Critic 的预测相同但实际走向不同最终奖励就不同。预测的是可能结果的平均表现奖励记录的是这一次真正发生的表现。Critic 也会用收集到的回报目标训练让预测越来越准它不是提前知道答案的 “裁判”。两者配合一个提供目标一个帮助更稳地学不是两个裁判重复打分而是 “反馈预测基线” 的分工。典型 PPO 用它们估计优势更新策略同时训练 Critic 改善预测。它能帮助训练但不保证精确找出每一句推理究竟错在哪里。最后记一句奖励决定 “什么值得学”Critic 帮助判断 “这次比预期好多少”奖励可以单独用Critic 通常是为了让学习更稳、更高效。Actor策略模型生成回答最终希望训练好的就是它。奖励机制给回答提供评分信号。可以是数学答案校验、代码测试也可以是学习出来的奖励模型。Critic价值模型输入问题与当前回答前缀预测从这里继续生成的预期后续回报逐步回报汇总。它不是为每个 token 制定一个好坏分数。参考模型常见 RLHF 中冻结的基准用 KL 约束限制策略偏离过远。经典 RLHF 通常先用人类偏好对训练奖励模型让它学会给 chosen 更高分再将它用于 PPO 阶段的自动评分。奖励模型回答“这个输出按评分标准表现如何”结果分Critic 回答“按当前策略从这个前缀继续下去通常能得到多少回报”。各个步骤的预期结果分两者都可能输出数值但学习目标不同。一轮 PPO 怎样闭环采样回答。用本轮采样策略生成一批回答保存 token、采样时的对数概率等信息。这个采样策略就是本轮的“旧策略”。----采样 指的是让当前模型针对同一个提示词随机生成多条不同的候选回答而不是从外部数据集里抽数据。收集训练信号。奖励机制打分Critic 预测各回答前缀的价值典型 RLHF 还加入相对参考模型的 KL 惩罚。估计优势。将奖励和价值预测结合通常使用 GAE广义优势估计判断生成行为比当前预期好多少。更新 Actor。使用优势和新旧策略的概率比构造裁剪目标进行一个或有限多个优化轮次。更新 Critic。让价值预测拟合由奖励及价值估计构造的回报目标。重新采样。用更新后的策略收集新回答开始下一轮而不是无限复用同一批旧回答。优势的直觉是“表现相对基线的好坏”但实际 GAE 不是简单把最终得分减去每个位置的预测值。它先计算一步时序差分误差再按时间汇总sₜ 是问题加当前前缀V 是 Critic 预测γ 控制折扣λ 调节估计的偏差与方差在有限回答上求和会于终止处截断真正终止状态的后续价值按零处理。正优势提供强化信号负优势提供削弱信号。PPO 的“不要改太猛”限制的是什么令 ρₜ 表示当前策略与旧策略对同一已采样 token 的概率比。PPO 最大化的核心裁剪项是当概率比朝有利方向变化过大时裁剪目标不再为继续扩大这部分变化提供额外收益。这不是把全部参数变化或实际概率比硬锁在某个范围内。另一个常见约束是相对参考模型的 KL 惩罚它限制的是相对于长期基准的整体偏移和 PPO 裁剪不是同一回事。因此要分清旧策略与参考模型旧策略是本批数据采样时的快照下一轮会刷新参考模型是约束所依赖的基准典型训练阶段中保持冻结。PPO 通常更新 Actor 和 Critic奖励模型在这一策略优化阶段通常冻结更外层的迭代训练可另行更新奖励模型。五、GRPO同一道题多答几次用组内比较替代 CriticGRPOGroup Relative Policy Optimization组相对策略优化保留了 PPO 风格的策略优化但改变了优势的来源不再单独训练价值模型而是对同一问题生成一组回答利用组内奖励的统计量作为比较基线。组采样。每个问题生成 G 个回答并记录采样时的概率。逐个评分。用奖励模型或规则得到各回答的奖励 rᵢ。算相对优势。在同一个问题的回答组内计算奖励均值与标准差。更新策略。使用组相对优势、PPO 风格裁剪目标和原始版本中的 KL 约束更新 Actor。重新探索。用新 Actor 生成下一组回答重复上述过程。在原始最终结果奖励版本中同一回答的各 token 共用该回答的结果级优势并不意味着知道其中每个推理步骤各自是否正确过程奖励属于另一种更细粒度的设置。工程实现还须处理标准差为零的情况例如加入数值稳定项或跳过无区分信号的组。一个可手算的例子假设某题的四个回答获得奖励 [1, 1, 0, 0]。采用总体标准差口径均值为 0.5标准差为 0.5所以相对优势为 [1, 1, −1, −1]。这是教学算例不是实验结果不同实现的标准差口径可能改变数值尺度。​这张图里的两条分支回答了同一个问题奖励已经有了拿什么当“预期基线”PPO 用学出来的价值预测criticGRPO 用当前回答组的相对表现。两者都需要可信的评分信号。GRPO 不是“多答案版 DPO”DPO 学已有回答对的偏好GRPO 在训练循环中不断采样并根据组内奖励更新。它也不是“只挑最高分做 SFT”组内不同回答会得到不同方向和强度的优势信号而非只保留一份范文。组内比较有边界如果整组同分相对奖励部分就没有区分信号如果整组都不好“组内最好”也不等于绝对正确。省去 Critic 能减少价值模型的训练和存储开销但多回答采样仍有成本不能据此断言所有设置下总训练成本都更低。六、把四种方法放回完整训练路线常见路线是先通过 SFT 建立较好的指令遵循与任务表现再根据可获得的学习信号继续优化手里有可靠的回答对偏好可以做 DPO能对新生成的回答持续评分可以考虑 PPO 或 GRPO 这样的在线强化学习方法。经典 InstructGPT 展示了 SFT、奖励建模与 PPO 的组合DPO 与 DeepSeekMath 则展示了不同的后续优化路径。​同样RLHF是利用人类反馈进行强化学习的框架PPO是其中可用的算法不是 RLHF 的同义词。DPO 从偏好数据直接优化策略绕开显式奖励建模和在线 RL 循环但在理论上与带 KL 约束的奖励优化目标存在联系。七、读完后能回答这五个问题就抓住了主线SFT为什么不需要先生成一份新答案因为它直接用示范回答作监督计算指定 token 的概率和损失。DPO在比较什么比较 chosen 对 rejected 的相对概率优势相对于参考模型改善了多少而不是比较文本长得多像。奖励模型和 Critic 有什么关系前者给反馈后者预测预期回报PPO 用二者构造优势Critic 也从回报目标中学习。PPO的旧策略就是参考模型吗不是。旧策略服务于本批采样和更新幅度比较参考模型服务于相对长期基准的约束。GRPO到底省掉了什么省掉单独训练的价值模型用组内统计计算优势没有省掉奖励也没有省掉在线采样。最后把四种方法压成一句话SFT学示范DPO学相对偏好PPO学比预期更好的生成行为GRPO学比同组平均表现更好的生成行为。真正的共同点不是“都在模仿好答案”而是它们都把某种学习信号转化为参数更新改变模型未来生成回答的概率。参考资料[1] Direct Preference Optimization: Your Language Model is Secretly a Reward Model重点阅读第 3—4 节了解 RLHF 基本流程、DPO 目标与参考模型。[2] DeepSeekMath: Pushing the Limits of Mathematical Reasoning in Open Language Models重点阅读第 4.1 节、图 4 与附录 A.1理解 PPO、GRPO 及其训练目标。[3] Training language models to follow instructions with human feedback经典 SFT → 奖励建模 → PPO 路线。

相关新闻

1.3 开发环境搭建-hello world!

1.3 开发环境搭建-hello world!

目录 可收获 一、软件准备 1.1 VScode 安装 1.2 GIT安装 二、安装拓展 2.1 打开vscode,点开扩展 2.2 配置IDF拓展 三、图形化按钮介绍 四、常用命令介绍 五、第一个程序 hello world! 5.1 使用命令行创建项目、编译烧录 5.2 使用图形化按钮创建项目、编…

2026/10/1 14:49:44 阅读更多 →
MDPI期刊高效投稿指南:40天见刊的一次返修全流程复盘

MDPI期刊高效投稿指南:40天见刊的一次返修全流程复盘

前两天有个学弟火急火燎找我,说毕业就差一篇SCI,时间只剩两个多月。这种场景我见太多了,直接把他拉到电脑前,翻出我的一份投稿记录——MDPI旗下那本被大家喊作"三好学生"的期刊,40天左右见刊,全程…

2026/9/30 13:00:11 阅读更多 →
Windows安全日志分析指南:从事件ID到攻击链还原

Windows安全日志分析指南:从事件ID到攻击链还原

半夜三点被电话叫醒,说内网里好像有人偷偷摸进来了。这种场景做安全的兄弟应该都不陌生。打开事件查看器那一刻,面对几万条Event Log,你是不是也有点无从下手?这篇东西就是想聊聊怎么从Windows安全日志里,把攻击者的行…

2026/9/30 13:00:11 阅读更多 →

最新新闻

2026年最新干货分享:11个AI客服工具的渠道接入方式总结

2026年最新干货分享:11个AI客服工具的渠道接入方式总结

客服渠道越接越多,真正的成本不在"有没有这个渠道",而在接入方式:渠道是平台自带的还是要授权的、消息推给客服系统后回复怎么回到原渠道、权限和资质要准备什么。这篇把 11 个常用 AI 客服工具的渠道接入按方式分成四类&#xff0…

2026/10/1 14:50:59 阅读更多 →
GPT-Image-2.5深度实测:从可控生成到工作流落地的提示词方法论

GPT-Image-2.5深度实测:从可控生成到工作流落地的提示词方法论

我最近被问得最多的一个问题就是:“GPT-Image-2.5到底强在哪?和之前版本比有什么质的变化?”我的回答通常很直接——它更能干活了。以前大家用AI画图,是玩,是试探,是偶尔出一张惊艳的图然后截图发朋友圈。现…

2026/10/1 14:50:59 阅读更多 →
Redis AOF文件重写机制:从膨胀故障到参数调优全解析

Redis AOF文件重写机制:从膨胀故障到参数调优全解析

1. 从一次“AOF文件越写越大”的故障说起 先聊一个我实际遇到过的场景。有段时间线上Redis实例的内存使用率一直平稳,但AOF持久化文件却像吹了气球一样疯长,从最初的几百MB一路飙到好几个GB。彼时磁盘告警、主从全量同步耗时变长、重启恢复时间越来越不可…

2026/10/1 14:50:59 阅读更多 →
企业级爬虫与数据分析全流程实战:从采集到决策看板

企业级爬虫与数据分析全流程实战:从采集到决策看板

先聊点实际的。很多朋友一听到“企业级爬虫数据分析”就以为要上一整套分布式集群、各种大数据框架,其实大多数电商场景根本用不着那么重。我做过好几个从零启动的数据项目,最核心的能力恰恰在于:把一条链路跑通——采集、清洗、分析、可视化,每个环节都…

2026/10/1 14:50:59 阅读更多 →
开源旗舰MiMo-V2.6:MoE部署实践与多模态3D能力边界解析

开源旗舰MiMo-V2.6:MoE部署实践与多模态3D能力边界解析

MiMo-V2.6 系列凌晨发布的时候,我刚好在刷新开源榜。群里先是刷了一波“登顶了”,紧接着就有人喊“官网 demo 响应已经在排队”,再往后又有做三维视觉的朋友补了一句“3D 效果和闭源旗舰还有差距”。这三个信息点凑在一起,我反而觉…

2026/10/1 14:50:59 阅读更多 →
epoll完全指南:接口详解、LT/ET触发模式与内核实现

epoll完全指南:接口详解、LT/ET触发模式与内核实现

写网络服务的老哥可能都有这种感觉:并发上来之后,先用select,后来换poll,最后项目里老鸟们都在讲epoll,但自己真上手时,epoll_create、epoll_wait、epoll_ctl这三个接口的每个参数、返回值、错误码&#xf…

2026/10/1 14:49:59 阅读更多 →

日新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/30 13:14:22 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/30 18:13:06 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/30 13:14:49 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 0:00:30 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/1 1:01:17 阅读更多 →