发表时间: 2025-12 · arXiv:2512.11306 (HKUST & Alibaba)
作者/机构: Tianyuan Wu†, Lunxi Cao†, Yining Wei‡, Wei Gao†, Yuheng Zhao†, Dakai An†, Shaopan Xiong§, Zhiqiang Lv§, Ju Huang§, Siran Yang§, Yinghao Yu§, Jiamang Wang§, Lin Qu§, Wei Wang†
†香港科技大学, ‡伊利诺伊大学厄巴纳-香槟分校, §阿里巴巴集团
大规模语言模型(LLM)的开发重点已从预训练转向强化学习(RL)后训练,这对于解锁模型在数学、编码和工具使用等复杂领域的推理能力至关重要。生产实践中普遍采用同步的、基于策略(on-policy)的算法,以确保最佳性能和模型稳定性。此范式要求一个严格的、迭代的学习过程,包括三个资源瓶颈不同的阶段:(1) Rollout:模型生成经验轨迹的内存带宽密集型推理阶段;(2) Training:基于奖励优化模型参数的计算密集型阶段;(3) Synchronization:将更新后的模型参数传播回推理工作节点的网络密集型阶段。
为了适应这些阶段的不同资源需求,生产部署越来越多地采用分离式架构(disaggregated architecture),将Rollout和Training阶段分别部署在专门构建的集群上:一个由成本效益高的推理优化型GPU(如NVIDIA H20)组成的Rollout池,和一个由高性能计算优化型GPU(如NVIDIA H800)组成的训练池。这种架构虽然通过匹配硬件能力和阶段特性解决了资源错配问题,但也引入了由依赖气泡(dependency bubbles)引起的严重效率问题。由于on-policy学习的严格同步要求,一个集群在另一集群的依赖阶段运行时必须保持空闲,导致严重的集群资源未被充分利用(如下图1上半部分所示)。
本文提出了ROLLMUX,一个用于分离式RL后训练的跨集群调度框架,通过跨集群编排来回收这些依赖气泡。其核心洞察在于,一个作业固有的结构性空闲时间可以被另一个作业的活跃阶段有效利用。ROLLMUX通过将多个RL作业编排到一个共执行组(co-execution group)中,紧密地“编织”它们在两个资源池中的Rollout和Training阶段(如下图1下半部分所示),从而实现对Rollout和Training GPU的高效分时复用,最大化利用率,同时保留on-policy学习所需的同步依赖性。
图1: 现有分离式RL架构与ROLLMUX共调度范式的比较。
ROLLMUX通过一种整体的算法-系统协同设计来应对生产环境中存在的挑战:
1. 应对工作负载异构性(C1):为了解决因模型大小、响应长度和交互模式多样性导致的调度NP-hard问题,ROLLMUX将全局优化问题分解为两个可处理的决策:
* 组间调度(Inter-group scheduling):识别可进行共执行的作业,并将其放置到能产生最小边际供应成本的共执行组中,同时不违反任何成员的服务等级目标(SLO)。
* 组内调度(Intra-group scheduling):在每个组内采用一种经证明为最优的循环调度(round-robin)策略,以最小化依赖气泡。
应对运行时随机性(C2):RL的Rollout阶段生成长度遵循长尾分布,导致阶段持续时间不可预测。ROLLMUX采用双管齐下的策略:
应对上下文切换开销(C3):RL后训练是状态密集的,频繁加载巨大的模型状态会产生高昂的冷启动延迟。ROLLMUX实现了温启动(warm-start)机制:
为实现上述调度,ROLLMUX引入了以阶段为中心的控制模型,将RL的各个阶段视为一等的可调度实体,并优化了跨集群模型同步的拓扑感知广播方案,有效消除了分离式设置中的同步瓶颈。在包含328个H20和328个H800 GPU的生产规模测试平台上,ROLLMUX相比标准分离式架构提升了1.84倍的成本效益,相比最先进的同地部署基线提升了1.38倍,同时实现了100%的SLO达成率。
RL后训练工作负载特征。RL后训练已成为现代AI基础设施的基石工作负载。与LLM预训练的统一计算流不同,标准的RL后训练工作流程包含三个资源瓶颈迥异的重复循环阶段。(1) Rollout:Actor LLM为一批输入提示生成响应,随后进行评估以收集奖励反馈。此阶段由于KV缓存操作而具有高内存带宽压力,但算术强度相对较低。在高端训练GPU上,这会导致严重的计算资源未被充分利用。【10, Areal: A large-scale asynchronous reinforcement learning system for language reasoning by Wei Fu et al., 2025, arXiv preprint arXiv:2505.24298】, 【17, History rhymes: Accelerating llm reinforcement learning with rhymerl by Jingkai He et al., 2025, arXiv preprint arXiv:2508.18588】, 【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】 (2) Training:根据奖励反馈优化Actor LLM的参数。此阶段是计算密集型的,需要大量的浮点吞吐量和高带宽互连(如NVLink和InfiniBand)用于梯度聚合【42, Megatron-lm: Training multi-billion parameter language models using model parallelism by Mohammad Shoeybi et al., 2019, arXiv preprint arXiv:1909.08053】。(3) Synchronization:更新的参数必须从训练工作节点广播到Rollout工作节点。此阶段是网络密集型的,当工作节点分布在不同的物理域时,常常成为瓶颈。
分离式RL的理由。Rollout和Training阶段迥异的资源需求在传统的单一、同地部署中造成了根本性的低效【41, Hybridflow: A flexible and efficient rlhf framework by Guangming Sheng et al., 2025, Proceedings of the Twentieth European Conference on Computer Systems】,即在单一集群的同质、计算优化型GPU(如NVIDIA H100/H800)上分时复用Rollout和Training。这迫使内存密集型的Rollout在昂贵的高FLOPS硬件上运行,导致严重的资源错配和总拥有成本(TCO)增加【49, AReaL-Hex: Accommodating asynchronous rl training over heterogeneous gpus by Ran Yan et al., 2025, arXiv preprint arXiv:2511.00796】,【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】。分离式架构通过将RL工作负载分散到两个专用资源池(图1底部)来解决此问题【10, Areal: A large-scale asynchronous reinforcement learning system for language reasoning by Wei Fu et al., 2025, arXiv preprint arXiv:2505.24298】,【44, Seamlessflow: A trainer agent isolation rl framework achieving bubble-free pipelines via tag scheduling by Jinghui Wang et al., 2025, arXiv preprint arXiv:2508.11553】,【49, AReaL-Hex: Accommodating asynchronous rl training over heterogeneous gpus by Ran Yan et al., 2025, arXiv preprint arXiv:2511.00796】,【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】:Training保留在昂贵的高FLOPS GPU池(如H100/H800),而Rollout则卸载到成本效益高的推理优化型GPU集群(如H20),后者以更低的成本提供高HBM容量和带宽(表1)。理论上,分离式架构通过使硬件能力与阶段特性对齐,提供了更优的TCO。
表1: 我们分离式集群中使用的GPU的性能规格和成本效益【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】, 【61, Megascale-infer: Serving mixture-of-experts at scale with disaggregated expert parallelism by Ruidong Zhu et al., 2025, arXiv preprint arXiv:2506.06122】。
依赖气泡。虽然分离式架构解决了硬件错配问题,但其效率会因依赖气泡而显著降低。最先进的RL后训练依赖于同步的、on-policy算法来确保训练稳定性和模型质量【6, DeepSeek-AI. Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning. 2025】, 【15, Interpolated policy gradient: Merging on-policy and offpolicy gradient estimation for deep reinforcement learning by Shixiang Gu et al., 2017, Advances in Neural Information Processing Systems (NeurIPS)】 , 【35, Magistral by Abhinav Rastogi et al., 2025, arXiv preprint arXiv:2506.10910】, 【39, Deepseekmath: Pushing the limits of mathematical reasoning in open language models by Zhihong Shao et al., 2024, arXiv preprint arXiv:2402.03300】。这种同步约束要求训练池在等待Rollout池生成新经验时必须保持空闲,反之亦然,Rollout池在等待训练池更新参数时也必须空闲,如图1顶部所示。现有的系统如AReaL【10, Areal: A large-scale asynchronous reinforcement learning system for language reasoning by Wei Fu et al., 2025, arXiv preprint arXiv:2505.24298】, 【49, AReaL-Hex: Accommodating asynchronous rl training over heterogeneous gpus by Ran Yan et al., 2025, arXiv preprint arXiv:2511.00796】、StreamRL【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】和AsyncFlow【16, Asyncflow: An asynchronous streaming rl framework for efficient llm post-training by Zhenyu Han et al., 2025, arXiv preprint arXiv:2507.01663】试图通过采用异步、off-policy算法来消除这些气泡。然而,将Rollout与Training解耦会引入样本陈旧性,这常常损害模型收敛性和最终准确性,使这些解决方案不适用于要求严格on-policy性能的任务。因此,生产部署通常会回到同步执行,但代价是大量的资源闲置。实际上,我们在§7.4的评估显示,由依赖气泡引起的空闲时间迫使分离式设置产生比硬件错配的同地部署基线更高的供应成本($0.94k/h vs. $0.71k/h),尽管Rollout使用了更便宜的GPU。因此,如果没有一个调度机制来回收这些损失的容量,分离式架构的理论TCO优势实际上被系统级低效率所抵消。
在本节中,我们识别了通过集群级调度来缓解分离式RL后训练中依赖气泡的机会,并探讨了实现这些机会所面临的算法和系统级挑战。
从单个作业的角度看,不违反on-policy算法的同步要求,§2中描述的依赖气泡是不可避免的。然而,在运行多样化RL工作负载的共享、多租户集群中,这些个体效率低下的部分代表了可通过全局编排回收的可用容量。我们的核心洞见是,构成一个作业依赖气泡的空闲资源可以被用来执行另一个作业的活跃阶段。通过将作业编排成共执行组,调度器可以紧密地“编织”它们的工作流,确保一个作业的计算密集型训练阶段与另一个作业的内存密集型Rollout阶段并行执行(图1底部)。这种交错执行模式有效地隐藏了依赖气泡,使系统能够同时饱和成本效益高的Rollout池和高性能的训练池,从而在不损害on-policy学习同步要求的情况下最大化集群范围的效率。
图2: 我们生产集群中排名前10的热门RL后训练工作负载:作业的阶段持续时间高度多样化。[S]、[M] 指Rollout期间的单轮/多轮交互。
图3: 朴素分时复用的一个坏案例:两个Rollout密集型作业竞争一个Rollout节点,导致两者都减速。
然而,在生产规模上完全释放共调度的优势并非易事,主要面临三个挑战。
C1: 工作负载异构性与调度难解性。首先,实现高效的共调度因生产RL工作负载的极端多样性而变得复杂。如图2所示,我们集群中的作业涵盖了广泛的模型大小(3B–32B)、响应长度(4k–32k tokens)和交互模式(单轮 vs. 多轮)。这种异构性表现为高度可变的阶段持续时间,从50秒到超过900秒不等,以及显著的阶段倾斜;例如,多轮智能体工作负载的Rollout阶段通常比其相应的训练阶段长3到4倍。因此,由于资源争用,朴素的分时复用常常是有害的。例如,随意配对两个Rollout密集型作业会在推理节点上造成瓶颈,迫使两个作业都停滞。如图3所示,这种争用导致严重的性能下降,使并发作业分别减速1.40倍和1.64倍。为避免此类干扰,调度器必须识别满足严格性能SLO的最佳打包方式。然而,将这些异构、阶段倾斜的工作负载映射到可用资源,构成了一个作业车间调度问题(Job Shop Scheduling problem)【13, Computers and intractability, volume 29 by Michael R Garey and David S Johnson, 2002, wh freeman New York】, 【23, Deterministic job-shop scheduling: Past, present and future by Anant Singh Jain and Sheik Meeran, 1999, European Journal of Operational Research】,即使在简化为确定性阶段持续时间的假设下,该问题也是NP-hard的。
C2: 随机运行时与倾斜气泡。其次,高效的调度编排因RL工作负载的内在随机性而变得复杂。与预训练不同,RL的Rollout创建了一个动态工作负载,其执行时间取决于生成响应的可变长度,这遵循长尾分布(图11)。这带来了两个不同的系统挑战。首先,工作负载是非平稳的:随着模型的更新,响应长度的分布在迭代中会发生漂移,少数“掉队”请求经常达到最大Token限制【12, Rollpacker: Mitigating long-tail rollouts for fast, synchronous rl post-training by Wei Gao et al., 2025, arXiv preprint arXiv:2509.21009】, 【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】, 【59, Optimizing rlhf training for large language models with stage fusion by Yinmin Zhong et al., 2024, arXiv preprint arXiv:2409.13221】。由于训练计算量与Token数量成线性关系,这种Rollout方差会传播到后续的训练阶段,使得静态的编排计划过时。其次,长尾响应在Rollout阶段导致倾斜气泡【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】, 【59, Optimizing rlhf training for large language models with stage fusion by Yinmin Zhong et al., 2024, arXiv preprint arXiv:2409.13221】。在一个Rollout批次中,提前完成的GPU必须空闲等待掉队者,有效地序列化了批次完成。这迫使调度器解决一个动态变体的作业车间调度问题,其中任务持续时间不可预测、随时间变化,并且容易产生显著的内部资源碎片化。
表2: 在一个8-GPU节点上,跨不同模型大小缓存Rollout或Training actor所需的内存占用(GB)。
图4: 在一个8-GPU节点上,跨不同模型大小的Rollout(左)和Training(右)的冷启动和温启动延迟。
C3: 上下文切换开销与内存驻留。第三,高效分时复用的粒度从根本上受限于作业间上下文切换的成本。与无状态的LLM推理【11, ServerlessLLM: Low-latency serverless inference for large language models by Yao Fu et al., 2024, USENIX OSDI】不同,RL后训练本质上是状态化的,管理着一个庞大的工作集,包括大型模型权重、优化器状态以及复杂执行上下文,如数据集管道和环境状态。每次切换时从头重建这些状态——即冷启动——会因数据平面和控制平面的重新初始化而产生高昂的开销。如图4所示,在一个8-GPU节点(Rollout用H20,Training用H800)上冷启动一个Rollout或Training阶段最多需要80秒,使端到端吞吐量下降高达45%。此外,与可以通过高速RDMA状态传输来缓解冷启动的无服务器系统【11, ServerlessLLM: Low-latency serverless inference for large language models by Yao Fu et al., 2024, USENIX OSDI】, 【53, λScale: Enabling fast scaling for serverless large language model inference by Minchen Yu et al., 2025, arXiv preprint arXiv:2502.09922】, 【55, BlitzScale: Fast and live large model autoscaling with o (1) host caching by Dingyan Zhang et al., 2025, 19th USENIX Symposium on Operating Systems Design and Implementation (OSDI 25)】不同,分离式RL设置受限于有限的跨集群以太网带宽。因此,唯一可行的快速切换机制是温启动策略,即作业状态保持缓存在本地主机的DRAM中。虽然这种方法将切换延迟显著降低了高达48倍(图4),但它带来了严重的内存压力。由于单个阶段的状态就消耗数百GB(表2),即使是高内存节点(1–2 TB)也严格限制只能同时驻留两到五个作业。这产生了一个紧张的驻留约束,迫使调度器在有限的内存预算内优化利用率。
我们提出了ROLLMUX,一个通过跨集群编排来回收分离式RL后训练依赖气泡的集群调度框架。ROLLMUX采用了一种整体的算法-系统协同设计:我们将逻辑调度策略(§4)与底层执行平面(§5)解耦。本节详细介绍核心调度算法。
ROLLMUX的调度目标是在严格遵守作业性能SLO和节点内存约束的同时,最小化总资源供应成本,从而最小化依赖气泡。为实现此目标,我们引入了共执行组(co-execution group)的抽象。一个共执行组是一组作业,它们通过分时复用的方式共享一对特定的Rollout和Training资源池。在一个组内,所有Rollout阶段在该组分配的Rollout工作节点上执行,所有Training阶段在该组的Training工作节点上执行。通过将作业划分到不相交的组中,ROLLMUX将难以处理的全局共调度问题转化为组内一系列独立的、并行的子问题。
这种基于组的调度直接解决了§3.2中确定的两个主要挑战。首先,通过将集群范围的搜索空间分解为更小、隔离的组,ROLLMUX确保了即使在有数千个并发作业的生产规模下,调度决策在计算上仍然是可行的(C1)。其次,组抽象作为一个严格的局部性域。通过将作业固定到特定的节点集,ROLLMUX强制执行了驻留约束:它确保组内所有成员的庞大工作集(权重和优化器状态)都驻留在主机DRAM中。这保证了上下文切换可以通过高速的本地内存传输(温启动)来服务,而不是缓慢的磁盘或跨集群获取(C3)。共执行组的抽象自然地导致了一个两层调度层次结构:(1)组间调度(§4.2),它将到达的作业分配到组中以最小化供应成本,同时满足内存和SLO约束;以及(2)组内调度(§4.3),它编排组内作业阶段的运行时执行顺序以最小化依赖气泡。
问题建模。我们将集群建模为一组不相交的共执行组的集合。我们定义一个共执行组 $G$ 为一个元组 $(J_G, R_G, T_G, \Phi_G)$,其中 $J_G$ 是该组中的活跃RL作业集合, $R_G$ 和 $T_G$ 分别表示为该组分配的Rollout(例如H20)和Training(例如H800)GPU集合,而 $\Phi_G = \{P_j\}_{j \in J_G}$ 是资源放置的集合,其中 $P_j$ 指定了作业 $j$ 被固定到的确切的Rollout和Training节点子集。这种固定 $P_j$ 严格决定了作业状态的缓存位置,以实现其温启动。
组间调度器解决以下在线放置问题。当一个作业 $j$ 到达时,它必须将 $j$ 分配给一个共执行组——可以是现有的,也可以是新创建的——并分配特定的资源放置 $P_j$。为了做出最优放置,我们将一个组的供应成本 $Cost(G)$ 定义为其Rollout和Training池($R_G$ 和 $T_G$)中所有已分配GPU的聚合小时价格(表1)的总和。调度器的目标是最小化接纳作业 $j$ 所产生的边际供应成本 $\Delta$:
其中 $G'$ 表示接纳作业 $j$ 后组的状态。这个公式自然地鼓励将作业“打包”到现有的依赖气泡中(此时 $\Delta = 0$),而不是供应新硬件(此时 $\Delta > 0$)。放置决策受到两个关键约束的限制:
1) 内存驻留。为保证温启动(C3),所有固定到特定节点的作业的总工作集不能超过该节点的主机内存容量。
2) SLO达成。放置必须满足新作业和所有现有作业的性能SLO。SLO由每个作业定义,表示相对于单独执行(solo execution)时可容忍的共执行减速(例如1.1倍)。形式上,对于更新后组 $G$ 中的每个作业 $k$,我们要求:
这里,$T_{solo_k}$ 是作业 $k$ 单独运行时(图1顶部)的估计迭代时间,即其Rollout和Training阶段持续时间之和;$T_{co-exec_k}$ 是在共执行下的预期迭代时间,通过模拟组内调度(§4.3)得出。
做出放置决策。在搜索空间中导航以找到最优放置并非易事,这既因为工作负载的异构性(C1),也因为运行时的随机性(C2)。ROLLMUX通过三种策略来应对这些复杂性。
1) 通过保守规划处理随机性。为了在作业执行时间多变且不可预测(C2)的情况下保证SLO合规性,ROLLMUX将准入控制与运行时优化解耦。组间调度器充当“守门员”,基于最坏情况下的执行边界做出放置决策。具体来说,对于一个到达的作业 $j$,我们假设其生成的每个响应都达到作业配置中定义的最大Token限制,来估计其阶段持续时间($T_{roll_j}$ 和 $T_{train_j}$)。通过基于这个上限进行规划,我们确保所选的放置即使在最不利的随机条件下也能满足SLO约束。如果实际运行时间更短(通常如此),组内调度器会动态回收由此产生的空闲时间以提高利用率(§4.3)。
现有作业:{A, B},待调度的新作业:C
图5: 组间调度器的放置策略。
图6: 一个共执行组的状态。ROLLMUX只将新作业放置到具有未饱和依赖气泡的未充分利用的组中,并避免创建过饱和的组。
2) 最优放置搜索。有了这些保守的估计,ROLLMUX会进行全局搜索以最小化边际供应成本 $\Delta$。对于每个到达的作业,调度器会遍历所有候选组,并评估三种放置策略:
3) 剪枝饱和组。为确保该搜索在生产规模下保持可处理性(C1),ROLLMUX会主动剪枝搜索空间。在评估具体放置之前,调度器会过滤掉已经饱和的组,即那些总作业负载达到组的瓶颈资源容量,再增加工作会导致性能下降的组。形式上,对于一个组 $G$,令 $T_{cycle}^G = \max_{j \in J_G} T_{solo_j}$ 为由组中最长作业决定的自然循环迭代时间。我们定义组的瓶颈负载 $T_{load_G}$ 为在瓶颈节点上处理所有阶段所需的总时间。由于所有训练节点都有相同的阶段,而Rollout节点可能不同(见图5),我们有:
如果 $T_{cycle}^G \ge T_{load_G}$,则该组是饱和的,没有“空闲”来吸收新工作(图6)。这样的组会立即被剪枝,因为任何进一步的增加都会导致延迟。
算法总结。我们将这些策略整合到一个统一的在线调度逻辑中,详见算法1。该算法接收一个新作业 $j$ 和现有组的集合作为输入。为了找到最优放置,算法首先遍历所有现有组(第3行),丢弃那些已经饱和的组(第4行)。对于每个剩余的候选组,它评估作业的潜在放置策略(直接打包或Rollout扩展);会违反内存约束(第8行)或SLO约束(第10行)的放置被丢弃。算法为每个可行的放置评估边际成本(第6-12行),如果该放置导致更低的成本,则更新其记录(第13-14行)。最后,算法将其记录与供应一个全新的隔离组的基线成本进行比较(第15-17行),并返回产生最低成本的组和作业放置。该算法允许高效的决策制定。由于每个组的放置策略数量很少,搜索复杂度与活跃组的数量成线性关系。如§7.5的经验证明,这种启发式方法使调度器即使在有数千个作业的集群中也能在亚秒级内做出最优决策。
一旦组间调度器将一个作业分配给一个组,组内调度器就负责编排运行时的执行序列。其主要目标是在分配的资源池内最大化资源利用率,从而最小化依赖气泡。
循环(Round-Robin)策略。ROLLMUX采用循环的Round-Robin调度。在一个共执行组内,调度器定义一个元迭代(meta-iteration),其中每个活跃作业精确地执行一次Rollout阶段和一次Training阶段(图1)。这些阶段在它们分配的资源池上顺序编排。例如,在一个包含作业{A,B}的组中,Rollout池执行RollA → RollB,而训练池执行TrainA → TrainB。
虽然简单,但这个策略在ROLLMUX强制执行的前提条件下是最优的。回想一下,组间调度器(§4.2)会主动剪枝任何总负载超过自然循环时间的组($T_{load_G} > T_{cycle_G}$)。对于剩下的非饱和组,它们的最优性是可以证明的。
定理1(利用率最优性) 对于任何非饱和组G,一个元迭代调度,其中每个作业的阶段都以循环顺序精确执行一次,可以最大化Rollout和Training池的总利用率。
证明概要。最优性基于非饱和组的定义:瓶颈节点的总工作负载 $T_{load_G}$ 不超过最长作业的独立循环时间 $T_{cycle_G}$。直观地,这意味着我们可以将所有其他作业的相应阶段(例如,它们的Rollout阶段)打包到最长作业的依赖气泡中(例如,其在训练期间空闲的Rollout节点)。这确保了一个循环周期,其中每个作业的阶段都精确执行一次,并在时间 $T_{cycle_G}$ 内完成。我们随后通过经验证明,任何偏离这个简单调度的做法都是次优的。(1) 执行更少是不可能的:从循环中省略任何作业都会导致更多的气泡和饥饿,这显然不是最优的。(2) 执行更多是低效的:重复任何作业阶段会延长循环时间,因为增加的阶段只能在最慢的作业完成后开始。然而,这个增加的持续时间与增加的有效工作不成比例,导致资源利用率净下降。因此,在最短可能的循环时间内执行所有必需工作的循环调度,在利用率上是最优的。我们在附录9中提供了正式证明。
长尾迁移。虽然循环调度对于确定性工作负载是最优的,但生产中的RL阶段是高度随机的(C2)。具体来说,Rollout持续时间遵循一个重尾分布,其中输入批次(batch)的完成时间由少数达到最大Token限制的“掉队”响应决定【12, Rollpacker: Mitigating long-tail rollouts for fast, synchronous rl post-training by Wei Gao et al., 2025, arXiv preprint arXiv:2509.21009】, 【17, History rhymes: Accelerating llm reinforcement learning with rhymerl by Jingkai He et al., 2025, arXiv preprint arXiv:2508.18588】, 【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】, 【59, Optimizing rlhf training for large language models with stage fusion by Yinmin Zhong et al., 2024, arXiv preprint arXiv:2409.13221】。这种现象造成了显著的阶段内碎片化:当大多数响应提前完成时,Rollout池中的大多数GPU会空闲等待少数掉队者完成,从而产生“倾斜气泡”(图7顶部)。
图7: 长尾迁移有效处理动态性。
为了回收这种碎片化的容量,ROLLMUX采用长尾迁移(long-tail migration)在运行时动态调整调度。组内调度器持续监控活跃Rollout阶段的进展。当一个阶段进入尾部受限状态(当一定比例的响应,例如80%,已完成时触发),系统会中断执行,将剩余的长尾响应整合到一小部分工作节点上,并立即在刚释放的大部分Rollout GPU上开始下一个作业的Rollout阶段(图7底部)。这种机制有效地将一个作业的尾部与下一个作业的头部进行流水线处理,确保了高利用率和更快的完成速度。
ROLLMUX与所采用的具体RL算法无关。其调度机制可推广到多样的on-policy RL算法,包括PPO【37, Proximal policy optimization algorithms by John Schulman et al., 2017, arXiv preprint arXiv:1707.06347】、GRPO【39, Deepseekmath: Pushing the limits of mathematical reasoning in open language models by Zhihong Shao et al., 2024, arXiv preprint arXiv:2402.03300】和DAPO【54, Dapo: An open-source llm reinforcement learning system at scale by Qiying Yu et al., 2025, arXiv preprint arXiv:2503.14476】。虽然主要为on-policy算法设计,ROLLMUX也适用于因训练和Rollout之间重叠不足而表现出结构性依赖气泡的off-policy作业(例如,单步off-policy【58, Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation by Yinmin Zhong et al., 2025, arXiv preprint arXiv:2504.15930】)。此外,ROLLMUX的集群级编排与作业内优化是正交的。诸如参数重分配【27, Real: Efficient rlhf training of large language models with parameter reallocation by Zhiyu Mei et al., 2024, arXiv preprint arXiv:2406.14088】、请求级尾部批处理【12, Rollpacker: Mitigating long-tail rollouts for fast, synchronous rl post-training by Wei Gao et al., 2025, arXiv preprint arXiv:2509.21009】和推测性解码【4, Respec: Towards optimizing speculative decoding in reinforcement learning systems by Qiaoling Chen et al., 2025, arXiv preprint arXiv:2510.26475】, 【17, History rhymes: Accelerating llm reinforcement learning with rhymerl by Jingkai He et al., 2025, arXiv preprint arXiv:2508.18588】, 【22, Taming the long-tail: Efficient reasoning rl training with adaptive drafter by Qinghao Hu et al., 2025, arXiv preprint arXiv:2511.16665】, 【34, Seer: Online context learning for fast synchronous llm reinforcement learning by Ruoyu Qin et al., 2025, arXiv preprint arXiv:2511.14617】等技术在单个作业或阶段的范围内操作,使其与ROLLMUX完全可组合。
§4中描述的调度策略为回收依赖气泡提供了理论蓝图。然而,在生产集群中实现这些增益需要一个能够强制执行细粒度决策的执行平面。本节详细介绍弥合这一差距的系统机制。我们关注两个实现挑战:(1)通过以阶段为中心的控制模型实现快速上下文切换(§5.1),以及(2)通过拓扑感知的模型同步减轻跨集群带宽瓶颈。
传统的深度学习调度器将“作业”视为资源分配的原子单元。这种粗粒度不足以在同一硬件上交错执行不同作业的不同阶段。为了解决这个问题,ROLLMUX引入了一个以阶段为中心的执行模型,将单个RL阶段提升为一等的可调度实体。
声明式阶段管理。我们将每个RL作业建模为一个阶段的依赖图。在一次性初始化(Init)作业状态(例如,模型、数据集)后,作业进入一个循环依赖循环:Rollout → Train → Sync。ROLLMUX通过一个声明式的Python API向调度器暴露了这种内部结构。用户只需用@rollmux.phase装饰器注解他们的阶段函数,该装饰器会注入一个透明的运行时垫片(shim)来管理执行生命周期。当一个阶段被调用时,这个垫片首先会阻塞执行,直到从组内调度器获得运行许可。一旦批准,它通过将阶段的驻留工作集从主机DRAM加载到GPU内存来执行温启动。用户函数完成后,垫片会立即将更新后的状态卸载回主机内存并释放GPU资源,使硬件立即可用于组队列中的下一个阶段。关键的是,ROLLMUX通过将数据平面的状态与控制平面的上下文解耦来优化此切换过程。在一个阶段完成后简单地终止进程会迫使系统在每次切换时拆除和重建昂贵的控制平面(例如,NCCL通信器、环境句柄)。相反,ROLLMUX采用了一种轻量级的挂起策略:卸载后,垫片将进程置于一个睡眠循环中,同时保留其控制平面上下文,而不消耗GPU资源。在下一次唤醒时,恢复该阶段只需要将其缓存的状态重新加载到GPU上,避免了从磁盘进行的昂贵冷启动和控制平面的重新初始化。
运行时钩子(Runtime Hooks)。最后,系统暴露了一个运行时钩子接口@rollmux.runtime_hook。这个接口扮演两个关键角色。首先,它驱动循环调度:组内调度器为每个工作节点维护一个FIFO队列。当一个作业的阶段完成时,钩子会向调度器发出信号,将该作业的下一阶段加入到备用资源池的队列中(例如,从Rollout移动到Training),并在现在空闲的资源上启动等待的下一个阶段。其次,它启用了长尾迁移(§4.3)。通过暴露内部的Token生成进度,钩子允许调度器检测到尾部受限状态,并从外部触发迁移,实时动态地重新配置资源。
为了缓解跨集群带宽瓶颈,ROLLMUX采用了一种拓扑感知的通信策略,以有效地将模型参数从训练集群同步到Rollout集群。最先进的RL框架(例如,veRL【41, Hybridflow: A flexible and efficient rlhf framework by Guangming Sheng et al., 2025, Proceedings of the Twentieth European Conference on Computer Systems】)依赖于像AllGather这样的扁平集合操作来传播模型更新。虽然在单一集群中高效,但这种方法在分离式设置中是病态的。它将慢速的跨集群以太网链路和快速的集群内InfiniBand/NVLink网络结构视为一个单一的统一网络。因此,它迫使每个Rollout工作节点都通过慢速的跨集群链路独立获取模型参数的完整副本(图8顶部),导致严重的瓶颈,同时使本地高速网络结构闲置。
图8: 一个从训练集群(TP=2, DP=2)到Rollout集群(DP=4)的同步示例,其中ROLLMUX只在跨集群网络上传输一个副本。M表示总参数数量。
ROLLMUX通过用分层的两阶段传输取代扁平集合操作来消除这种低效。⃝1 在第一阶段(集群间分散),ROLLMUX将更新后的模型划分为N个不相交的分片,其中N是训练GPU的数量。每个训练GPU通过并行的点对点(P2P)流将一个唯一的分片传输给一个对应的Rollout GPU。这确保了只有一个完整的模型副本穿越慢速的跨集群链路。⃝2 在第二阶段(集群内广播),接收GPU立即使用高带宽的InfiniBand/NVLink网络结构将它们的分片传播给所有其他Rollout工作节点。这种两阶段流水线有效地缓解了慢速跨集群瓶颈,最小化了总同步时间,并充分利用了网络层次结构。
我们基于ROLL【43, Reinforcement Learning Optimization for Large-Scale Learning: An Efficient and User-Friendly Scaling Library by ROLL Team, 2025, arXiv preprint arXiv:2506.06122】实现了一个功能完备的集群调度框架ROLLMUX。该系统包含约5.2k行代码(LoC),主要使用Python编写控制器,使用C++编写通信模块。
工作流程。系统操作遵循图9所示的闭环。作业提交后,ROLLMUX首先启动一个轻量级分析器(profiler)(⃝1)为作业的Rollout和Training阶段生成最坏情况下的持续时间估计(⃝2)。这些估计被送入组间调度器(⃝3),该调度器识别出最优的共执行组和资源放置,以最小化边际成本(§4.2)。一旦放置完成,作业就由组内调度器控制(§4.3)。这个运行时控制器编排循环的元迭代(⃝4),强制执行以阶段为中心的状态管理,并根据来自运行时钩子的实时反馈触发长尾迁移(§5.1)。一旦一个阶段完成,ROLLMUX将其状态卸载到主机DRAM中的actor缓存中,释放GPU资源,并随后从调度器队列中启动下一个作业的等待阶段(⃝5)。
图9: ROLLMUX系统架构。
隔离与容错。为确保生产级的可靠性,ROLLMUX强制执行严格的故障隔离。每个作业拥有一个专用的Ray【28, Ray: A distributed framework for emerging {AI} applications by Philipp Moritz et al., 2018, 13th USENIX symposium on operating systems design and implementation (OSDI 18)】实例,及其隔离的运行时环境。作业仅通过Redis【36, Redis - the real-time data platform by Salvatore Sanfilippo, 2009】通道与调度器通信,从不直接相互通信。因此,一个作业中的崩溃完全被限制在其pod内,防止了错误传播,并确保了同一共执行组内其他作业的稳定性。
集群设置。我们的实验测试平台包括两个地理上分布的异构集群,其中训练集群(Cluster-T)配备了计算优化的NVIDIA H800 GPU,而Rollout集群(Cluster-R)由成本效益高的H20 GPU组成。每个集群的内部网络是高速的400 Gbps InfiniBand网络。然而,这两个集群通过一个带宽受限的20 Gbps以太网链路连接。表1详细说明了硬件规格和小时成本,其中一个H800 GPU比一个H20 GPU贵2.85倍。
工作负载。我们基于从生产集群收集的真实世界轨迹构建我们的工作负载。对于微基准测试(§7.2–§7.3),我们使用Qwen【50, Qwen3 technical report by An Yang et al., 2025】模型(7B–32B)定义了一套五个代表性的作业类型(表3),它们具有不同的批处理大小、序列长度和Rollout/Training GPU数量,涵盖了单轮RLVR(在DeepMath103K【39, Deepseekmath: Pushing the limits of mathematical reasoning in open language models by Zhihong Shao et al., 2024, arXiv preprint arXiv:2402.03300】数据集上)和多轮智能体推理(在MathOrz57K【21, Open-reasonerzero: An open source approach to scaling up reinforcement learning on the base model by Jingcheng Hu et al., 2025】数据集上)。对于大规模评估(§7.4),我们重放了一个为期两周、包含200个异构作业的轨迹。该轨迹在模型大小(3B–32B)和多样化的数据集上具有高方差,涵盖了数学【39, Deepseekmath: Pushing the limits of mathematical reasoning in open language models by Zhihong Shao et al., 2024, arXiv preprint arXiv:2402.03300】、软件工程【31, Training software engineering agents and verifiers with swe-gym by Jiayi Pan et al., 2024】、游戏【7, Gymnasium - frozenlake environment by Farama Foundation, 2024】以及其他内部数据集。
基线。我们将ROLLMUX与三个基线进行比较。
* Solo Disaggregation (Solo-D):标准的分离式实践,作业在专用的Rollout和Training池上执行,不进行分时复用。
* Co-location (veRL [41]):传统的单一架构方法,所有阶段都在高性能的训练集群(Cluster-T)上使用流行的veRL【41, Hybridflow: A flexible and efficient rlhf framework by Guangming Sheng et al., 2025, Proceedings of the Twentieth European Conference on Computer Systems】框架执行。它避免了网络瓶颈,但存在硬件资源不匹配的问题。
* Gavel+ [29]:异构感知Gavel调度器【29, {Heterogeneity-Aware} cluster scheduling policies for deep learning workloads by Deepak Narayanan et al., 2020, 14th USENIX Symposium on Operating Systems Design and Implementation (OSDI 20)】的增强版本,修改后以支持RL后训练。Gavel+在作业级别优化资源分配(计算最优GPU比例),但缺乏细粒度控制来交错执行阶段级任务。
表3: 实验中的作业配置,NT、NR是对应的训练/Rollout GPU数量。
为了展示ROLLMUX如何有效回收依赖气泡,我们进行了三个不同复用场景的微基准测试,并测量了相对于基线的成本效益(每美元吞吐量)。
图10: 微基准测试结果。每个基准测试中,左侧是显示共执行时间线的甘特图;右侧量化了收益,其中ROLLMUX实现了1.82-2.11倍的更高成本效益。
干扰开销:如表4所示,由于组间调度器会主动剪枝可能违反约束的放置,ROLLMUX相比于单独执行仅引入了5-9%的开销。即使与理想化的同地部署上限(所有阶段都在昂贵的H800上零网络成本运行)相比,吞吐量差距也仅为9.0-20.0%,证实了我们的优化有效地掩盖了上下文切换和同步的开销。
表4: 归一化训练吞吐量,显示ROLLMUX与隔离执行(基线1.0)相比开销低于10%。作为参考,“Ideal”代表了在H800上同地部署所有阶段的性能上限。
图11: 左:Rollout阶段LLM生成长度的长尾分布。右:请求迁移在缓解长尾Rollout中的有效性。
图12: 模型同步时间。左:单节点,从8个H800到8个H20 GPU。右:多节点,从16个H800到16个H20 GPU。ROLLMUX的拓扑感知模型同步比veRL [41] 快高达8.33倍。
我们重放了一个包含200个异构RL作业的两周生产轨迹。
* 集群供应成本:ROLLMUX每小时仅花费510美元,分别比Solo-D和veRL减少了1.84倍和1.38倍,同时满足了所有作业的SLO(图13a)。
* 资源效率:与Solo-D相比,ROLLMUX在Rollout集群上减少了24.4%的依赖气泡,在Training集群上减少了43.1%。通过紧密打包作业,ROLLMUX的训练峰值仅需152个H800 GPU(相比veRL和Solo-D的328个,减少2.16倍),Rollout峰值仅需216个H20 GPU(相比Solo-D的328个,减少1.52倍)。尽管veRL不使用单独的Rollout GPU,ROLLMUX通过将内存带宽密集型Rollout卸载到更便宜的H20 GPU并填充依赖气泡,总体成本效益仍高出1.38倍。
图13: [测试平台] 在真实世界生产工作负载下,ROLLMUX和基线的集群供应成本和GPU使用情况,其中ROLLMUX的总供应成本分别比veRL和Solo-D降低了1.38倍和1.84倍。
我们通过大规模轨迹模拟来评估ROLLMUX组间调度器的最优性和可扩展性。
* 设置:使用微软Philly多租户训练集群轨迹的作业到达模式,并合成了现代RL后训练工作负载特征(平衡、Rollout密集型、Training密集型)。
* 敏感性分析(图14):
* 工作负载特性:ROLLMUX在所有工作负载类型上都表现出近乎最优的性能,成本开销仅为最优值的1.01倍-1.12倍,并达到100%的SLO。相比之下,基线表现不佳。
* 作业SLO:ROLLMUX的性能对SLO的松紧度非常稳定,始终以近乎最优的成本实现100%的SLO达成率。
* 组驻留:性能对最大组大小相对不敏感,表明即使是小规模的组(如2或3)也为ROLLMUX提供了足够的打包灵活性。
图14: [模拟] ROLLMUX组间调度器的敏感性分析。
† 分别表示延迟超过1分钟和5小时。* 不适用;在此规模下计算不可行。
表5: 决策延迟(毫秒)与并发作业数量的关系。ROLLMUX扩展性良好;暴力搜索Opt的延迟呈指数级增长,并迅速变得不切实际。
本文介绍了ROLLMUX,一个专为Rollout-Training分离式RL后训练设计的的多租户集群调度器。ROLLMUX引入了一种两层调度机制,该机制能够近乎最优地将RL作业划分到共执行组中,并以紧密编织的模式来编排它们的执行。这种方法有效地减少了由分离式架构引起的依赖气泡,从而最小化了集群供应成本。在每个集群多达328个GPU的分离式集群上,使用真实世界生产轨迹进行的广泛评估表明,ROLLMUX在保持100%性能SLO达成率的同时,实现了高达1.84倍的成本节省。
为了证明元迭代调度对于非过载组的利用率最优性,我们首先正式定义一个组的利用率。对于元迭代时间为 $T_{meta}$ 的组,其Rollout利用率 ($U_R$) 和Training利用率 ($U_T$) 分别为:
由于元迭代调度是重复的,我们只需分析一个元迭代,其中每个作业的Rollout和Training阶段都执行一次。回顾一下,$T_{cycle}^G = \max_{j \in J_G} T_{solo_j}$ 是最慢作业的单独迭代时间,令 $j_1$ 是达到这个最大值的作业,因此 $T_{cycle}^G = T_{roll_{j1}} + T_{train_{j1}}$。为简化起见,以下证明仅考虑一个Rollout节点和一个Training节点,但最优性可推广到多节点设置。根据非过载组的定义,我们有:
这直接意味着所有其他作业的总Rollout工作可以容纳在 $j_1$ 的Training阶段内,反之亦然:
因此,作业 $j_1$ 的执行时间决定了整个调度的循环时间,即循环时间为 $T_{solo_{j1}}$。
相反,任何重复作业的调度对于非过载组都是次优的,因为它延长了元迭代的持续时间,但增加的工作量不成比例,导致资源利用率净下降。我们通过尝试在元迭代调度中增加任何作业 $k$ 的重复来证明这一点。重复作业 $k$ 会为两个池增加工作量,并且由于需要等待最长的 $j_1$,必然会使循环时间至少延长 $T_{solo_k}$,导致新的利用率 $U'$ 低于原始的 $U$。我们可以界定利用率的变化量 $\Delta U = U' - U$。对于Rollout和Training池,变化量 $\Delta U_R$ 和 $\Delta U_T$ 的界限如下:
因此,总的利用率变化为:
这证明了任何重复都会降低整体利用率,使得循环调度对于非过载组是利用率最优的。
表6详细说明了§7.5中使用的作业配置文件。
表6: 模拟中使用的作业配置。每个作业由其Rollout时间(Troll)和训练时间(Ttrain)定义,它们从不同的均匀分布中抽取。
这部分报告了ROLLMUX调度器在具有混合工作负载和异构作业SLO的现实设置下的端到端性能。如图15所示,ROLLMUX通过设计实现了100%的SLO达成率,与理论上的离线最优调度器相匹配。相比之下,基于启发式的基线表现显著不佳:随机和贪心(Most-Idle)调度器分别只满足了60%和62%的作业SLO。这是因为ROLLMUX基于成本的优化(§4.3)通过赋予违反SLO的放置无限成本来明确剪枝。
图15: [模拟] 在现实混合工作负载下的成本效益和SLO达成率。(工作负载:混合,SLO∼Unif(1,2),最大组大小=5)。
在资源效率方面,ROLLMUX的平均成本为0.87K $/h,仅比离线最优高1.06倍。相比之下,基线的成本要高得多。随机和贪心策略的平均成本分别为1.62K和1.36K $/h(分别是离线最优的1.97倍和1.66倍)。这种高成本是由它们次优的组划分驱动的,其成本通过扩展到1400个GPU而飙升至超过5K $/h。然而,ROLLMUX通过峰值成本仅为约1.8K $/h来管理负载,最多需要504个GPU,证明了其在复杂在线环境中识别SLO感知、成本效益高的放置的有效性。