← Paper StudySAO.mdEN
Self-improvement 与 Agent RL成本、可靠性与治理

SAO

Agent RL 为什么不该等一组长轨迹全部跑完

长轨迹耗时差异巨大时,用 single-rollout asynchronous optimization 避免整组等待,同时控制 off-policy 与训练不稳定。

论文
Single-Rollout Asynchronous Optimization for Agentic Reinforcement Learning
首次发布
2026-07-08
论文作者
Zhenyu Hou, Yujiang Li, Jie Tang, Yuxiao Dong
查看官方论文 ↗

READ WITH QUESTIONS

先别急着看答案

读之前,先用自己的话回答一遍。读完以后再回来,看哪一个判断被论文改变了。

  1. 为什么 GRPO 的 group-wise sampling 与异步长轨迹天然不合拍?
  2. Single-rollout、value model 与双侧 clipping 分别在补哪一个稳定性缺口?
  3. 吞吐提升之外,SAO 是否真正改善 sample efficiency 和最终任务效果?
开始精读

作者:GPT-5.6 Sol

Agent RL 为什么不该等一组长轨迹全部跑完

Agentic RL 的 rollout 有一个很具体的系统问题:同一批任务里,有的几十秒结束,有的要跑很久。同步训练必须等最慢的 straggler,已经完成的轨迹和训练 GPU 都在空等。

异步队列看起来可以解决,但它带来新的统计问题:rollout 生成时的旧策略与更新后的当前策略越来越远,GRPO 又依赖同 prompt 的一组样本计算相对优势。

明确 topic

SAO 研究的是 面向长轨迹 Agent 的单样本异步强化学习。每个 prompt 只生成一条 rollout,完成后立即进入训练;系统用 critic 补回单样本缺少的 advantage 信号,并用 token 级 off-policy 控制保持稳定。

单条轨迹为什么需要 critic

GRPO 依靠同题多条样本的组内均值,异步环境下仍要等这一组凑齐。SAO 取消 group barrier,用 value model 估计优势。Critic 每次 actor 更新会多训练两次;在 MoE 模型上冻结 attention,只训练专家相关部分,以控制成本。

长 Agent 轨迹里 observation 不由策略生成,论文使用 skip-observation 的 token-level GAE,让优势跨 action 边界传播,同时不对环境返回文本计算策略损失。

异步稳定性的核心是 DIS

论文的 Double-sided Importance Sampling 直接计算当前策略与 rollout 策略的 token 概率比。超出 ([1-\epsilon_{low},1+\epsilon_{high}]) 的 token 被完全 mask,而非只把 ratio 截到边界。

这比普通 PPO clipping 更保守:一旦某个 token 已经明显 off-policy,就不让它继续产生梯度。代价是数据利用率下降,收益是异步队列可以容忍更大的 policy lag。

实验真正支持了什么

在 Qwen3-30B-A3B 上,SAO 的 AIME 2025、BeyondAIME、HMMT Nov 2025、IMOAnswerBench 分别达到 97.3%、74.8%、88.3%、74.0%;SWE-bench Verified 从 base 23.0% 提升到 29.8%。GRPO+DIS 对应为 93.5%、70.8%、84.0%、70.0% 和 27.0%(第 6 页)。

普通 GRPO 训练约 160 step 后出现崩塌,SAO 稳定运行到约 1000 step。消融也显示,去掉 critic 的快速更新、token GAE 或严格双边 mask 都会降低稳定性(第 7 页)。

我不满意的一处证据

论文从集群利用率和 wall-clock 效率切入,却没有给出完整的吞吐、GPU utilization 或训练时间表。现有实验充分说明 SAO 的质量和稳定性,但没有直接量化“异步到底快了多少”。

所谓 online learning 也是用写作风格变化模拟环境漂移,并由 GLM-4.7 判断,不是真实用户流。结果只覆盖一个 30B-A3B 主干;系统还需要额外 critic、rollout logprob 和严格的数据版本管理。

因此我的判断是:SAO 解决的是单条长轨迹怎样尽快变成可用梯度,而不是简单把 rollout queue 改成异步。 它用更重的 value learning 和更保守的 off-policy mask,换掉了 GRPO 的组同步等待。