发表时间: 2025-09 · arXiv:2509.21009 (HKUST & Alibaba)
RollPacker:通过缓解长尾 Rollout 实现快速、同步的强化学习后训练
作者/机构: Wei Gao†, Yuheng Zhao†, Dakai An†, Tianyuan Wu†, Lunxi Cao†, Shaopan Xiong‡, Ju Huang‡, Weixun Wang§, Siran Yang‡, Wenbo Su§, Jiamang Wang‡, Lin Qu‡, Bo Zheng‡, Wei Wang†
(†香港科技大学, ‡阿里巴巴集团, §淘宝天猫集团)
本文旨在解决同步强化学习(RL)后训练中因响应长度不均衡(长尾分布)导致的严重GPU资源利用率不足(称为“气泡”)问题。现有方法通常通过放宽同步来缓解此问题,但这可能损害训练精度。
研究目标:在不牺牲训练精度和在策略(on-policy)训练语义的前提下,系统性地解决同步RL后训练中由长尾rollout引起的GPU空闲问题,从而显著加速训练过程。
核心创新点:
1. 提出尾部批处理(Tail Batching)策略:这是一种新颖的rollout调度策略。其核心思想是将导致长尾响应的提示(prompt)系统性地整合到少数专用的rollout步骤(称为“长轮次”)中,同时确保大多数步骤(“短轮次”)只包含长度均衡的短rollout。通过将长响应从短轮次中排除并重新调度到少数长轮次中,该策略有效减少了rollout期间的GPU空闲时间。由于仅改变了训练样本的顺序,该方法保持了训练的准确性。
2. 设计并实现RollPacker系统:该系统通过对RL三个阶段的整体优化,充分发挥了尾部批处理的优势。
* 弹性并行规划器(Parallelism Planner):针对rollout阶段,该规划器能自适应地配置并行策略。它根据短轮次和长轮次不同的内存压力,动态选择最优的张量并行(TP)配置,以适应工作负载的变化。
* 动态资源分配与调度的奖励调度器(Reward Scheduler):针对奖励(reward)阶段,该调度器将奖励计算与rollout流水线化,并根据工作负载特性(如代码执行超时、评判模型共享GPU)动态调整计算预算,以隐藏奖励计算的开销。
* 基于流的训练器(Stream Trainer):针对训练(training)阶段,该训练器实现了更细粒度的阶段重叠。它机会性地将rollout阶段空闲的GPU重新分配给训练任务,并异步地将已完成的rollout数据流式传输到训练阶段进行梯度计算,同时通过损失缩放和延迟梯度更新来保持在策略训练的语义。
通过这些优化,RollPacker在Qwen2.5系列大语言模型上,相较于veRL实现了2.03倍至2.56倍的端到端训练时间缩短,相较于RLHFuse最高实现了2.24倍的加速。
RL在LLM后训练中的工作流程:强化学习(RL)是提升LLM推理能力的关键后训练技术,尤其是在数学、代码生成等领域。一个典型的RL后训练工作流程包含多个扮演不同角色的模型。Actor LLM 负责对输入提示生成响应,是主要的优化对象。Reward LLM 评估每个响应并输出一个标量奖励信号,该信号可来自多种来源,如代码的沙箱执行、数学的规则逻辑或用于对齐任务的“LLM-as-a-Judge”【索引47,Llm-as-a-judge and reward model: What they can and cannot do, 2024】。为了稳定优化过程,通常会引入一个 Reference LLM作为正则化器。整个工作流程包括三个阶段:(1) Rollout:Actor LLM为一批$P_0$个提示各生成$R_0$个响应;(2) Reward:生成的响应由相应的奖励工作器进行评估;(3) Training:Actor LLM根据计算出的奖励更新其参数,并可选择性地受参考模型约束以减轻梯度不稳定性。
同步在策略训练的必要性与挑战:为了最大化模型性能,RL后训练通常在同步设置下进行,即在策略(on-policy)训练。在此设置中,rollout必须在训练开始前完成,且actor的权重仅在训练结束后更新(见图1a)。这种同步要求确保所有响应都由最新的模型参数生成,从而稳定训练并提高跨任务的可靠性【索引16,Interpolated Policy Gradient: Merging On-Policy and Off-Policy Gradient Estimation for Deep Reinforcement Learning, 2017, NeurIPS】。然而,这也常常导致严重的流水线气泡和低利用率,尤其是在rollout阶段。
Table 1: RL后训练的时间分解。我们在三个任务中使用veRL [45]和GRPO [43]以及真实世界数据集[20, 54]训练14B模型,最大长度为16k。
现有解决方案分类:先前为缓解GPU气泡所做的努力大致分为两类:在同步约束下的阶段重叠和放松同步。
同步约束下的阶段重叠:这种方法试图通过在同步屏障前,将长尾rollout与其他阶段的执行进行流水线化来提高资源利用率。例如,RLHFuse【索引63,Rlhfuse: Efficient rlhf training for large language models with interand intra-stage fusion, 2024】将rollout与奖励计算和参考模型推理重叠,而ROLL【索引50,Reinforcement learning optimization for large-scale learning: An efficient and user-friendly scaling library, 2025】和MiMO【索引52,Mimo: Unlocking the reasoning potential of language model – from pretraining to posttraining, 2025】则将每个已完成响应的奖励计算与进行中的rollout阶段重叠。虽然这些设计在一定程度上减少了空闲气泡,但它们并未从根本上解决由长尾响应主导的rollout时间问题,性能提升有限。此外,随着响应长度增加,奖励和参考推理的相对耗时占比减少(通常低于15%,如表1所示),即使在理想的重叠下,也无法掩盖持久的空闲气泡。
放松同步约束:另一类工作采取更激进的策略,即放松rollout和训练之间的严格同步屏障,如图1b所示。例如,Kimi【索引48,Kimi k1.5: Scaling reinforcement learning with llms, 2025】通过截断长尾响应并保留已生成token以在后续步骤中继续rollout,引入了部分rollout。StreamRL【索引62,Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation, 2025】、AsyncFlow【索引17,Asyncflow: An asynchronous streaming rl framework for efficient llm post-training, 2025】和RhymeRL2【索引19,History rhymes: Accelerating llm reinforcement learning with rhymerl, 2025】允许一步的陈旧度,使训练阶段能使用略微过时的rollout数据。更进一步,AReaL【索引14,Areal: A large-scale asynchronous reinforcement learning system for language reasoning, 2025】引入了完全异步的RL训练,rollout和训练完全解耦。这些方法有效减少了GPU气泡,但引入了根本性的权衡:通过放松同步,它们损害了训练的在策略性质,常导致精度下降和稳定性降低。
总结现有方案的不足:综上所述,现有解决方案要么通过重叠非瓶颈阶段与rollout来提供边际改进,要么通过放松同步来牺牲在策略保证。没有一种方法能在保持同步RL训练的准确性和稳定性的同时,消除长尾rollout引入的低效率。
尾部批处理的核心思想:本文提出了一种名为尾部批处理(tail batching)的新颖提示调度策略,旨在从根本上缓解响应长度不均衡问题,以减少GPU气泡,同时保持在策略RL训练的语义且不损失精度。GPU气泡主要由一小部分生成过长响应的提示引起。一个简单的想法是直接从rollout批次中排除这些长尾响应,但这会带来两个关键问题:(P1) rollout阶段可能无法达到构成有效批次所需的提示或响应数量;(2) 系统性地排除长提示会扭曲训练样本分布,可能损害模型性能。尾部批处理通过两种关键技术解决了这些问题。
解决批次大小不足(P1)的技术:推测执行:为了解决问题P1,尾部批处理利用了推测执行【索引58,Apache spark: a unified engine for big data processing, 2016, Commun. ACM】的思路,即超额提供请求,并只选择性地保留最快完成的部分。在GRPO算法【索引43,Deepseekmath: Pushing the limits of mathematical reasoning in open language models, 2024】下,每个rollout步骤需要采样$P_0$个提示,每个提示产生$R_0$个响应(图3-顶部)。尾部批处理并非精确启动$P_0$个提示,而是启动更多提示,并只接纳最先完成的$P_0$个。同样,每个提示会生成超过$R_0$个响应,但只保留最先完成的$R_0$个。这种“竞速完成”的推测方式自然地过滤掉了长响应,产生了均衡、较短的批次,从而在保持所需批次大小的同时最小化了空闲气泡。
解决样本分布扭曲(P2)的技术:长提示队列与长轮次:为了解决问题P2,尾部批处理保证没有提示被永久排除。如图3-底部所示,在推测执行期间被中止的提示会被添加到一个长提示队列(long-prompt queue)中。一旦该队列的大小达到$P_0$,这些提示就会在一个专用的长轮次(long round)中被批量调度执行,此时会禁用推测执行,以允许生成完整长度的响应。由于这类长提示较为罕见,长轮次出现的频率较低,并与由均衡响应构成的频繁的短轮次(short rounds)交错进行。这种设计确保了所有提示最终都被包含在内,同时大部分rollout步骤保持高效。
训练精度保证:从统计学角度看,尾部批处理仅将短提示和长提示重新排序到不同的轮次中,并未改变底层的样本分布或放松同步。先前的研究表明,训练顺序的改变不会降低模型精度【索引7,Curriculum learning, 2009, ICML】、【索引9,Does the order of training samples matter? improving neural data-to-text generation with curriculum learning, 2021, EACL】、【索引13,Reverse curriculum generation for reinforcement learning, 2017, CoRL】。实际上,一些近期的RL后训练算法甚至明确探索将提示重排序作为一种提高效率的手段【索引37,Can prompt difficulty be online predicted for accelerating rl finetuning of reasoning models?, 2025】、【索引57,Dapo: An open-source llm reinforcement learning system at scale, 2025】、【索引59,Speed-rl: Faster training of reasoning models via online curriculum learning, 2025】。我们的实验结果也进一步验证了这一点:如图8所示,尾部批处理实现的精度曲线与标准同步RL训练几乎完全相同。
Rollout效率验证:我们通过在§2.2所述的相同设置下,使用Qwen2.5-14B模型【索引38,Qwen2.5 technical report, 2025】在代码数据集【索引54,Kodcode: A diverse, challenging, and verifiable synthetic dataset for coding, 2025】上训练,来凭经验验证尾部批处理在提升rollout效率方面的有效性。推测因子设为$\eta = 1.25$,意味着在每个短轮次中,actor LLM会推测性地启动$\eta P_0$个提示,每个提示生成$\eta R_0$个响应,同时只接受最先完成的$P_0 \times R_0$个。图4a比较了有无尾部批处理时,五个训练步骤的响应长度分布。与基线方法(veRL【索引45,verl: Volcano engine reinforcement learning for llm, 2024】)相比,尾部批处理在前四个步骤(短轮次)中产生了更短且更均衡的响应,将最大响应长度减少了高达8.9倍。产生长响应的提示被推迟到第五步(长轮次),其输出通常比基线更长,但仍受限于16k token的最大长度。这种重组显著降低了rollout成本,并将端到端训练时间缩短了1.48倍(见表2)。
系统优化的动机:随着尾部批处理缓解了rollout开销,奖励和训练阶段的相对贡献变得更加突出,如图4b所示。此外,短轮次和长轮次表现出截然不同的资源使用情况,这意味着统一的rollout策略并非最优。这些发现为我们接下来针对RL流水线每个阶段量身定制的系统级优化提供了动机。
本节介绍RollPacker,一个为充分发挥尾部批处理优势而通过整体设计构建的高效在策略RL系统。
RollPacker的三大核心组件:RollPacker集成了三个关键组件:并行规划器(parallelism planner)、奖励调度器(reward scheduler)和流式训练器(stream trainer),每个组件分别解决了rollout、奖励和训练阶段的独特瓶颈。
并行规划器(Parallelism Planner):采用推测执行的短轮次比长轮次产生更高的GPU内存压力。固定的张量并行(TP)配置无法适应短轮次和长轮次间变化的资源需求,导致频繁的KV缓存抢占开销和效率下降。RollPacker引入了一个并行规划器,它能动态分析工作负载并为每一步选择最优的TP配置,以削减rollout开销。
奖励调度器(Reward Scheduler):随着rollout成本的降低,奖励计算变得更加显著(图4b)。为防止其成为新的瓶颈,RollPacker采用了一个奖励调度器,它将奖励计算与rollout并行流水线化,同时为每个样本评估动态分配计算预算,有效降低其开销。
流式训练器(Stream Trainer):在禁用推测执行的长轮次中,不均衡的响应会导致明显的GPU气泡(图4a)。流式训练器通过引入更细粒度的rollout和训练重叠,推进了先前的阶段重叠方法【索引50,Reinforcement learning optimization for large-scale learning: An efficient and user-friendly scaling library, 2025】、【索引63,Rlhfuse: Efficient rlhf training for large language models with interand intra-stage fusion, 2024】。具体而言,完成的提示会立即流式传输到训练阶段,而空闲的GPU则从rollout任务重新分配给梯度计算任务。为保持在策略语义,流式训练器会仔细缩放梯度并推迟权重更新,直到整个rollout完成,从而在保持精度的同时减少空闲时间。
工作流程:离线与在线阶段:RollPacker分两个阶段运行:离线分析阶段和在线执行阶段。在离线阶段,RollPacker基准测试actor LLM在不同TP大小、批次大小和序列长度下的预填充和解码吞吐量。它还分析了评判LLM在不同序列长度下的GPU内存占用和运行时成本。这些分析结果用于指导在线决策。
在线阶段工作流程详解:在在线阶段,RollPacker在一个同步RL作业中协调rollout、奖励和训练(图5)。① 在rollout期间,尾部批处理根据长提示队列的大小决定是否应用推测执行。② 并行规划器随后结合历史作业负载和分析的性能数据,选择一个最优的TP配置。③ 与此同时,奖励调度器将评估与rollout重叠,并为每个奖励任务动态调整预算。④ 并发地,流式训练器监控rollout进度,以决定何时将GPU从rollout重新分配给训练。⑤ 随着提示完成,它们被流式传输到训练阶段进行即时梯度计算。⑥ 一旦整个rollout完成,流式训练器停止流式传输,累积所有计算出的梯度,并在所有可用GPU上触发同步梯度计算和更新。⑦ 最后,更新后的actor权重在下一个RL步骤开始前与rollout阶段同步。
短轮次导致的高内存压力:如§3所述,尾部批处理增加了短轮次中并发响应的数量,给GPU内存带来了更大压力。现有的LLM服务引擎【索引24,Efficient memory management for large language model serving with pagedattention, 2023, SOSP】、【索引42,Sglang: Fast serving framework for large language models, 2025】通常通过抢占正在进行的请求(即换出其KV缓存以释放GPU内存)来缓解内存压力。因此,高抢占次数表明存在广泛的内存争用。图6a显示,在训练Qwen3-8B(32k响应长度,批大小128)时,短轮次比长轮次多出高达1.79倍的抢占,引入了显著的计算开销。
增加TP可缓解内存压力但有开销:张量并行(TP)是缓解GPU内存压力的标准技术。如图6a所示,配置更大的TP规模会将模型权重划分到更多GPU上,从而为KV缓存释放内存,并将短轮次和长轮次的抢占次数分别减少21.1%和10.3%。增加的KV缓存容量缓解了内存争用并缩短了rollout延迟。如图6b所示,当TP=1时,短轮次的rollout时间是长轮次的87%,抵消了尾部批处理的收益;将TP大小增加到2,可将短轮次持续时间减少25%。然而,更大的TP规模也会引入通信开销,这在rollout受长尾响应限制的长轮次中占据主导,从而侵蚀性能。
自适应TP选择策略:大多数RL训练框架【索引21,Openrlhf: An easy-to-use, scalable and high-performance rlhf framework, 2024】、【索引45,verl: Volcano engine reinforcement learning for llm, 2024】采用固定的并行配置,我们的分析表明这对于尾部批处理是低效的(图6)。短轮次和长轮次的最优TP大小不同,需要动态适应。RollPacker引入了一个并行规划器,以可忽略的开销按步骤重新配置TP大小。在离线阶段,规划器在没有尾部批处理的情况下分析最优TP大小,并将其用作训练开始时的默认配置。然后,它持续跟踪抢占次数,并使用一个轻量级启发式策略相应地调整TP大小:抢占次数突然增加(例如,>1.05倍)会触发TP增加(大小加倍),而连续四个步骤持续零抢占则会触发TP减少(大小减半)。为限制跨节点通信,TP组被约束在单个GPU服务器内。
奖励计算成为新瓶颈:随着rollout成本的降低,奖励计算成为端到端延迟中一个不可忽视的贡献者(图4b)。为了缓解这个问题,RollPacker将奖励评估与rollout流水线化,并为每个任务自适应地分配计算预算。
异步奖励计算:在这种方法中,奖励评估是异步执行的:已完成的响应被分派到奖励工作器,与正在进行的rollout阶段并行,这与ROLL【索引50,Reinforcement learning optimization for large-scale learning: An efficient and user-friendly scaling library, 2025】和MiMo【索引52,Mimo: Unlocking the reasoning potential of language model – from pretraining to posttraining, 2025】类似。这种设计将奖励评估与rollout重叠,部分隐藏了开销。然而,仅依赖这种设计不足以解决潜在的瓶颈,特别是对于代码沙箱执行和评判LLM评估。
代码沙箱执行的挑战与优化:在编码任务中,从业者通常为每个测试用例设置最大执行超时。例如,在图4的训练实验中,强制执行了30秒的超时。然而,如图7a所示,约5%的提示达到了这个超时。这些最终产生零奖励的长时间执行,延迟了整个奖励阶段,使其占总训练时间的近22%(图4b)。由于许多正确响应完成得快得多,固定的超时在注定失败的样本上浪费了大量计算。
自适应超时机制:RollPacker引入了一种自适应超时机制。对于每个测试用例,它跟踪训练期间正确响应中的最大执行时间,记为$T_{anchor}$。当一个新响应超过此阈值时,沙箱执行会提前终止并分配零奖励。考虑到代码执行期间潜在的CPU争用,为避免过于激进的截断,超时被放宽为 $T_{timeout} = \max(\min(\lambda \cdot T_{anchor}, T_{max}), T_{min})$,其中我们根据经验设置$\lambda = 1.5$,$T_{min} = 2s$,$T_{max} = 30s$以获得良好性能。这种设计能快速失败注定失败的案例,同时保留对有希望的响应的评估。
LLM-as-a-Judge的低效性:在异步奖励计算中,RL系统通常会为评判LLM预留固定数量的GPU(例如,总GPU的25%),以避免与其他工作器发生干扰。然而,这种策略导致了糟糕的利用率。如图7b所示,当一个7B参数的评判LLM为响应评分时,其预留的GPU平均SM利用率仅为约22.6%。这种低效率源于评判模型通常处理小批量响应,使得大部分预留容量处于空闲状态。
LLM-as-a-Judge的优化:共置与资源共享:为了提高效率,RollPacker将评判LLM与actor LLM共置在相同的GPU设备上进行并发执行。然而,这种设计引入了两个问题。首先,rollout和奖励评估现在共享GPU资源,可能相互干扰。
解决干扰问题:MPS:我们观察到,无论是actor LLM还是评判LLM都无法单独饱和GPU的SM利用率。为了实现高效共享,RollPacker启用了多进程服务(MPS)【索引33,NVIDIA Multi-Process Service (MPS) Documentation, 2025】,它在warp级别上划分GPU资源,允许两个模型以最小的干扰并发运行。
解决内存问题:分层流水线卸载:在同一GPU上托管两个模型有耗尽内存的风险,因为actor LLM已经需要大量空间用于其KV缓存。为了解决这个问题,RollPacker引入了一种分层流水线方案,以减少评判LLM的内存占用。受先前工作【索引6,Pipeswitch: fast pipelined context switching for deep learning applications, 2020, OSDI】的启发,它将评判LLM的大部分层卸载到主机内存,并使其参数通过PCIe与GPU上的激活计算同步流式传输。由于rollout很少饱和PCIe带宽,这种流水线卸载几乎不产生开销。RollPacker动态调整卸载的层数以适应不同的输入序列长度,确保评判LLM在适应内存的同时最大化利用率。
长轮次气泡问题与流式训练器:尽管有先前的优化,长轮次仍然因响应完成不均而存在空闲气泡(图4b)。流式训练器通过一种新颖的阶段重叠策略来缓解这一问题,该策略将进行中的rollout与梯度计算流水线化,从而在保持同步在策略RL语义的同时,减少端到端延迟。
重用Rollout GPU进行训练:随着rollout的进行,GPU利用率下降。流式训练器会缩减专用于rollout的GPU数量,并将释放的设备重新用于训练。在重新分配的GPU上进行的训练只使用数据并行副本的一个子集;梯度更新被推迟到rollout完全完成后,从而保持了在策略RL的正确性。如果需要,可以通过临时交换actor和参考模型的权重来计算贡献较小的参考logits。
流式训练器工作流程:算法1概述了流式训练器的一般工作流程。它持续监控rollout进度,并在已完成请求的比例超过一个阈值时触发GPU缩减(第14行)。当满足缩减标准时(第17行),rollout GPU的一个子集被重新用于训练(第18-19行)。为了迁移正在进行的请求,RollPacker采用了一种基于重计算的策略(第20行):保留已生成的token,同时重新计算KV缓存,以最小的开销在剩余的GPU上恢复rollout【索引15,Fast state restoration in llm serving with hcache, 2024】、【索引19,History rhymes: Accelerating llm reinforcement learning with rhymerl, 2025】。一旦训练实例启动,流式训练器会异步获取已完成的响应,并与正在进行的rollout并行计算梯度(第23行)。
扩展标准1:选择哪些GPU进行缩减:训练器必须仔细选择要从rollout重新分配到训练的GPU,因为这两个阶段通常依赖于不同的通信组拓扑。为确保正确性,紧密耦合的组,如rollout中使用的TP组,必须保持完整,不能被跨rollout和训练阶段分割。在实践中,流式训练器尝试将一半的rollout GPU重新用于训练。在采取行动前,它会验证这是否可能,而不会分割数据并行副本所需的通信组。如果不可能,则中止缩减尝试。
扩展标准2:何时进行缩减:缩减rollout GPU有减慢响应生成的风险。通过将更多请求整合到更少的GPU上,它增大了每个设备的批次大小,加剧了KV缓存的内存压力,并最终损害rollout吞吐量(§4.2)。为防止这种情况,当已完成请求的比例达到20%到50%之间的里程碑(以5%为增量)时,流式训练器会结合历史响应长度分布和每个token的缓存占用,计算峰值KV缓存使用量。只有当迁移后预计的峰值缓存需求仍在内存限制内时,才会触发GPU缩减。为简化起见,我们忽略了基于重计算的请求迁移所引入的适度开销以及缩减后解码吞吐量的轻微下降(§6.6)。
重叠的流式执行:一旦满足缩减标准并重新分配了GPU,流式训练器就开始在重新分配的训练GPU上处理已完成的响应。Rollout和训练现在作为生产者-消费者对运行:rollout生成响应,而训练通过一个与生产和消费速率对齐的流式模型来消费它们。流式训练器异步获取已完成的响应,并与进行中的rollout并行计算梯度,从而减少了总的步骤时间。
保持在策略语义:流式训练器的一个关键要求是确保梯度计算在数学上等同于标准的在策略训练流水线。这一保证分两个阶段维持。首先,在流式执行期间,计算并缓冲已完成响应的梯度,但不对模型参数或优化器状态应用任何更新。我们扩展了底层的LLM训练框架【索引46,Megatron-lm: Training multi-billion parameter language models using model parallelism, 2019】,以在反向传播期间禁用梯度同步,确保严格遵守在策略约束。其次,在rollout完成后,剩余的响应被分发到所有数据并行副本上进行梯度计算和模型更新。由于某些副本可能已经处理了部分工作负载,简单的平均会使结果产生偏差。为了纠正这一点,我们通过每个副本处理的样本数量对其上的局部梯度进行重新归一化,确保最终的更新等同于标准在策略训练的更新。
ray.remote,训练基于Megatron-LM v0.12.2【索引46,Megatron-lm: Training multi-billion parameter language models using model parallelism, 2019】。除非另有说明,采用同步RL训练,设置$P_0 = 128$和$R_0 = 8$。Actor和参考模型大小相同,使用Qwen2.5-7B-Instruct作为评判模型。7B、14B和32B模型分别在16、32和64个GPU上训练,其rollout TP分别为1、2、2,训练配置(TP, PP, CP)分别为(2,1,1)、(2,2,2)和(4,1,4)。我们比较了RollPacker与两种SOTA同步RL后训练系统veRL【索引45,verl: Volcano engine reinforcement learning for llm, 2024】和RLHFuse【索引63,Rlhfuse: Efficient rlhf training for large language models with interand intra-stage fusion, 2024】的端到端性能。
验证性能:图8显示,RollPacker的验证分数与veRL相当,证明了尾部批处理不会损害训练精度。此外,RollPacker在训练早期收敛更快,这可能归因于更均衡的响应长度分布。
端到端延迟:图9展示了前40个训练步骤的耗时。RollPacker全面优于veRL和RLHFuse。
改进分解:表2详细列出了各项技术带来的累积加速效果。
训练步骤分解:图10展示了RollPacker的性能细节。与veRL相比,RollPacker在长轮次中的rollout时间相当,但在短轮次中优势巨大,通过显著降低最大响应长度(图10a),使平均rollout时间加速高达7.8倍(图10b)。图10c的聚合步骤时间分解显示,在长轮次中,rollout仍是主导,但短轮次节省的时间有效降低了整体平均步骤时间。
图11展示了不同尾部批处理配置下的rollout时间,通过改变推测因子$\eta$来调整每个提示的响应数(R)或提示数(P)。
* R的影响:固定P,增加R的$\eta$可以丢弃长尾响应,但只有当$\eta$增加到1.5时,rollout时间才有显著减少。
* P的影响:固定R,增加P的$\eta$会增加长轮次的频率,从而抵消短轮次带来的时间缩减。
* 结论:实验表明,对P和R都设置$\eta=1.25$是最佳选择,平均rollout速度提升高达3.9倍,优于仅固定P或R的设置。
异步奖励计算本身相比同步计算在三个模型上分别带来1.48倍、1.35倍和1.18倍的加速。
* GPU共享(LLM-as-a-Judge):图13a显示,在共置评判LLM和actor LLM时,使用MPS(多进程服务)可减少干扰,带来高达1.25倍的步骤时间加速。
* 流水线化评判LLM执行:图13b显示,对于评判LLM,采用分层流水线卸载权重,相比非流水线执行,在32k token长序列下可获得1.4倍的奖励计算加速。
* 自适应超时(代码):图13c显示,自适应超时机制通过提前终止可能失败的代码执行,显著减少了短轮次中的奖励计算开销,平均加速1.6倍。
自适应GPU缩减:表3显示,自适应GPU缩减策略优于固定的触发标准,相比不进行GPU缩减的基线,实现了1.08倍的加速。迁移开销不超过3秒,解码吞吐量下降在1%以内。
Table 3: [流式训练器] GPU缩减的影响。
异步获取:表4显示,流式训练器的异步获取机制(持续流式传输完成的prompt)相比一次性获取固定比例的prompt,可将端到端步骤时间减少高达14%。
Table 4: [流式训练器] 异步获取的影响。
图14展示了Qwen2.5-14B/16k模型的可扩展性分析。当资源扩展到128个GPU时,RollPacker保持了强大的性能,吞吐量(样本数/秒)始终比veRL高出2.2倍。当资源翻倍时,RollPacker的吞吐量提升约1.5倍。
引言:本节讨论RollPacker的设计如何惠及其他策略优化算法和离策略RL算法,并探讨其潜在局限性。
扩展到其他策略优化算法:许多算法研究,如DAPO【索引57,Dapo: An open-source llm reinforcement learning system at scale, 2025】,通过过采样和丢弃零奖励方差的提示来扩展GRPO。为了将尾部批处理与DAPO集成,可以为每个LLM实例设置最大活动请求数并持续发出新请求。终止标准遵循DAPO的规范。零奖励方差的提示将从长提示队列中排除,而其他未完成的提示则保留在队列中进行后续处理。
扩展到异步系统:在异步离策略后训练中,不需要同步RL训练来优化长提示队列中的样本。我们可以利用现有的离策略算法,如one-off pipeline【索引28,Deepscaler: Surpassing o1-preview with a 1.5b model by scaling rl, 2025】,部分rollouts【索引48,Kimi k1.5: Scaling reinforcement learning with llms, 2025】和完全异步训练【索引14,Areal: A large-scale asynchronous reinforcement learning system for language reasoning, 2025】来处理队列中的提示。例如,未完成提示的rollout可以简单地在下一个训练步骤中继续。此外,奖励调度器和流式训练器也可以分别减少异步训练中奖励计算和LLM训练的开销。
潜在局限性:我们使用MPS【索引33,NVIDIA Multi-Process Service (MPS) Documentation, 2025】来实现空间GPU共享,但这不保证错误隔离。未来工作计划探索Green Contexts【索引32,Cuda driver api – context management (green contexts), 2025】以提高容错性。并行规划器目前仅关注TP,未优化专家并行。一旦启用专家并行,优化空间可以进一步扩展。
RL后训练框架:许多框架被提出以加速RL后训练。早期工作【索引18, 18, 21, 25, 55】旨在协调复杂的RL后训练工作流。后来,veRL【索引45,verl: Volcano engine reinforcement learning for llm, 2024】引入混合控制器设计以提高资源利用率,而DistFlow【索引51,Distflow: A fully distributed rl framework for scalable and efficient llm post-training, 2025】采用多控制器方法以增强可扩展性。RLHFuse【索引63,Rlhfuse: Efficient rlhf training for large language models with interand intra-stage fusion, 2024】融合生成和推理阶段以减少训练时间,Realhf【索引29,Realhf: Optimized rlhf training for large language models through parameter reallocation, 2024】优化并行策略以提高系统吞吐量。为了缓解长尾rollout,AReal【索引14,Areal: A large-scale asynchronous reinforcement learning system for language reasoning, 2025】、StreamRL【索引62,Streamrl: Scalable, heterogeneous, and elastic rl for llms with disaggregated stream generation, 2025】和RhymeRL【索引19,History rhymes: Accelerating llm reinforcement learning with rhymerl, 2025】引入了带有定制系统优化的异步RL后训练以增加吞吐量。与现有RL框架不同,RollPacker即使在同步RL训练中也能缓解长尾rollout。
LLM训练与推理:LLM训练需要一系列并行策略。数据并行(DP)【索引36, 39, 41, 60】在GPU间复制模型权重并划分训练样本。张量并行(TP)【索引8, 46, 49, 53】划分模型层内的计算,而流水线并行(PP)【索引22, 30】跨层划分模型。上下文并行(CP)【索引23, 26, 27, 31】划分输入序列并需要专门的注意力层优化。在LLM推理中,通常使用TP和DP来减少延迟开销。许多推理优化技术专注于加速注意力计算【索引10, 24】和优化KV缓存管理【索引24, 42, 56】。这些策略从不同维度减少内存消耗并实现显著的吞吐量提升。
Rollout优化:许多近期工作旨在优化RL后训练的rollout阶段以提高训练效率。DAPO【索引57,Dapo: An open-source llm reinforcement learning system at scale, 2025】提出动态采样技术,过滤掉零奖励方差的提示,并在收集到足够响应后终止rollout阶段。SPEEDRL【索引59,Speed-rl: Faster training of reasoning models via online curriculum learning, 2025】估计每个提示的难度,然后选择具有理想通过率的提示进行进一步响应生成。GRESO【索引61,Act only when it pays: Efficient reinforcement learning for llm reasoning via selective rollouts, 2025】利用奖励动态在rollout前移除零方差提示,而MoPPS【索引37,Can prompt difficulty be online predicted for accelerating rl finetuning of reasoning models?, 2025】对提示成功率建模以预测提示难度。这些技术通过优先处理高质量提示来加速RL后训练中的模型收敛。RollPacker旨在提高rollout速度,从而减少端到端训练延迟。
本文介绍了RollPacker,一个旨在加速同步RL训练的新型RL后训练系统。我们提出了尾部批处理(tail batching)来缓解长尾rollout问题并提升资源利用率。结合尾部批处理,我们设计了分别优化rollout、奖励和训练阶段的并行规划器、奖励调度器和流式训练器。广泛的实验证明了RollPacker在训练效率上相比基线方法的有效性。