SAO 拆解:当 GRPO 的组式采样撞上异步 Agent 训练,160 步崩溃之后怎么救

单 rollout 异步优化:把被 GRPO 删掉的 value model 请回来

Posted by Kevin on September 4, 2026

拆解对象:Single-Rollout Asynchronous Optimization for Agentic Reinforcement Learning(arXiv:2607.07508,2026-07-08 投稿),目前为预印本,尚未在顶会正式录用(dblp 仅收录为 CoRR abs/2607.07508)。作者 Zhenyu Hou、Yujiang Li(同等贡献,在 Z.AI 实习期间完成)、Jie Tang、Yuxiao Dong,清华大学 KEG 实验室。SAO 已部署于开源模型 GLM-5.2(750B-A40B)的 agentic RL 训练管线。这篇拆解只做一件事:分析它的结构为什么好。所有数字与公式来自 arXiv v1 正文与附录,可对照原表复核。

一、为什么值得拆

长程 Agent 任务的 rollout 长度差异极大:一条编码轨迹可能跑 128k token,另一条几步就结束。同步 RL 流水线必须等整批 rollout 全部完成才能更新,GPU 大量时间在空转,于是异步 RL(rollout 一到就立刻训练)成为效率上的必然选择。

问题出在算法侧。GRPO 的组式采样要求同一个 prompt 生成一组 rollout,用组内均值当基线。异步场景下一个组只能等最慢的那条长轨迹,等待期间策略已经更新,组内样本的「同时性」被破坏,等待本身就制造 off-policy 偏差。论文的实测很残酷:vanilla GRPO 在异步设置下约 160 步就性能崩溃(Figure 3)。

SAO 的回答是把 GRPO 的采样原语整个换掉:每个 prompt 只生成一条 rollout,完成即训练。单 rollout 没有组内基线可用,那就把被 GRPO 删掉的 value model 请回来。这篇论文的价值在于它系统回答了「砍掉组式采样之后,靠什么维持训练稳定」,而它已经在一台 750B 的生产管线上跑通过。

它与 DAPO 恰好构成一组对照阅读:DAPO 修的是 GRPO 在同步场景的四个故障模式,SAO 指出 GRPO 在异步场景存在结构性失效,两者的修复手段都沉在 token 级重要性处理这一层。

02004006001000 低 高 Training Steps ~160 步崩溃 vanilla GRPO(异步) 稳定训练 ~1000 步 SAO Figure 3 走势仿绘(示意,非逐点数字化):组等待制造的 off-policy 偏差让 GRPO 在异步设置下先涨后崩
论文 Figure 3 的走势仿绘:同一个异步系统里,vanilla GRPO 约 160 步性能崩溃,SAO 稳定训练约 1000 步

二、正文骨架:方法只有一节,但实验占了四节半

章节 职责 拆解要点
1 Introduction 立论 同步流水线对长程任务低效 + 现有异步系统只顾吞吐不管稳定性,双动机并列
2 Preliminaries 铺垫 异步 RL 的 off-policy 形式化,为 DIS 与单 rollout 铺路
3 Asynchronous RL with Single Rollout 方法主体 3.1 DIS 稳住异步训练,3.2 单 rollout 降 off-policy,两小节按「先稳定、再泛化」排序
4 Experiments 主实验 4.2 主结果、4.3 消融、4.4 训练动态、4.5 在线学习模拟,四小节层层递进
5 Related Work 相关工作 放在第 5 节而非第 2 节,避免打断「问题、方法、证据」主线
6 Conclusion + 附录 A/B 收束 附录 A 放 step-level 动作粒度的次优对照,附录 B 诚实写局限性

值得注意的排序细节:相关工作放在第 5 节。多数论文习惯放在第 2 节,这篇论文的方法叙事有明确的因果链(同步低效 → 异步 → 异步破坏组式采样 → 换采样原语 → 引入新问题 → 逐个解决),前置相关工作会打断这条链。

三、四个机制:一个原语替换,三个配套工程

第 3 节与实验设计里给出四个机制,按「替换原语、补基线、防噪声、防发散」的依赖序排布:

机制 作用对象 关键设计
单 rollout 采样 采样原语 每个 prompt 只生成 1 条轨迹,完成即训练,组等待消失(Figure 2 总览)
价值模型强化 基线估计 Critic 更新频率 2 倍于 Actor;冻结 value model 的 attention 参数,只训 MoE 投影层;扩大 value 预训练语料解决冷启动
跳过观察的 token 级 GAE 多轮轨迹的价值传播 优势只在动作 token 之间传播,跨过环境观察区间直接链接下一个动作(式 4、式 5)
DIS 双边裁剪 重要性采样 直接用 rollout 引擎记录的 log 概率算比率,彻底丢掉 π_old;落在 [1-ε_low, 1+ε_high] 之外的 token 从梯度中整体屏蔽

三个配套设计各有明确的故障归因,这是全文最值得学的部分:

  1. 为什么 critic 更新要快一倍:单 rollout 的梯度估计方差天然高于组均值基线,价值模型必须比策略学得更快才能压住方差。策略学习率 1×10⁻⁶,价值模型 5×10⁻⁶
  2. 为什么冻结 attention:作者实测发现价值模型不稳定主要来自 Full Attention 层,其梯度范数显著大于策略模型;MoE 层相对稳定。冻结 attention 只训 MoE 投影层,显存与稳定性双赢。隐含假设是预训练的注意力权重已具备足够的语义能力
  3. 为什么跳过观察 token:多轮轨迹 T = [a₀, o₀, a₁, o₁, …],环境反馈 oᵢ 并非模型生成,价值模型被迫预测「外部环境状态的价值」只会注入噪声。式 5 的 TD 残差直接跨过观察区间,把动作 i 的价值接到动作 i+1 上

DIS 的超参值得单独记:数学推理取 ε_low = 0.3, ε_high = 5.0,编码 Agent 取 ε_low = 0.8, ε_high = 3.0。上下界严重不对称且上界可以放到 5.0,因为目标是「mask 掉极端离群 token」这个温和动作,裁剪区间因此可以比 PPO 激进得多。与 DAPO 的 Clip-Higher 对照着读很有意思:同为非对称区间,DAPO 用它抬熵,SAO 用它防发散。

单条多轮轨迹 T = [a₀, o₀, a₁, o₁, a₂, …](1 prompt → 1 rollout,完成即训练) a₀ 动作 o₀ 观察 a₁ 动作 o₁ 观察 a₂ 动作 o₂ 观察 a₃ 动作 … token 级 GAE 跨过观察区,动作 i 的价值直接接到动作 i+1(式 4、5) 价值模型强化(补基线) Critic 更新 2× Actor 冻结 attention · 只训 MoE 投影 lr 5×10⁻⁶ vs 策略 1×10⁻⁶ DIS 双边裁剪(防发散) rollout 引擎 log 概率算比率 推理 [0.3, 5.0] · 编码 [0.8, 3.0] 区间外 token 整体 mask 单 rollout 采样(换原语) 每个 prompt 只生成 1 条轨迹 完成即训练 · 组等待消失 off-policy 偏差随之下降 依赖序:换掉采样原语(右)→ 单 rollout 方差更高,必须补价值模型(左)→ 跨观察区的 GAE 防噪声(上)→ DIS 防异步发散(中) 价值模型是被 GRPO 删掉的组件,SAO 在异步场景把它请了回来,且只训 MoE 投影层以压显存 对照阅读:DAPO 的 Clip-Higher 与 DIS 同为非对称 token 级区间,前者用来抬熵,后者用来防发散
四个机制综合仿绘:上为多轮轨迹的 token 结构与跳过观察的 GAE,下为三个配套工程的分工

四、主结果与消融:拆开看每个机制贡献多少

主结果分两张表:Table 1 数学推理(AIME2025 / BeyondAIME / HMMT / IMOAnswerBench),Table 2 编码(SWE-Bench Verified)。基座是 Qwen3-30B-A3B-Thinking-2507:

基准 基线 GRPO (w/ DIS) SAO
SWE-Bench Verified 23.0 27.0 29.8
AIME 2025(Python 工具) 80.4 84.2 97.3
BeyondAIME 53.3 54.8 74.8
HMMT - 76.0 88.3
IMOAnswerBench - 55.8 74.0

对照组里 GPT-5 High 在四个数学基准上是 94.6 / 74.0 / 89.2 / 76.0,SAO 在 30B 基座上两项反超、两项接近,这张对照表的信息量比绝对分数更大。

SWE-Bench Verified(编码) AIME 2025 · Python 工具(数学) 0102030 708090100 23.027.029.8 基座GRPO (w/DIS)SAO 80.484.297.3 基座GRPO (w/DIS)SAO OpenHands 脚手架 · 最多 300 轮交互 16 次运行均值 · top-p 1.0 Table 1 / Table 2 重绘 · 基座均为 Qwen3-30B-A3B-Thinking-2507
主结果重绘:编码与数学两个赛道上,SAO 对 GRPO (w/DIS) 与基座的领先幅度(AIME 2025 上 97.3 对 GPT-5 High 的 94.6)

消融部分(Table 3、Table 4)同样按「拆掉哪个机制掉多少分」组织:

配置 AIME 2025 BeyondAIME
完整 SAO 97.3 74.8
去掉 critic 双倍更新 95.0 69.8
去掉 attention 冻结 90.6 74.5
Vanilla VAPO (w/o DIS) 91.3 69.0(训练快速崩溃)
Running-mean 基线替代 value model 79.8 55.3

这张表把「value model 回归」的必要性钉死了:换成 running-mean 基线直接掉 17.5 分,比任何单个工程技巧的损失都大。Figure 4 的训练动态分析(解释方差、critic 梯度范数、裁剪比率)则解释了为什么:VAPO 基线在约 90 步崩溃,DIS 是异步训练能跑下去的前提条件。

一个应该带着警惕读的点:消融只在 30B 基座上做,GLM-5.2 的 750B 部署是单点生产验证,没有受控 A/B 对照,论文也没有给出那次训练的机时成本。「30B 上消融、750B 上部署」这中间的尺度跳跃目前靠信任填补。

五、GLM-5.2 部署:一句话的生产背书,与诚实的边界

论文对 GLM-5.2 部署的全部表述只有摘要里一句:SAO 已部署于 GLM-5.2(750B-A40B)的 agentic RL 训练管线。正文没有部署细节、没有评测数字、没有硬件配置。附录 B 反而写清楚了部署前提:SAO 依赖已训练的价值模型和 token 级 rollout log 概率,需要基础设施能在异步生成过程中可靠保留这些概率。

这种「给一句背书、不给复现细节」的写法是双刃剑:对论文可信度而言,旗舰模型的生产采用是最强的存在性证明;对读者复现而言,管线层面的工程细节要从 Z.AI 的 slime 框架(GLM 全系 RL 训练基础设施,已开源)里去找。论文本身没有开放代码仓库,这一点与 DAPO 全套开源(代码 + 数据 + 权重)形成鲜明对比,也框定了两篇论文的可复现性边界。

六、能学走的三个写作技巧

  1. 先钉死对手的失效模式再立论:Figure 3 的「GRPO 160 步崩溃」曲线放在主实验之前,读者带着「确实会崩」的实证印象进入方法节,每个机制的必要性论证都因此省力
  2. 消融表设计成「机制的死亡证明」:running-mean 基线 79.8 分这一行单独存在,就是为了证明「删掉 value model 这条路走不通」。比正向累加更狠的写法
  3. 局限性章节写在正文附录里而非藏在讨论中:附录 B 明确列出价值模型开销、基础设施依赖、单实验室结果三条边界。工程论文的诚实感来自主动交代适用条件

尾注:谱系位置与对我自己工作的映射

放进 GRPO 后训练谱系里看,SAO 是一个方向性的转折点:GRPO(2024)靠删 value model 起家,DAPO(2025.03)修它的同步故障,GSPO(2025.07)稳它的 MoE 训练,SAO(2026.07)在异步场景把 value model 请了回来。算法演化的判据始终是任务形态:短程可验证任务用 GRPO 系就够,长程异步 Agent 任务需要 token 级信用分配,这笔 critic 的开销躲不掉。

对我在做的 AI 赛后教练系统,直接的启发在「跳过观察的 GAE」这个设计上:赛后教练的轨迹理解同样面对「模型输出」与「环境反馈」(对局日志、遥测数据)交替出现的多轮序列,对环境反馈段落做价值传播或归因时,噪声注入的问题同构。算法层输出结构化 JSON 证据时,把「模型可解释的动作」与「环境给定的状态」在 token 序列里显式分区,是同一个设计哲学的工程化版本。

参考

  • 论文:arXiv:2607.07508(2026-07-08),Zhenyu Hou, Yujiang Li, Jie Tang, Yuxiao Dong,清华大学 KEG
  • 生产部署:GLM-5.2(750B-A40B,MIT 开源)agentic RL 管线;基础设施对应 Z.AI 开源的 slime 框架
  • 主实验口径:基座 Qwen3-30B-A3B-Thinking-2507,batch size 128,最大长度 128k tokens,SWE-Bench Verified 用 OpenHands 脚手架(最多 300 轮交互);数学基准报告 16 次运行均值(BeyondAIME 为 4 次),top-p = 1.0,temperature = 1.0
  • 对照阅读:DAPO(arXiv:2503.14476),本站拆解见「DAPO 拆解:怎么用四个机制把 GRPO 在 AIME 2024 从 30 分拉到 50 分」