统一资源层如何扩展语言模型智能体的强化学习?

AgentFly 把沙箱、模型服务和 API 作为类型化资源统一调度,报告智能体强化学习吞吐量提升 2–4 倍。

直接答案

AgentFly 认为,智能体强化学习的瓶颈不在强化学习算法,而在其周边系统:沙箱、模型服务和外部 API 在 rollout 过程中必须被反复分配、复用和销毁。该框架把这几类环境都当作类型化资源,交由同一个引擎调度,报告在同等硬件下训练吞吐量约为其他智能体强化学习框架的 2–4 倍,并在依赖不同资源类型的任务上训练了 1.5B 到 32B 参数的模型。

1篇文献引用

本文由 WisPaper 驱动的搜索和论文分析生成。

瓶颈出在环境管理

智能体强化学习让语言模型在多轮交互中训练:模型生成一个动作,工具或环境返回一个观察,循环往复,直到算出奖励。论文的核心主张是,这一循环的限制更多来自周边系统,而非强化学习训练器。每次 rollout 都要分配、驱动并销毁沙箱、本地模型服务和外部 API 等外部环境,作者指出,复用与生命周期管理的开销甚至可能超过文本生成。

这一判断解释了设计目标。作者把长程优化交给现有的强化学习训练器 verl,转而针对环境瓶颈:在高吞吐下并发管理异构资源,同时不让训练器挨饿。因此,AgentFly 更适合被理解为面向智能体强化学习的系统贡献,而不是一种新的强化学习算法。

一个引擎调度四类资源

AgentFly 把资源定义为工具或奖励函数使用的最小单位,并把每一类资源表示为一种独立的类型化规格,由同一个引擎解析。论文列出四类:容器(包含镜像、CPU 与内存上限以及隔离后端)、本地模型服务(一个 vLLM 服务器,含模型、并行度和内存配置)、外部模型 API(端点与凭证),以及进程内环境(例如国际象棋引擎)。它们都实现 start、reset、status、release 这一共同生命周期接口,因此一个调度器管理的是异构资源,而不只是单一类型。

有两个机制让它不只是记账。第一,引擎为每种资源规格维护一个池,调用方用同一标识符重复申请时,返回的是同一个存活实例,而不是新分配一个;于是 rollout 第一轮创建的容器会在后续各轮中复用,把启动成本摊到整条轨迹上。第二,每个池声明最大容量,池满时后续申请会异步等待,直到其他 rollout 释放实例,从而在高并发下限制总用量,又不阻塞生成。资源的作用域有两种:绑定单次 rollout,结束时自动释放;或全局共享,跨 rollout 持续存在,充当共享服务。

四层设计让工具代码不含分配逻辑

框架分为四层。智能体层暴露面向用户的组件:智能体(模型、提示词、解析器、记忆)、工具和奖励函数。rollout 层把它们组合成智能体循环,驱动生成与工具执行交替进行,并在轨迹结束后计算奖励。上下文层注入 rollout 标识符、参考答案等信息,并代理资源申请。资源层负责分配与回收。上下文层与资源层合起来构成统一资源系统。

实际效果体现在论文的代码示例中。一个执行 shell 命令的工具声明了全局上限为 24 个实例的容器规格,并以 rollout 标识符申请,因此该 rollout 的所有轮次复用同一个容器;一个奖励函数以全局作用域申请外部模型 API,供多个 rollout 共享。两个函数都不含分配或清理逻辑。论文还把智能体模块与训练解耦:两侧只通过轨迹通信,因此智能体一侧可以独立于训练基础设施演进。

异步 rollout 消除整批等待

rollout 把 token 生成与工具调用交织在一起,各轮、各任务的单步耗时差异很大。在批同步设计中,每个阶段都要等最慢的 rollout,产生空闲间隙。AgentFly 让整个 rollout 异步执行:生成、工具调用、奖励计算和资源操作各自独立等待,因此某条 rollout 的慢步骤不会阻塞其他 rollout,资源分配也与进行中的 rollout 重叠。

论文的示意图对比了三条两轮 rollout 在两种调度下的表现,显示异步版本更早完成,不过图中时长明确只是示意,并非实测。资源系统的实测证据来自扩容实验:在 ScienceWorld 上,除资源数量外所有设置固定,每步训练时间从 1 个容器时的 66.95 分钟,随容器数增至 8、16、32、64 而依次降到 35.28、18.67、10.5、5.08、2.71 和 1.86 分钟。作者报告,资源足够后,训练主要受生成吞吐和训练器参数更新的限制。

环境越重,吞吐优势越大

论文报告了其所称的首个智能体强化学习框架之间的受控吞吐对比。实验使用 WebShop 和 R2E-Gym,这两个任务都得到 AgentFly 和被比较框架的官方支持;由于 AgentFly 使用 enroot 而 SkyRL 默认使用 Docker,作者为 SkyRL 实现了 enroot 后端以保证比较公平。轨迹吞吐分两种设置报告:端到端训练衡量整个系统,仅 rollout 则排除训练器影响,只看智能体模块。

在两个任务上 AgentFly 的吞吐都最好。论文称其约为 verl-agent 的 2 倍、RAGEN 的 1.75 倍,并称在 R2E-Gym 上优势更大,达到 SkyRL 吞吐的 3.8 倍。结论把这一点概括为同等硬件下约 2–4 倍。这些是论文自身配置下的轨迹吞吐比值,不是对最终模型质量的断言;WebShop 实验用 Qwen2.5-3B-Instruct 训练 150–200 步,R2E-Gym 的测量则覆盖 Qwen3-4B 在约 30k 上下文、最多 20 轮条件下的前十个训练步。

重新分词会让多轮训练失稳

另一项发现与数据处理有关,而非调度。多轮智能体把每次回复解码成文本,以便解析和执行工具调用,而朴素流程之后会为训练重新分词这段文本。由于对 BPE 分词器而言重新分词并非恒等变换,训练器会在策略从未生成的 token 上计算对数概率、重要性比率和 KL 惩罚;在多轮 rollout 中,这种漂移还会进入后续提示词。AgentFly 改为让 token ID 作为推理与训练之间的交换单位。

实测影响在数量上很小,后果却很大。作者用 Qwen3.5-4B 在 WebShop 上以 chain rollout 和 GRPO 训练 150 步,发现漂移平均影响 36% 的轨迹,但只涉及 0.07% 的 token。三次运行在前约 75 步彼此吻合,随后重新分词的两条开始分叉:KL 损失峰值分别为 3.5 和 0.6,梯度范数为 30 和 12,而按 ID 训练时最高只有 0.12 和 2.9。一条重新分词的运行只部分恢复,验证奖励停在 6.6;另一条从 6.8 跌到 0.8;而按采样 ID 训练保持稳定,最终达到 7.0。

chain rollout 通常更好,但并非总是

由于两种 rollout 策略运行在相同的智能体、工具和资源上,AgentFly 可以在只改变策略的情况下比较它们。chain rollout 为每条轨迹保留一段不断增长的对话,在单个序列上训练模型的所有助手轮次;step rollout 在每个环境步用新提示词重新提示模型,每步产生一行训练数据,从而限制上下文长度,并让每一步拥有自己的样本,供 GiGPO 这类步级信用分配使用。

chain rollout 在几乎所有设置下都不差于 step rollout。它在 GRPO 下优势最大:在 1.5B、3B、7B 上,分布内 WebShop 成功率分别提升 5.8、19.1 和 2.2 个百分点,并在 3B 和 7B 上延续到留出商品(52.5 对 39.8,58.0 对 48.0)。GiGPO 的步级信用分配则在 step rollout 下帮助最大,在分布内比 GRPO 高 6.4、15.9 和 7.6 个百分点;而在 chain rollout 下,这一增益缩小到 1.6、0.9 和 5.7 个百分点。ALFWorld 呈现同样规律:chain rollout 把 GRPO 从 75.5% 提升到 91.0%,把 GiGPO 从 89.3% 提升到 98.1%,GiGPO 相对 GRPO 的增益从 step rollout 下的 13.8 个百分点缩小到 chain rollout 下的 7.1 个百分点。在 1.5B 上,四种配置的留出 WebShop 结果彼此相差约一个百分点以内,落在约两个百分点的评估噪声范围内。

资源层在哪里最关键

论文自己的优先级很清楚:环境越重、越异构,统一资源层带来的收益越大。吞吐优势在 R2E-Gym 上比在 WebShop 上更大,前者每个任务用一个容器,后者在多个 rollout 间共享容器;ScienceWorld 的扩容曲线也显示,只有容器池足够大时,每步时间才趋于平稳。对于 rollout 主要耗在沙箱创建与销毁上的团队,这是应最先权衡的结果。

第二个决策不存在唯一最优设置。chain 与 step rollout 的取舍取决于任务、模型规模和估计器,这也是框架在同一接口后同时支持两者的原因;在 1.5B 上,留出集差异落在评估噪声内,而在 3B 和 7B 上,chain rollout 的留出集优势相当明显。token ID 的发现贯穿两者:一个对解码文本重新分词的流程可能在前几十步看起来正常,之后才分叉,因此保留采样 token ID 是信任多轮训练曲线的先决条件,而不是可选的优化。

本文引用的文献

1

AgentFly: Extensible and Scalable Reinforcement Learning for LM Agents

AgentFly 通过一个引擎把容器、模型服务、外部 API 和进程内环境作为类型化资源调度,报告在同等硬件下训练吞吐量约为其他智能体强化学习框架的 2–4 倍,并表明对解码文本重新分词会使多轮训练失稳。