在大型语言模型的后期训练阶段,特别是采用GRPO等算法时,训练瓶颈已从预训练时代的MFU(模型浮点运算利用率)转移到了Rollout(轨迹采样)时间以及Rollout与Train的协同效率上。在Agentic强化学习训练中,这一问题尤为突出,超过80%的时间可能都耗费在Rollout过程。
Agentic RL的训练瓶颈:Long Context、Bubble与Long-tail Effect
Agentic RL任务可分为两类:
- Single-turn RL:例如单轮数学题求解或工具调用,只对最终结果进行校验。
- Multi-turn Agentic RL:模型在一次Rollout中需要与环境进行多轮交互,前一轮的输出作为上下文继续参与下一轮推理,例如ReACT范式。
对于进阶的Multi-turn Agentic RL,若不进行针对性优化,训练效率将极其低下。其核心痛点在于:
- Long Context(长上下文):复杂任务通常需要长思维链(Long CoT)或多轮工具调用,导致解码时间显著增加。
- Bubble(气泡/空转):类似于流水线并行中的气泡,指GPU因等待其他任务(如同批次中最长的轨迹)完成而产生的空闲时间。
- Long-tail Effect(长尾效应):在一个Batch中,轨迹长度极不平衡。整个Batch的结束时间取决于最长的轨迹,导致大量短轨迹完成后,GPU仍需空转等待,放大了Bubble的占比。
- Long Tool Execution(长耗时工具执行):工具调用(如代码沙箱、数据库查询、网络检索)本身耗时长,且具有强顺序依赖,难以并行压缩。
针对上述问题,业界在2024年下半年涌现了多个代表性的解决方案,主要包括AReaL (Ant Group)、Seer (Moonshot AI)、Slime(智谱AI)和verl(字节跳动)等框架。
四大框架核心设计哲学与亮点
1. AReaL:完全异步(Fully Asynchronous)
核心哲学:彻底解耦训练与推理,以牺牲部分On-policy准确性为代价,换取极致的吞吐效率。
- Stream Rollout:将Rollout与Train物理分离。推理侧持续用最新策略生成数据存入Replay Buffer,训练侧持续从中采样更新。理论上可将Bubble降至近乎为零,并支持训推异构硬件。
- Staleness-aware PPO:为缓解异步引入的Off-policy问题,设计了双层重要性采样(Double Importance Sampling)的Decoupled PPO目标,修正过时数据的梯度偏差,并通过超参控制允许的最大策略版本偏差。
- Interruptible Generation(可中断生成):当Replay Buffer数据不足时,可挂起长任务,优先产出短任务,以稳定训练端的Batch Size。
2. Seer:负载均衡(Load Balance)
核心哲学:坚持严格的On-policy同步训练,通过极致的系统工程技术实现负载均衡,消除长尾Bubble。
- Divided Rollout(分片Rollout):将长请求切分成更小的Chunk,以Chunk为粒度进行调度,灵活填充卡间气泡。
- Global KV Cache(全局KV缓存):基于Mooncake实现分离式KV缓存池。允许负载高的GPU上的请求迁移至空闲GPU,无需重复Prefill,为分片调度提供了基础设施支持。
- Context-Aware Scheduling:根据Prompt预测生成长度,采用“长任务优先”的调度策略,实验表明可大幅降低尾延迟(Tail Latency)。
- Adaptive Grouped Speculative Decoding (AGSD):利用同批次中生成较快的请求构建压缩后缀树(Compressed Suffix Tree),作为慢请求的草稿模型,实现自适应的投机解码。
3. verl:混合流程与易用性统一
核心哲学:集成与快速迭代,拥有活跃的开源社区生态。最新版本通过AgentLoop支持多轮Agentic训练,并提供了灵活的同步/异步机制。
- 灵活的同/异步支持:用户可在完全异步、部分异步(允许Rollout“抢跑”)和同步模式间进行配置和切换。
- Off-policy控制:通过动态的
staleness_threshold参数控制Replay Buffer中允许使用的旧数据比例,平衡效率与数据新鲜度。
- Partial Rollout/Sleep-Resume:与AReaL类似,支持中断长任务并保留状态,后续恢复,避免计算浪费。
4. Slime:为MoE与灵活性设计
核心哲学:轻量级、灵活性高,深度集成SGLang,为MoE模型训练优化。
- 混合模式(Hybrid Mode):
- Colocated Synchronous:适合数学、代码等对逻辑严密性要求高的任务,保证严格On-Policy。
- Decoupled Asynchronous:适合复杂、长执行的Agent任务,防止环境交互阻塞训练。
- SGLang Native Integration:深度绑定SGLang推理引擎,可第一时间应用其RadixAttention、高性能Triton Kernel等优化。
- Active Partial Rollouts (APR):采用超额订阅策略。例如需要Batch Size=32时,同时发起64个请求,当最快的32个完成时即终止其余请求,但保留KV Cache供下次使用,以降低单批次延迟。
横向对比与选型思路
| 维度 |
AReaL |
Seer |
verl |
Slime |
| 核心策略 |
完全异步 |
同步负载均衡 |
混合,灵活可配 |
混合,轻量灵活 |
| 长尾处理 |
Sleep-Resume(中断-恢复) |
Divided Rollout(分片) |
Sleep-Resume |
Active Partial Rollouts(主动部分) |
| 数据管理 |
Replay Buffer(混合历史) |
On-policy Streaming |
FIFO TransferQueue(流式最新) |
APR Replay Buffer |
| 突出特点 |
吞吐量极致,异构硬件 |
性能天花板,系统工程强 |
生态好,易用性高,功能均衡 |
SGLang/DeepEP深度优化,适合MoE |
| 适用场景 |
复杂长调用Agent,追求吞吐 |
严密逻辑推理(数学/代码),追求性能 |
快速上手/魔改,通用性强 |
超大规模MoE训练,需要灵活性的场景 |
选型建议:
- 构建复杂长耗时Agent(如多步骤搜索、代码执行):适合采用AReaL或Slime(异步模式),用高样本量弥补异步带来的精度损失。
- 构建严密逻辑推理场景(如Math/Coding刷榜):需要严格On-policy,适合参考Seer架构或使用verl(同步/半异步模式)。
- 训练超大规模MoE模型:适合Slime,其对SGLang和DeepEP的支持最为完善。
- 中小团队快速上手或学习研究:推荐verl(功能完备、社区活跃)或Slime(代码轻量、易于学习)。
何为工业级Agentic RL训练框架?
总结来看,一个成熟的“工业级”Agentic RL训练框架应具备以下特征:
- 训推分离与灵活调度:原生支持灵活解耦Rollout/Train,并能轻松在同/异步模式间切换,通常以Ray作为分布式抽象基础。
- 极致推理加速复用:深度集成vLLM、SGLang等高性能推理后端,支持FP8等量化技术,并适配PPO、GRPO等算法的投机采样优化。
- 智能长上下文管理:具备对长上下文样本的感知能力,支持Partial/Divided Rollout等策略,并提供可扩展的Context Manager接口。
- 算法与系统协同演进(Co-evolving):框架基础设施的先进程度,直接决定了后续算法、数据迭代的天花板与速度。
当前,RL开源生态正处于快速发展期,各大框架正在快速集成彼此的优良特性。理解其背后的设计哲学与取舍,将有助于我们根据自身任务需求、硬件条件和技术栈做出最合适的技术选型。
|