Paul Jialiang Wu agentic-portfolio English Español 한국어 日本語✉️ 免费订阅列表
← 返回作品集

AI 原生系列 · 强化学习

规模熔炉

作者 Paul Jialiang Wu · agentic-portfolio-lovat.vercel.app · 2026-08-24 · 第 4 集,共 5 集

Cover: white ground with a black left rail. Eyebrow AI-NATIVE SERIES · REINFORCEMENT LEARNING above the serif headline 'The Scale Furnace' and the lines 'The loss curve looks perfect. The run stopped learning four thousand steps ago.' Two rows of three grey cards. Top row: ENTROPY COLLAPSE H(pi) falling, exploration quietly ends; ZERO VARIANCE std(r) = 0, the gradient disappears; THE DENOMINATOR 1 over length, silently weights your tasks. Bottom row: DAPO 50 vs 47 AIME, at half the training steps; Dr.GRPO two named biases, 27 hours on 8 A100s; WHAT TO LOG entropy, loss will not tell you.
一次训练是如何悄无声息地死掉的三种方式,以及为它们命名的三篇论文。

1 分钟速览——这一集讲了什么

在规模化之后,RL 算法不再轰轰烈烈地失败,而是开始悄无声息地失败悄无声息。策略熵单调下降,采样输出彼此趋同,探索逐渐终止——而 loss 曲线全程平滑如常。接着,各组开始返回完全相同的奖励,std(r) 归零,优势值归零,你的梯度也就没了。与此同时,损失函数里的每一个分母都在悄悄决定哪些样本才算数:Dr.GRPO 发现,GRPO 的长度归一化会专门拉长错误答案的长度,而除以 std(r) 则会给低方差问题过度加权 [2]。DAPO 提高了裁剪上界,并对失效分组重新采样,最终以一半的训练步数,在 AIME 2024 上拿到 50 分,对比 47 分 [1]。如果你在 RL 训练中只多记录一个标量,记录策略熵。损失函数不会告诉你这些。

前三集的一切都假设算法才是难点。到了规模化阶段,事实并非如此。到了规模化阶段,难点在于:你的训练可能早已停止学习,表面上却看不出任何异常.

核心思路:悄无声息的失败有三种形态

熵坍缩。 策略熵——也就是模型概率分布的分散程度——在训练过程中单调下降。采样得到的输出彼此趋同,逐渐变得近乎一模一样。探索在策略找到它本该能找到的策略之前就已经终止。训练不会崩溃,它只是悄悄停止发现任何新东西——这更糟糕,因为损失曲线看起来仍然一切正常。

零方差分组。 GRPO 从一组同源轨迹中计算优势值。如果组内每条轨迹得到的奖励都相同——简单问题全对,困难问题全错——标准差就是零,优势值也是零,整个分组对梯度的贡献就是。你却为此付出了全额计算成本。

分母。 损失函数里的每一个归一化项,本质上都是在决定哪些样本才算数,而这个决定几乎肯定是某个人为了数值计算上的方便随手定的,他根本没意识到自己在做这样的决定。

数字说话

DAPO 组合了两项干预措施 [1]。Clip-Higher 把上下裁剪边界解耦,抬高上边界,这样低概率的探索性 token 就不会被压制——在对称裁剪下,恰恰是这些 token 受打击最重,因为它们的比率变动最大。Dynamic Sampling(动态采样)会对组内所有轨迹采样都拿到同一奖励的提示重新采样——换句话说:它拒绝在无法产生梯度的组上继续花算力。

结果是:同样是AIME 2024,DAPO 用 Qwen2.5-32B 拿到 50 分,而对比模型47DeepSeek-R1-Zero-Qwen-32B 只拿到 47 分,且 DAPO 用的训练步数只有50% [1].

请仔细读这句话,因为真正有意思的数字不是那个 50。三个百分点的准确率提升,只是一个论据。把算力砍半还能拿到同样的分数,这才是真正的发现。 这项干预并没有让模型变得更聪明,它只是阻止了优化器把自己的梯度信号扔掉。

Diagram titled 'Three ways a run dies without raising an error' with three columns — silent in loss, wastes compute, kills exploration — and five rows: entropy collapse, zero-variance groups, length normalisation, std(r) normalisation, and train/infer mismatch. Every single row has a filled dot under 'silent in loss'. Footer reads: every row is invisible in the loss curve, that is what they have in common. Log policy entropy, and the fraction of groups with zero reward variance.
每一行的第一列都有个点。那一列,就是问题的全部。

往下一层看机制:你的分母,就是一种价值判断

Dr.GRPO [2] 在标准 GRPO 中发现了两种截然不同的偏差,二者值得被精确地指出来,因为它们把优化拉向了相反的方向。

长度偏差。 长度归一化专门放大了错误回答的长度。模型学会了:答错的时候写得更长——这和任何人的初衷都完全相反,放在仪表盘上看,却像是「模型在更深入地推理」。

回答层面的难度偏差。 把优势值除以std(r) 会让那些恰好方差较低的问题被过度加权。Dr.GRPO 去掉了这个缩放项,让每道题都被一视同仁地对待。

把这两项都去掉之后,在 Math-7B 上、用在 8×A100 上跑 27 小时 [2]——这个数字值得记住,因为它说明这类修复是一种修正,而不是规模上的堆料。

这个教训的适用范围远不止这一篇论文。损失函数里的每一个分母,都是一次关于「哪些样本更重要」的策略决定,而且从来没人把这个决定写下来。

先别急着往下看,自己猜一猜

标准 GRPO 用组内奖励的标准差去除每个优势值,还会用回复长度对损失做归一化。这两个操作看起来都只是普通的数值处理惯例。但其中一个,会在训练日志里制造出一种具体、可见的病态现象。是哪一个?它长什么样?

(a) 长度归一化会让正确答案变短。(b) 长度归一化会让错误答案变长。(c) 标准差归一化会让难题占据主导。(d) 标准差归一化会让低方差问题占据主导。

其中两个是对的,而且并不是大多数人会选的那两个。

事故现场:把探索的旋钮拧反方向

拿一条正常运行的 GRPO 训练流程,只改一处——收紧裁剪边界,而不是放宽它。

接下来会依次崩坏:低概率 token 被压制得最狠;策略熵比基线下降得更快;同一组内的补全开始变得几乎一模一样;std(r) 归零;优势值归零;而且整个过程中损失曲线看起来完全健康.

最后这一步才是要害所在。没有报错,没有尖峰,没有 NaN。一条光滑、专业、看似无懈可击的曲线,对应的却是一个早在几千步之前就已经停止学习的模型。

如果你在一次 RL 训练中只多记录一个标量,记录策略熵。 如果要记录两个,就再记录一下奖励方差为零的组所占的比例——那正是你的梯度正在消失。

现实推演

挑一个你这周正在跑的训练或评估循环——一次 RL 训练、一次微调,哪怕是每晚跑的基准测试也行。找出其中每一个分母,写下它到底在说“哪些样本更重要”。

按 token 取平均?你已经决定了长样本更重要。按序列取平均?你决定了它们同样重要。在任何地方除以标准差?你决定了低方差样本更重要——而你几乎肯定不是故意的。你至少会找到一个自己也说不出道理的地方。

代价几何:说句实话

常数是不能直接搬的。 DAPO 的裁剪边界是针对那个模型、那类任务、那种序列长度调出来的。机制可以复用,数字不行。

这些修正手段会互相干扰。 Clip-Higher、动态采样,以及改动过的分母,动的都是探索这根弦。把它们叠在一起用,效果并非简单相加,而论文里报告的大多是单独使用时的结果。

而且,跑一次不算测量。 本集里的每一个数字都来自某个特定的设置;它能不能在你的场景里复现,是你自己需要去做的实验——而且要有足够多的随机种子,才能真正检测出你所声称的那个效应。

接下来往哪走

第 5 集要讲的是:当“生成结果”不再只是文本,而变成了在一个会回应你的世界里走出的一条轨迹——这时智能体外壳就不再是策略外面的脚手架,而成了策略本身的一部分。

第 4 集,出自 《智能工程历险记》第一季——因果引擎(The Consequence Engine)。本系列文中的每个论点都按类别标注——定义、推导、证据、工程取舍、开放问题——比喻可以用来引出一个论点,但绝不能充当这个论点的证据。每一集都配有一个可在 CPU 上运行的实验。本文不包含任何雇主或客户的相关材料。——Paul Jialiang Wu · agentic-portfolio-lovat.vercel.app

参考文献

  1. Yu, Q. et al. (2025). DAPO: An Open-Source LLM Reinforcement Learning System at Scale. Clip-Higher 与 Dynamic Sampling;在 Qwen2.5-32B 上于 AIME 2024 取得 50 分,对比 DeepSeek-R1-Zero-Qwen-32B 的 47 分,且训练步数只用了 50%。 arxiv.org/abs/2503.14476
  2. Liu, Z. et al. (2025). Understanding R1-Zero-Like Training: A Critical Perspective(Dr.GRPO)。长度偏差与 std 归一化难度偏差;在 8×A100 上跑 27 小时,于 Math-7B 达到最先进水平。 arxiv.org/abs/2503.20783
  3. Zheng, C. et al. (2025). Group Sequence Policy Optimization(GSPO)。面向 MoE 模型与长篇推理的序列级重要性比率。 arxiv.org/abs/2507.18071
  4. Chen, A. et al. (2025). MiniMax-M1(CISPO)。对重要性采样权重做裁剪,而非对参数更新本身裁剪。 arxiv.org/abs/2506.13585
  5. Shao, Z. et al. (2024). DeepSeekMath(GRPO)。以上所有工作都是在修补这一算法。 arxiv.org/abs/2402.03300
  6. Schulman, J. et al. (2017). Proximal Policy Optimization Algorithms. 本集所解耦的正是这里的裁剪机制。 arxiv.org/abs/1707.06347