PPO 的 value model 和策略一样大,能不能去掉?
本课一问:DPO 是离线的,学不到数据之外的东西;想让模型自己探索,得回到在线采样。可 PPO 要一个和策略一样大的 value 模型来估「这一步之后还能拿多少分」——Qwen3.8 规模下光它就要 444.5 GB。能不能去掉它?
这一课先不碰:奖励从哪来(第 5 课);这一课先照 DeepSeekMath 原文,奖励由一个打分函数给出,用教学世界里的严格验证器(答对 1、答错 0)演示。
从已有出发
第 2 课的 PPO 数据流里,value 模型负责给每个 token 估一个基线 Vt,再用 GAE 算优势。它和策略一样大、要一起训,而且只有最后一个 token 有奖励,前面每个位置的「价值」都得靠它猜。
- 解决了同一题采一组回答,组内标准化当优势;按 Qwen3.8 规模省掉 444.5 GB 的 value 模型。卡在全对或全错的组优势恰为 0:正确率 0.9、每组 8 个时,43.0% 的组白算;错的长回答每个 token 被罚得更轻(第 4 课)。
先自己设计:保留 critic,看它难在哪
- ① 朴素方案
- ② 它在哪失败
- ③ 改进方案
教学世界:6 个候选回答与初始概率是手写的教学数据;token 数来自 Qwen3.8 真 tokenizer;验证器、采样(mulberry32 种子随机数)、优势与训练全部由浏览器现算。
不要 critic:同一题采 8 个回答,各自拿到 1 或 0 的奖励,比组内平均好就推高、差就压低。组内均值就是基线。
value 模型难在哪,DeepSeekMath 原文说得很直接:它通常和策略一样大,带来显著的显存与计算负担;而在 LLM 里通常只有最后一个 token 拿到奖励模型的分,训练一个在每个 token 上都准确的 value 函数很难 证据等级 · 有理论动机 有数学或机制上的理由说明它可能有效,但没有证明它一定更好。最后是否采用,仍然要看实验。 本条这是提出 GRPO 的动机,不是证明 critic 一定估不好。DeepSeek-R1 A.3 的对照实验(DeepSeek-Coder-V2-Lite,MATH)补上了实验一层:λ = 0.95 时 PPO 明显差,λ = 1.0 接近 GRPO,但要额外的调参算力。 出处DeepSeekMath §4.1(本地 PDF) ↗ 。
改进:GRPO——组内相对优势
GRPO(Group Relative Policy Optimization)出自 DeepSeekMath(Shao et al. 2024-02),不是 DeepSeek-R1——R1 是一年后把它用到了更大的规模。原文把它定位为「PPO 的一个变体,同时优化 PPO 的显存占用」,7B 模型在 MATH 上从 46.8% 提到 51.7% 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条DeepSeekMath-Instruct 7B → DeepSeekMath-RL 7B;每题采 64 个样本、KL 系数 0.04、每次探索后只做一次更新。 出处DeepSeekMath §4.2(本地 PDF) ↗ 。把它和第 2 课的 PPO 逐项对照:
试三件事(在上面「改进方案」那一侧的组件里):① 看默认一组:奖励 [1,0,0,1,1,0,0,0],总体标准差下答对的 +1.291、答错的 −0.775;切到「样本标准差」,变成 +1.208 / −0.725——两种口径都有人用,报告或代码必须写明;② 点「全对」:标准差为 0,8 个优势全是 0;③ 连点「从当前策略重采一组」,每次种子 +1(种子 1 采到 D A C F F A D D,种子 2 是 D B A C E D C B),每一组都能复现。
放回真实张量里看,GRPO 一步的损失是这样算出来的:
| 维度 | 含义 | 真实规模 | 小规模 |
|---|---|---|---|
| G | 每组回答数(DeepSeekMath 64,R1 与 DAPO 16,本课组件 8) | 8 | 4 |
| T | 回答长度,按组内最长补齐(这里取教学世界最长的回答 E:Qwen3.8 切出 18 个 token) | 18 | 5 |
| V | 词表大小(Qwen3.8 的 vocab_size,padding 后) | 248,320 | 6 |
| 1 | 广播维:一个回答只有一个优势 | 1 | 1 |
新失败 ①:全对或全错的组,白算
GRPO 的优势来自组内差异。如果一组全对或全错,标准差为 0,所有优势都是 0,这一组对梯度没有任何贡献——采样、打分的算力白花了。单次正确率为 p、组大小为 G 时,这种组出现的概率是 pG + (1 − p)G:p = 0.9、G = 8 时是 43.0%;G = 16 时 18.5%;p = 0.5 时只有 0.8% 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条组内 G 个独立的伯努利样本全为 1 或全为 0 的概率。 出处待补 。模型越强,白算的组越多:
教学世界:6 个候选回答与初始概率是手写的教学数据;token 数来自 Qwen3.8 真 tokenizer;验证器、采样(mulberry32 种子随机数)、优势与训练全部由浏览器现算。
在教学世界里真跑 300 步 GRPO(G = 8、学习率 0.1、种子 11):正确率 0.40 → 0.831(第 50 步)→ 0.945(第 100 步)→ 0.985;每 100 步里零方差组的数量从 25 个涨到 77 个、92 个——前 300 步里 194 组白算。这就是 DAPO 的「动态采样」要解决的:过采样,把全对、全错的题过滤掉,保证每个 batch 都有有效梯度 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条Qwen2.5-32B 上 AIME 2024 50 分,只用 DeepSeek-R1-Zero-Qwen-32B(47 分)一半的训练步数;四项技术:Clip-Higher、动态采样、token 级损失、超长奖励整形。 出处DAPO(ByteDance Seed 等 2025) ↗需联网 。勾上组件里的「动态采样」:每一步都能凑出有对有错的组,代价是多采样——300 步采了 27,880 个回答,不重采是 2,408 个;正确率接近 1 时,20 次重采都凑不出来的步数仍有 126 步。
新失败 ②:错的回答越写越长
GRPO 先在每个回答内部按 token 平均(式里的 1/|oi|)。同样的负优势摊到更多 token 上,每个 token 挨的罚就更轻:
教学世界:6 个候选回答与初始概率是手写的教学数据;token 数来自 Qwen3.8 真 tokenizer;验证器、采样(mulberry32 种子随机数)、优势与训练全部由浏览器现算。
错答 C 只有 4 个 token,错答 E 有 18 个;两者优势都是 −0.775,GRPO 下 E 的每个 token 少挨 4.5 倍的罚(18 ÷ 4)。梯度于是偏爱「错的时候写长一点」,回答长度被推着涨,错的回答涨得尤其多——Dr. GRPO 把这称为 GRPO 的优化偏置,去掉 1/|oi| 和除以标准差之后,7B 基座模型在 AIME 2024 上得 43.3%,token 用量更省 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条摘要原话:an optimization bias in GRPO that artificially increases response length (especially for incorrect outputs)。 出处Dr. GRPO(Liu et al. 2025) ↗需联网 。DAPO 的 token 级损失从另一个角度改同一件事:全组 token 一起平均,长回答里的每个 token 和短回答里的一样重。
新失败 ③:逐 token 的比率在 MoE 上不稳
ρi,t 是逐 token 算的。MoE 模型里,同一个 token 在采样时和更新时可能被路由到不同的专家,单个 token 的概率比会剧烈抖动,裁剪也跟着乱。Qwen 团队的 GSPO(2025-07)把重要性比率改成整个序列的似然比(按长度归一),裁剪也在序列级做,称这样明显稳定了 MoE 的 RL 训练 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条官方自报;GLM-5.3 的 slime 另有 R3(Rollout Routing Replay)专门对齐训练与推理的专家路由,是同一个问题的工程解法。 出处GSPO(Zheng et al. 2025) ↗需联网 。
常见误解一:「GRPO 是 DeepSeek-R1 发明的。」 出自 DeepSeekMath(2024-02),早 R1 一年。
常见误解二:「GRPO 就是 RLVR,就是用规则打分。」 DeepSeekMath 原文的 GRPO 用的是学出来的奖励模型,还专门做了「迭代地重训奖励模型」;GRPO 说的是优势怎么算,奖励从哪来是另一件事(第 5 课把这两条轴分开画)。
常见误解三:「GRPO 比 PPO 更强。」 DeepSeek-R1 自己的对照:λ 调到 1.0 的 PPO 接近 GRPO。GRPO 省的是 value 模型、显存和调参,不是上限更高;GLM-5.2 的 SAO 反而回到了 critic(每题只采 1 条、用 critic 估逐 token 优势)。
常见误解四:「clip 的 ε 都是 0.2。」 DAPO 把上下界分开(εlow = 0.2、εhigh = 0.28):ε = 0.2 时,概率 0.01 的「探索」token 一步最多涨到 0.012,概率 0.9 的却能涨到 1.08——上界卡住的主要是小概率 token。DeepSeek-R1 第一阶段 RL 的 clip ratio 取到 10,并说明取小了会截断大量 token 的梯度。
🔍 DeepSeekMath 每次探索只更新一次,clip 起作用吗?
DeepSeekMath 写明「policy model only has a single update following each exploration stage」:采完一批只做一次梯度更新,那一刻 πθ = πold,所有 ρ 都等于 1,clip 根本不会触发,目标退化成带组内基线的普通策略梯度。clip 只在「同一批数据连续更新多次」时才起作用——DAPO 每批做 16 次更新,Tülu 3 的 PPO 有的设置每批重复 4 轮。读配方时,先看每批更新几次,再判断 clip 在不在起作用。
证据三问
| 问 | 本课的回答 |
|---|---|
| ① 它解决什么问题? | PPO 的 value 模型和策略一样大,而且在只有终点奖励时很难估准 |
| ② 数学上为什么可能有效? | 组内均值作基线不引入偏差、只降方差 证据等级 · 数学可证明 在写明的前提下可以严格推导出来,不依赖实验。只要前提成立,换数据、换规模仍然成立。 本条基线与被评估的动作无关时,E[∇log π · b] = 0。严格说「与自己无关」要求留一法(RLOO);含自己的组内均值偏差为 O(1/G)。 出处待补 ;除以标准差是一个选择 |
| ③ 实验上为什么选了它? | DeepSeekMath 7B MATH 46.8% → 51.7%;R1、Qwen3、V4 都用 GRPO 系;但调好的 PPO 可以接近它 证据等级 · 实验验证 由对比实验得出的经验结论,只在出处写明的模型、数据和规模下成立。换了条件可能不再成立,引用时要带上实验设置。 本条DeepSeek-Coder-V2-Lite 上的 MATH 对照。 出处DeepSeek-R1 v2 附录 A.3(本地 PDF) ↗ |
一句话
GRPO 用同一题的一组回答互相当基线:比组内平均好就推高,差就压低;全组一样就没有信号。
先停在这里:记住「组内标准化 = 优势;全对全错没梯度;先按长度平均会偏爱长的错答;GRPO 出自 DeepSeekMath」。
再深一层:展开「clip 起作用吗」的 Dig,再对照张量图想一想:G × T × V 的 logits 在长回答时有多大。
下一个缺口
到这里,「梯度怎么算」已经从 PPO 走到了 GRPO 系;可「奖励从哪来」一直是那个学出来的奖励模型。它会被钻空子:第 2 课训出的 RM 给没被标注过的续写式回答 E 打了最高分。有没有骗不了的奖励? → 第 5 课:RLVR
回扣:agentic RL 里,一组轨迹全失败时同样没有梯度——第 8 课用 Agent 课的真实运行记录再算一次。
你可能会问
- 「组大小 G 取多少?」 DeepSeekMath 64,R1 与 DAPO 16。G 越大,基线越准、零方差组越少(上面的曲线),但每道题的采样成本线性上涨。
- 「RLOO 和 GRPO 什么关系?」 RLOO(REINFORCE Leave-One-Out)对每个回答用「其他 G − 1 个回答的平均奖励」当基线,不除标准差,严格无偏;GRPO 用含自己的组内均值再除标准差。两者是同一个思路的两种写法。
- 「为什么 DAPO 要去掉 KL?」 长思维链 RL 会让策略离初始模型很远,这正是想要的;KL 项反而拖住了它。R1 的做法是保留一个很小的 KL(0.001),并每 400 步把参考模型换成最新的策略。