单次轨迹异步优化:智谱这篇论文,把 GRPO 的组采样彻底拆了
你有没有碰到过这种场景:训练一个写代码的智能体,一批 8 条轨迹已经采完 7 条,剩 1 条死活没结束。GPU 集群 80% 的卡空转干等,浪费多少电和算力不说,关键问题是——你这一晚上到底训了几步?
这就是同步 RL 的痛。传统的 GRPO 训练,要求每个 prompt 采一组(通常是 8 条)轨迹,必须等组里最慢的那条完成,才能开始训练。长尾效应在智能体任务里被放到最大——同 batch 里,写一段话和改一个 PR 的轨迹长度可能差 100 倍。
异步 RL 是公认的出路:轨迹一条到了就训一条,GPU 几乎不空转。但这事说起来容易,做起来全是坑。最大的两个坑:
- off-policy 漂移:rollout 引擎用的可能是 3 个版本之前的策略,重要性比直接拿来用会爆炸
- GRPO 的组采样天然不兼容异步:异步场景下你根本等不到一个完整的"组"
智谱 AI 这次的论文 2607.07508 干了一件挺狠的事:把 GRPO 砍剩"单次轨迹",再用一套叫 SAO(Single-rollout Asynchronous Optimization) 的设计把稳定性和效果都补回来。最后这套方案直接用在他们开源的 GLM-5.2(750B-A40B)上跑通生产训练。
核心摘要
SAO 提出了一个反直觉的设计:用每个 prompt 采一条轨迹替代 GRPO 的 8 条组采样,配合三招——直接双侧 token 级重要性采样 (DIS) 稳定训练、Skip-Observation GAE 处理多轮智能体轨迹、冻结注意力 + 更快 critic 更新支撑单 rollout 训练。在 SWE-Bench Verified(29.8 vs 27.0)、AIME 2025(97.3 vs 84.2)、BeyondAIME(74.8 vs 54.8)等 5 个智能体推理/编码 benchmark 上大幅超越 GRPO,能稳定训 1000 步不崩。这是一篇工程上相当扎实的论文——核心创新不是某个数学定理,而是把异步 RL 的"组采样"这个隐式同步障碍连根拔起,用单 rollout + critic 把训练效率和稳定性两个目标同时拧过来。
论文信息
- 标题:Single-Rollout Asynchronous Optimization for Agentic Reinforcement Learning
- 作者:Zhenyu Hou, Yujiang Li, Jie Tang, Yuxiao Dong
- 机构:智谱 AI(Zhipu AI)/ 清华大学
- arXiv ID:2607.07508
- 提交日期:2026 年 7 月 8 日
问题:异步 RL 的两个"房间里的大象"
说句实话,做 LLM 后训练的人,最近两年都被 GRPO 喂得有点"路径依赖"了。GRPO 的好处很明确:干掉 critic,内存减半,训练也更稳。但它有个结构性的硬伤——组采样。
GRPO 的优势估计是这么算的:给一个 prompt 采 8 条响应,用这 8 条的奖励做 z-score 归一化,得到每条的优势。
这在同步训练里完全 OK,反正 8 条同时出。但异步训练下,轨迹是一条一条地来的。你要等齐 8 条才能算优势,那前 7 条就只能在 buffer 里干瞪眼。所谓的"异步",其实在组内又退化成同步了。
更深的问题在于,组采样在智能体任务里根本不适合:
- 环境反馈天然是单条的:代码执行只跑一次返回结果,PR review 也只给一个判定
- 组内长度方差极大:同一个 prompt 下,简单题 200 tokens 收工,难题 100k tokens 还没写完
- 在线学习场景下根本没有"组"这个东西:用户反馈一个个来,凑组就是在浪费时间
第二个问题是训练稳定性。同步 GRPO 里,rollout 策略和训练策略的版本差是受控的(同一批采完才更新)。但异步 RL 里,rollout worker 用的模型可能比 trainer 落后好几个版本,重要性比 \(\pi_\theta / \pi_{\text{rollout}}\) 直接拿来用,分分钟爆炸。
现有的异步 RL 系统(AReaL、ROLL Flash 等)多在系统层面做文章(解耦 rollout 和 train、可中断生成等),但算法层面的稳定性方案一直是个空白。这就是 SAO 要填的坑。
方法核心:把组采样拆掉,再用三招稳住
第一招:单 rollout 采样
最反直觉的设计:每个 prompt 只采一条轨迹。
这当然有代价——梯度估计方差会变大,没有组内归一化做 baseline 了。但好处是:
- 真正的异步:轨迹完成即可训练,没有"凑组"的等待
- 更符合智能体环境:本来每条轨迹就是独立的环境反馈
- 配合好的 critic 反而更稳:状态相关的价值 baseline 比组内归一化更灵活
你可能会问:方差大到炸了怎么办?作者的解法是把方差问题转移到价值模型上——训一个足够好的 critic,让它给出精确的 baseline。
第二招:直接双侧 token 级重要性采样 (DIS)
异步 RL 里有个绕不开的麻烦:在轨迹生成过程中,rollout 引擎可能已经更新了 N 次权重。一条长轨迹里前半段和后半段可能是不同策略采的。
传统 PPO 的解法是维护 \(\pi_{\text{old}}\),重要性比算 \(\pi_\theta / \pi_{\text{old}}\)。但异步下 \(\pi_{\text{old}}\) 根本不可追踪。
SAO 的处理极其暴力——直接用 \(\pi_{\text{rollout}}\) 做行为策略:
这个比值直接通过 rollout 引擎保存的 token 级 log 概率算出来。简单粗暴,但带来的偏差怎么办?
作者设计了一个严格的双侧裁剪 + 掩码:
落在信任域外的 token 直接从梯度里抹掉(mask 掉,不参与反向传播)。注意作者用了非对称的 \(\epsilon_\ell = 0.3\)、\(\epsilon_h = 5.0\)——下界卡得紧(防止 \(\pi_\theta\) 跑太远),上界放得宽(允许 rollout 落后更多)。这个设计其实在表达一个工程取舍:异步 RL 注定有偏差,与其纠结精确的 \(\pi_{\text{old}}\),不如把"离谱的更新"用裁剪干死。
第三招:Skip-Observation Token-level GAE
智能体轨迹是这么个结构:
\(a_i\) 是模型自己生成的 token,\(o_i\) 是环境反馈(比如工具返回结果、编译错误信息)。\(o_i\) 不是模型生成的,如果按标准 GAE 算,优势信号会通过 observation token 传播——而这些 token 的 log prob 完全跟当前策略无关,引入大量噪声。
SAO 的解法是跳过 observation,直接连接相邻 action:
时序差分残差直接跨过 observation 间隙,优势估计只依赖模型自己的 token。这个设计看起来不复杂,但解决了异步 RL 在 agent 场景下一个特别脏的问题。
价值模型:三件套保证 critic 不拖后腿
单 rollout 训练没有组内 baseline 了,critic 必须顶上去。作者发现 critic 不训练会拖垮整个系统,于是做了三个设计:
1. 更频繁更新 critic:每步策略更新对应 \(K=2\) 步 critic 更新。critic 跟得快,baseline 才准。
2. 冻结 critic 的注意力层:实验发现 critic 训练不稳定主要来自 attention 层。冻结 attention、只训 MoE 投影,正则化效果拔群,critic 梯度范数从 ~10 降到 ~5。
3. 大规模价值预训练:价值估计的"冷启动"是大瓶颈,所以大幅扩展了 critic 预训练数据规模。
方法概览图

图 1:SAO 与 GRPO 的执行流对比——GRPO 的"组等待"被彻底拆掉;右侧是双侧 token 级裁剪的信任域
上图中,GRPO 必须等 1-8 号轨迹全部到齐才能开始训练,而 SAO 是 9、8、7... 倒序——每条到了就训。配图右半部分把 DIS 的裁剪区间画得很清楚:\(\pi_\theta / \pi_{\text{rollout}}\) 落在 \([1-\epsilon_l, 1+\epsilon_h]\) 之外的 token 直接被 mask 掉。注意 SAO 的信任域是非对称的——这是工程上"知道异步 RL 偏差难免"之后的务实选择。
实验结果:5 个 benchmark 全面碾压
主实验:5 个 benchmark 对比
| Model | AIME2025 | BeyondAIME | HMMT Nov 2025 | IMOAnswerBench | SWE-Bench Verified |
|---|---|---|---|---|---|
| Qwen3-30B-A3B SFT (baseline) | 80.4 | 53.3 | 75.2 | 53.3 | 23.0 |
| + GRPO | 84.2 | 54.8 | 76.0 | 55.8 | 27.0 |
| SAO(本文) | 97.3 | 74.8 | 88.2 | 74.0 | 29.8 |
| - SAO(仅 DIS) | 94.2 | 71.5 | 86.7 | 71.3 | – |
| - GRPO(加 DIS) | 93.5 | 70.8 | 84.0 | 70.0 | – |
数值很能打。AIME 2025 上从 84.2 提到 97.3,涨了 13.1 个点;BeyondAIME 从 54.8 提到 74.8,涨了 20 个点;IMOAnswerBench 从 55.8 提到 74.0。SWE-Bench Verified 这种编码任务上也从 27.0 提到 29.8(+2.8)。
注意表里有个细节——SAO(仅 DIS) 比 GRPO(加 DIS) 还稍好一点(94.2 vs 93.5 on AIME2025)。这说明单 rollout + DIS 这个最小化版本就已经比"保留组采样 + DIS"更强。SAO 完整的价值模型三件套则把单 rollout 的方差问题彻底压住。

图 2:5 个 benchmark 全面对比——SAO 在每个任务上都显著超过 GRPO 和 Baseline
跟同期最强的闭源模型比,SAO 训出来的 30B-A3B 模型在 AIME 2025 上 97.3 已经超过 Claude-Sonnet-4.5(87.0),逼近 GPT-5 High(94.6);在 BeyondAIME 上 74.8 直接超过了 GPT-5 High(74.0)。这个 30B-A3B 激活参数量的模型能打平或超过旗舰闭源模型,说明异步 RL 的训练效率红利是实打实的。
训练稳定性:GRPO 训着训着就崩了
这张图是我觉得最有说服力的:

图 3:Vanilla GRPO 在 ~150 步直接崩到 0;GRPO (+ DIS) 稳住但停在 85% 左右;SAO 一路爬到 97%
Vanilla GRPO 在 ~150 步就崩成 0 了。这个崩溃在同步训练里不容易出现,但在异步场景下,因为策略版本差持续累积,重要性比的方差被放大到让梯度完全发散。
加上 DIS 之后,GRPO 能稳定下来,但停在 85% 附近就上不去了——组采样本身的 off-policy 偏差在拖后腿。
SAO 从一开始就稳定上升,到 1000 步还没见拐点。这个稳定性才是异步 RL 能上生产的核心前提。
HMMT Nov 2025 上的曲线同样说明问题:

图 4:HMMT Nov 2025 上同样的崩溃模式——Vanilla GRPO 早期就崩,SAO 稳定爬升
价值模型消融:三件套各自有用
| 配置 | AIME2025 | BeyondAIME |
|---|---|---|
| SAO 完整 | 97.3 | 74.8 |
| SAO w/o Faster value (K=1) | 95.0 | 69.8 |
| SAO w/o Frozen attention (full param) | 90.6 | 74.5 |
| Vanilla VAPO (w/o DIS) | 91.3 | 69.0 |
| Running mean baseline | 79.8 | 55.3 |
几个有意思的发现:
- 去掉 frozen attention,AIME 掉 6.7 个点——这印证了作者的诊断:critic 训练不稳定主要来自 attention 层
- 去掉 faster value,BeyondAIME 掉 5 个点——critic 跟不上策略变化,baseline 估计就失真
- Running mean baseline(用最近 128 个奖励的均值做 baseline)只到 79.8——比 SAO 差 17.5 个点。这说明训得好的 critic 远比简单的 running mean 强,单 rollout 也能做出好效果
训练动态分析

图 5:冻结注意力(SAO)让 critic 梯度范数保持在 4-5,全参数更新(SAO w/o Frozen attention)飙到 10+
冻结注意力是稳定性最关键的一招——梯度范数从 ~10 降到 ~5,几乎打了个对折。

图 6:Faster value update 让 explained variance 持续走高,critic 对回报的解释力更强
Explained Variance 这个指标很关键——它衡量 critic 对真实回报的解释能力。SAO 完整版在 800 步时达到 0.6+,而 K=1 版本停在 0.5 附近。critic 越准,单 rollout 训练的 baseline 越稳。

图 7:SAO 的裁剪比例在 200 步后开始上升(~0.6%),vanilla VAPO 几乎不裁剪,~90 步就崩了
这张图是 DIS 设计合理性的硬证据——SAO 真的在裁剪那些离谱的 token,而 vanilla VAPO(不加 DIS)的裁剪比例接近 0,根本拦不住发散的 off-policy 更新。
Token-level vs Step-level:把 action 粒度做细
| 粒度方案 | AIME2025 | BeyondAIME |
|---|---|---|
| Token-level(SAO 默认) | 89.8 | 66.8 |
| Step-level (Average) | 85.8 | 60.5 |
| Step-level (Last-Token) | 87.3 | 62.8 |
(在 400 步的对比实验设置下)
智能体轨迹天然是 step 级的(一次工具调用 = 一个 step),但用 token 级粒度算 advantage 比 step 级好。原因不难理解:长 step 内的 token 之间的 advantage 应该不同(中间 token 和结尾 token 对最终结果的贡献不一样),用 step 级的均值会平滑掉这些信息。

图 8:Token-level 训练奖励稳定上升,step-level 两个变体卡在 0.49 附近
在线学习模拟:当奖励信号会变
最让我眼前一亮的实验是 4.5 节的在线学习模拟。任务设计很有意思:让模型写一段文字,奖励函数依次切换风格偏好(cute → chuunibyou → classical),看模型能不能快速适应。

图 9:4 种写作风格的准确率变化曲线,阴影区域表示风格切换的时间点。每次切换后,被偏好的风格会迅速从低位爬上来——这正是单 rollout 异步 RL 想要验证的能力:非平稳环境下能不能快适应

图 9:风格切换时(阴影区域),SAO 快速恢复,Running Mean 适应明显滞后
跟 Running Mean baseline 对比,Running Mean 在每次风格切换后都要花 100+ 步才追上来——因为它依赖历史窗口的均值,窗口里有大量旧风格的样本。SAO 的 critic 是状态依赖的,能精确估计"当前状态下新风格的价值",所以适应快得多。
这个实验是 SAO 真正想强调的能力:异步单 rollout RL 在非平稳环境下的快速适应能力。在真实生产环境里,用户的偏好、数据分布都会随时间漂移,这种适应性是同步 GRPO 做不到的。
我的判断:这是一份诚实的工程报告,不是学术炫技
先说优点。
第一,问题选得很准。异步 RL 在 2025 年下半年突然成了热门话题(AReaL、ROLL Flash、MobileRL 等),但大家都在系统层面卷——怎么解耦、怎么中断、怎么调度。SAO 直接点破了算法层面的卡点:组采样在异步下是结构性障碍。这个洞察本身比具体方法更值钱。
第二,工程细节给得足。\(\epsilon_l\) 和 \(\epsilon_h\) 的非对称设计、critic 注意力冻结的诊断过程、token-level vs step-level 的对比——这些不是"理论分析"能告诉你的,是真跑出来才发现的。这种"踩过的坑"是工程论文最值钱的资产。
第三,对比公平。论文明确把"GRPO + DIS"作为对比项,剥离了 SAO 中"加 DIS"和"用单 rollout"两个独立贡献的边际效应。Table 1 里 SAO w/ DIS only 跟 GRPO + DIS 的对比很说明问题——单 rollout 本身不输。
第四,直接上生产。SAO 已经被用在 GLM-5.2(750B-A40B)这种规模的模型上训练,这比任何 benchmark 数字都有说服力。一个能稳定训 1000 步不崩的方法,跟一个在 30B-A3B 上跑 1000 步就崩的方法,工程价值天差地别。
但也有几个想吐槽的点。
第一,论文没有 ablation 的反例——比如 frozen attention 看起来很有用,但为什么不试试冻结其他层(MLP)?是实验过不行还是没尝试?这个 ablation 不完整。
第二,token-level 的优势可能跟 critic 能力耦合。作者发现 token-level > step-level,但没有讨论"如果 critic 不够好,token-level 的方差会不会反而爆炸"。直觉上 token 级 advantage 的方差比 step 级大很多,对 critic 质量要求更高。
第三,跟 AReaL 的对比不够直接。AReaL 也是异步 RL 框架,但保留 PPO 的 critic 设计。SAO 在异步场景下能否复现 AReaL 在数学推理上的 2.77x 加速?这个跨工作对比在论文里没看到。
第四,对 critic 预训练数据的依赖性没量化。作者提到"扩展价值模型预训练数据规模"是关键,但没说是怎么扩展、扩展到什么规模、少了多少会崩。这个信息对想复现的团队很关键。
工程启发:如果你也在做异步 RL
如果你的团队正在做异步 RL 训练,这篇论文有几点可以借鉴:
- 组采样不是异步 RL 的必选。如果你的环境是单条反馈(编码、工具调用、对话),直接上单 rollout + critic,训练效率会高很多。
- DIS 的非对称裁剪是务实选择。下界卡紧(防跑太远)、上界放宽(容忍 stale rollout),这个 trade-off 在异步场景下大概率是对的。
- critic 的注意力层要冻。这是个挺反直觉的发现——attention 层的梯度不稳定。如果你的 critic 训崩了,先试冻结 attention。
- token-level GAE 比 step-level 更适合长轨迹。前提是 critic 要训得够好。
- Skip-Observation 是 agent 任务的标配。把 observation token 排除在 advantage 计算之外,这个 trick 简单但很有效。
写在最后
读完整篇论文,我最大的感受是:智谱这次没有在"刷榜"上花太多笔墨。5 个 benchmark 数字确实亮眼,但论文更想传达的是一个工程判断——异步 RL 的瓶颈不在系统,在算法。SAO 的价值在于把"组采样"这个被 GRPO 锁死的设计连根拔起,证明了"单 rollout + 好 critic"在异步场景下完全可行。
这种论文对一线工程师的参考价值,比单纯的 SOTA benchmark 高得多。它告诉你为什么 GRPO 在异步下会崩、什么设计能补上这个洞、哪些 trade-off 是值得做的——这些信息是从 paper 的实验细节里一个字一个字抠出来的,不是 abstract 里能看出来的。
GLM-5.2 已经被放在 Hugging Face 上开源了(MIT 协议),用的就是这套训练框架。想复现异步 RL 训练的团队,可以从 SAO + AReaL 入手——前者解决算法稳定性,后者解决系统效率。两者结合,应该就是当前异步 LLM RL 训练的最优解之一了。
觉得有启发的话,欢迎点赞、在看、转发。跟进最新 AI 前沿,关注我。