AREAL: A Large-Scale Asynchronous Reinforcement Learning System for Language Reasoning
Wei Fu12, Jiaxuan Gao12, Xujie Shen2, Chen Zhu2, Zhiyu Mei12, Chuyi He2, Shusheng Xu12, Guo Wei2, Jun Mei2, Jiashu Wang23, Tongkai Yang2, Binhang Yuan3, Yi Wu12
1 IIIS, Tsinghua University, 2 Ant Research, 3 HKUST fuwth17@gmail.com, jxwuyi@gmail.com
主要贡献
强化学习(RL)已成为训练大型语言模型(LLM)的一种流行范式,尤其是在推理任务中。有效的LLM RL需要大规模并行化,并对高效训练系统提出迫切需求。大多数现有的LLM大规模RL系统是同步的,通过在批处理设置中交替进行生成和训练,其中每个训练批次的 rollout 由相同(或最新)模型生成。这稳定了RL训练,但存在严重的系统级低效问题。生成必须等待批次中最长输出完成后再进行模型更新,导致GPU利用率低下。本文提出AReaL,一个完全异步的RL系统,完全解耦生成和训练。AReaL中的 rollout 工作者持续生成新输出而不等待,而训练工作者在收集到一批数据时更新模型。AReaL还包含一系列系统级优化,导致GPU利用率显著提高。为了稳定RL训练,AReaL平衡 rollout 和训练工作者的负载以控制数据陈旧度,并采用陈旧度增强的PPO变体来更好地处理过时的训练样本。在数学和代码推理基准上的广泛实验显示,AReaL相比同步系统实现了高达2.77倍的训练加速,并匹配或甚至改进了最终性能。
核心问题:现有同步RL系统在LLM推理训练中面临系统低效,尤其是由于输出长度变异导致的GPU空闲和并行化挑战。研究目标:开发一个完全异步的RL系统,用于大规模LRM训练,实现高GPU利用率和线性可扩展性,同时保持或提升模型性能。创新点:完全解耦生成和训练的异步架构;引入陈旧度控制和修改的PPO目标,以处理多版本样本;系统优化包括可中断 rollout、动态批处理和并行奖励服务;在数学和代码任务上实现2.57倍吞吐量提升和线性扩展至512 GPU,同时提升准确性。
背景知识/关键Observation/设计原则
RL训练初步知识
我们将问题制定在马尔可夫决策过程(MDP)框架中,由元组⟨S, A, r, P, γ, H⟩定义。这里,S表示状态空间,A表示动作空间,P表示转移模型,r : S × A → R表示奖励函数,γ表示折扣因子,H表示时域。LRM实现参数化策略πθ : S → A,其中每个动作at ∈ A对应词汇表中的文本标记。状态st ∈ S由问题s1 = q以及先前生成的响应标记(a1, .., at−1)组成,具有确定性转移st+1 = concat(st, at)。给定问题分布D,我们优化目标:
$J(\theta) = \mathbb{E}_{q \sim D, a_{1:H} \sim \pi_\theta} \left[ \sum_{t=1}^H \gamma^{t-1} r(s_t, a_t) \right]$
遵循常见实践【6,DeepSeek-AI 等人的Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning,2025,CoRR,https://doi.org/10.48550/arXiv.2501.12948】,我们使用基于规则的奖励函数,仅在最终动作上提供非零反馈,表示答案正确性,并设置γ = 1。我们使用近端策略优化(PPO)【42,Schulman 等人的Proximal policy optimization algorithms,2017,CoRR,http://arxiv.org/abs/1707.06347】优化此目标:
$\mathcal{L}^{\text{PPO}}(\theta) = \mathbb{E} \left[ \min \left( u_t(\theta) \hat{A}(s_t, a_t), \operatorname{clip}(u_t(\theta), 1 - \epsilon, 1 + \epsilon) \hat{A}(s_t, a_t) \right) \right]$
其中ut(θ) = πθ(at|st) / πold(at|st) 表示重要性比率,Aˆ(st, at) 表示估计优势【41,Schulman 等人的High-dimensional continuous control using generalized advantage estimation,2016,ICLR,http://arxiv.org/abs/1506.02438】。遵循RL标准实践【42,Schulman 等人的Proximal policy optimization algorithms,2017,CoRR,http://arxiv.org/abs/1707.06347;33,Ouyang 等人的Training language models to follow instructions with human feedback,2022,NeurIPS】,我们将全局批次分为小批次进行顺序参数更新。
我们的工作专注于在监督微调(SFT)后增强LRM的推理能力,与激励预训练基础模型中推理的方法不同【6,DeepSeek-AI 等人的Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning,2025,CoRR,https://doi.org/10.48550/arXiv.2501.12948】。SFT后的LRM产生长推理序列(例如,32K标记),通常需要大的全局批次大小(例如,128个提示,每个有16个响应)以实现稳定的RL训练【6,DeepSeek-AI 等人的Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning,2025,CoRR,https://doi.org/10.48550/arXiv.2501.12948;25,Luo 等人的Deepscaler: Surpassing o1-preview with a 1.5b model by scaling rl,2025,Notion Blog;24,Luo 等人的Deepcoder: A fully open-source 14b coder at o3-mini level,2025;60,Yu 等人的DAPO: an open-source LLM reinforcement learning system at scale,2025,CoRR,https://doi.org/10.48550/arXiv.2503.14476;61,Yue 等人的Vapo: Efficient and reliable reinforcement learning for advanced reasoning tasks,2025,arXiv,https://arxiv.org/abs/2504.05118】。在同步RL系统中,两个阶段迭代执行:生成(rollout)和训练。生成阶段使用最新模型参数为训练批次中的每个查询产生多个推理轨迹。训练阶段然后基于生成的轨迹更新模型参数。这些阶段在相同GPU上迭代执行。
异步RL系统的动机
我们识别出同步RL系统的两个基本限制:
图1:同步(左)和一步重叠(右)RL系统的执行时间线,显示推理设备的利用率低下。
图2:AReaL架构,包含异步生成和训练组件。
推理设备利用率低下。如图1(左)所示,生成必须等待最长序列完成后再开始训练。这导致GPU间的解码长度不均匀,从而低利用GPU计算资源。
同步RL系统的可扩展性差。同步系统将生成分布到所有设备上,减少每个GPU的解码批次大小。这将解码过程推入内存IO绑定状态【4,Chen 等人的Sequoia: Scalable and robust speculative decoding,2024,NeurIPS,https://proceedings.neurips.cc/paper_files/paper/2024/file/ea1f5f0878d43ff4fb8bf64ef4a2326c-Paper-Conference.pdf;28,Miao 等人的Specinfer: Accelerating large language model serving with tree-based speculative inference and verification,2024,ASPLOS,https://doi.org/10.1145/3620666.3651335】,其中额外设备无法改善吞吐量。
方法细节
系统架构
第3.2节中识别的限制激励我们设计一个完全解耦生成和训练的系统,跨单独GPU集群。该系统应硬件高效、可扩展,并具有自定义RL工作流的灵活性。我们在AReaL中实现这些原则,AReaL是一个专为高效大规模LRM训练设计的异步RL系统。
系统概述
图2展示了AReaL的架构和数据流。该系统包括4个核心组件:
可中断Rollout工作者 处理两种请求:(1)生成请求,给定提示生成响应。(2)update_weights请求中断所有正在进行的生成,并加载新版本的参数。在中断时,rollout工作者丢弃由旧权重计算的KV缓存,并使用新权重重新计算它们。随后,rollout工作者继续解码未完成的序列,直到下一次中断或终止。我们强调,这种中断和飞行中权重更新会导致轨迹由不同模型版本产生的段组成。这引入了一个新的算法挑战,将在第5节中解决。
图3:AReaL中生成管理的说明。垂直线显示下一训练步骤的就绪时间。蓝色十字显示新参数到达时的中断请求。
奖励服务 评估模型生成的响应的准确性。例如,在编码任务中,此服务提取代码并执行单元测试以验证其准确性。
训练工作者 持续从重放缓冲区采样,积累数据直到达到配置的训练批次大小。然后它们执行PPO更新,并将结果参数存储在分布式存储中。为了确保数据新鲜度,重放缓冲区的数据仅使用一次。
Rollout控制器 作为rollout工作者、奖励服务和模型工作者之间的关键桥梁。在训练过程中,它从数据集读取数据并调用rollout工作者的generate请求。然后将收到的响应发送到奖励服务以获取奖励。轨迹连同奖励存储在重放缓冲区,等待模型工作者训练。在模型工作者更新参数后,控制器调用rollout工作者的update_weight。我们在图3中说明了生成和训练管理。这种异步流水线确保了生成和训练资源的持续充分利用。
算法挑战
虽然异步系统设计通过改进设备利用率提供了显著加速,但它引入了几个需要算法考虑的技术挑战。
数据陈旧度 由于AReaL的异步性质,每个训练批次包含来自多个先前策略版本的数据。先前关于异步RL训练系统的工作已证明,这种陈旧度可能降低RLHF【30,Noukhovitch 等人的Asynchronous RLHF: faster and more efficient off-policy RL for language models,2024,CoRR,https://doi.org/10.48550/arXiv.2410.18252】和游戏环境【2,Berner 等人的Dota 2 with large scale deep reinforcement learning,2019,CoRR,http://arxiv.org/abs/1912.06680】中的学习性能。数据陈旧度导致训练数据与最新模型之间的分布差距。在LRM的异步RL训练中,由于解码时间延长,此问题对于长轨迹可能更严重。
不一致的策略版本 如第4.1节所述,生成的轨迹可能涉及由不同策略版本产生的段。这种不一致从根本上违反了标准PPO在方程2中的表述,该表述假设所有动作由单一策略πold生成。
在以下部分,我们详细说明了克服这些挑战的技术创新,同时保留异步系统的效率优势。
解决AReaL中的算法挑战
陈旧度感知训练
为了避免由于训练极高陈旧度数据而导致的性能下降,我们引入超参数η,表示每个训练批次中允许的最大陈旧度。具体而言,当η = 0时,我们的系统退化为同步RL,所有训练样本由当前策略生成。我们通过动态控制发送到生成服务器的生成请求吞吐量在系统中实现陈旧度控制。给定当前策略版本i、生成的轨迹总数Nr以及每个训练步骤的训练批次大小B,我们在提交新生成请求时强制执行以下公式:
$Nr \leq B \times (i + \eta)$
我们还优先从数据缓冲区中使用较旧的轨迹来形成训练批次。在我们的系统实现中,rollout控制器从参数服务器跟踪生成的样本Nr和策略版本i。它拒绝可能违反陈旧度约束的新生成请求。
注意,这种速率限制协议在实践中是一个简单而有效的设计选择。然而,当η太小时,如果生成一些极长轨迹,生成吞吐量可能会减慢。因此,我们经验上建议采用较大的陈旧度控制参数η以获得最佳系统吞吐量。这种系统级实践也激励我们应用增强算法,以有效利用更多陈旧数据进行RL训练。
解耦PPO目标
我们应用解耦PPO目标【10,Hilton 等人的Batch size-invariance for policy optimization,2022,NeurIPS,http://papers.nips.cc/paper_files/paper/2022/hash/6ceb6c2150bbf46fd75528a6cd6be793-Abstract-Conference.html】,它分离行为策略和近端策略。行为策略πbehav表示用于采样轨迹的策略,近端策略πprox是一个近端策略,用于规范πθ的更新。通过对采样轨迹应用重要性采样,我们推导出适合异步RL训练的解耦PPO目标:
$\mathcal{L}^{\text{decoupled}}(\theta) = \mathbb{E} \left[ \min \left( u_t^{\text{behav}}(\theta) \hat{A}(s_t, a_t), \operatorname{clip}(u_t^{\text{prox}}(\theta), 1 - \epsilon, 1 + \epsilon) \hat{A}(s_t, a_t) \right) \right]$
其中uproxt (θ) = πθ(at|st) / πprox (at|st) 是相对于近端策略的重要性比率。我们为简洁省略状态-动作项。
异步PPO目标在方程5中与标准目标在方程2中的主要区别在于用于规范模型更新的近端策略πprox。在异步PPO训练中,使用行为策略作为近端策略会将最新策略πθ拉向旧版本和低质量策略,从而减慢模型改进。通过采用最近策略作为近端策略,模型更新发生在高质量近端策略πprox周围的信任区域中,从而稳定训练。
方程5中的解耦PPO目标提供了一个自然益处:它放松了对一个训练批次中所有数据必须由单一策略生成的要求。此属性对于将可中断生成与策略更新结合时维护算法正确性至关重要。我们声称轨迹中不一致的策略版本保持与单一行为策略πbehav的等价性。(见附录C的证明。)
命题1 对于由策略(πθ, . . . , πθ+k)生成的任何序列(q, a1, . . . , aH ),其中πθ+i产生标记(ati , . . . , ati+1 ),其中1 = t0 < · · · < tk+1 = H,存在行为策略πbehav,使得中断生成等价于完全从πbehav采样。
实践备注 虽然Hilton 等【10,Hilton 等人的Batch size-invariance for policy optimization,2022,NeurIPS,http://papers.nips.cc/paper_files/paper/2022/hash/6ceb6c2150bbf46fd75528a6cd6be793-Abstract-Conference.html】维护参数的指数移动平均作为πprox,但此方法对于LRM是禁止昂贵的。因此,我们简单地使用每个模型更新步骤前的参数作为πprox。方程5通过在每个训练步骤中全局批次到达时重新计算标记概率来实现。
实现
我们使用Python和PyTorch【35,Paszke 等人的Pytorch: An imperative style, high-performance deep learning library,2019,NeurIPS,https://proceedings.neurips.cc/paper/2019/hash/bdbca288fee7f92f2bfa9f7012727740-Abstract.html】实现AReaL,基于ReaLHF框架【27,Mei 等人的Realhf: Optimized RLHF training for large language models through parameter reallocation,2024,CoRR,https://doi.org/10.48550/arXiv.2406.14088】。我们的系统结合SGLang【63,Zheng 等人的Sglang: Efficient execution of structured language model programs,2024,NeurIPS,http://papers.nips.cc/paper_files/paper/2024/hash/724be4472168f31ba1c9ac630f15dec8-Abstract-Conference.html】v0.4.6用于生成服务,并使用Megatron-Core【46,Shoeybi 等人的Megatron-lm: Training multi-billion parameter language models using model parallelism,2019,CoRR,http://arxiv.org/abs/1909.08053】v0.11.0作为训练后端,由SLURM【59,Yoo 等人的SLURM: simple linux utility for resource management,2003,JSSPP,https://doi.org/10.1007/10968987_3】管理资源调度。为了最大化生成和训练阶段的吞吐量,我们实现了几个关键系统级优化,以解决流水线中的关键瓶颈。
AReaL将GPU计算与CPU操作解耦,包括基于规则的奖励计算(例如数学问题的字符串匹配或代码的单元测试执行)和基于TCP的数据传输。通过在单独线程中执行这些操作并流水线化工作流,我们将奖励计算和数据传输与后续生成请求重叠。我们使用asyncio协程在rollout工作者中并发运行多个请求,以避免相互阻塞等待。
为了处理可变长度序列的训练,我们采用无填充序列打包策略结合动态分配算法。该算法在固定内存约束下平衡微批次中的标记分布(见算法1)。此方法最大化GPU内存利用率,同时最小化所需的前向-后向传递次数。
实验环境
数据集:数学任务使用DeepScaleR【25,Luo 等人的Deepscaler: Surpassing o1-preview with a 1.5b model by scaling rl,2025,Notion Blog】的开源数据;代码训练使用DeepCoder【24,Luo 等人的Deepcoder: A fully open-source 14b coder at o3-mini level,2025】发布的数据集。规模:数学和代码任务的训练数据集为开源标准规模,用于固定PPO更新次数的训练。用途:用于评估数学推理(AIME24基准)和代码生成(LiveCodeBench基准)。
模型架构:使用DeepSeek-R1【6,DeepSeek-AI 等人的Deepseek-r1: Incentivizing reasoning capability in llms via reinforcement learning,2025,CoRR,https://doi.org/10.48550/arXiv.2501.12948】的蒸馏Qwen2模型系列【54,Yang 等人的Qwen2 technical report,2024,CoRR,https://doi.org/10.48550/arXiv.2407.10671;55,Yang 等人的Qwen2.5 technical report,2024,CoRR,https://doi.org/10.48550/arXiv.2412.15115】(R1-Distilled-Qwen),参数从1.5B到32B。关键参数:最大生成长度32K标记,每个问题采样32响应;上下文长度16K或32K(提示长度上限1K)。
硬件配置:H800 GPU集群,64节点,每节点8 GPU。节点内NVLink连接,节点间RoCE 3.2Tbps带宽。最小16节点作为基线,扩展至48节点用于32B模型。AReaL中推理和训练设备比例固定为3:1。
软件配置:Python和PyTorch;基于ReaLHF框架;生成后端SGLang v0.4.6或vLLM v0.8.4;训练后端Megatron-Core v0.11.0;资源调度SLURM;操作系统未指定,但兼容集群环境。
实验结果
实验包括三个部分:(1)与最先进开源框架在不同模型大小上的全面比较;(2)不同计算资源的强扩展分析;(3)验证设计选择的消融研究。
端到端比较:在数学推理(1.5B模型)和代码生成(14B模型)上与DeepScaleR【25】和DeepCoder【24】比较;对于7B和32B模型,使用AReaL的同步变体作为控制。结果见表1(来源:第7.2节):AReaL匹配或超过基线性能,同时训练时间减少2.77倍。例如,在AIME24上,1.5B模型的pass@1准确率为同步系统的匹配值,但训练小时减少2倍;在LiveCodeBench上,14B模型类似。分析:AReaL通过异步设计实现加速,而不牺牲性能。
可扩展性:在不同模型大小和上下文长度(16K和32K)上与verl【45,Sheng 等人的Hybridflow: A flexible and efficient RLHF framework,2025,EuroSys,https://doi.org/10.1145/3689031.3696075】比较。结果见图4(来源:第7.3节):AReaL显示近似线性扩展趋势,而同步系统通常无法有效扩展;AReaL吞吐量在大多数设置中超过基线,高达2.5倍加速。分析:对于较小上下文,AReaL优势较小,因为生成吞吐量无法匹配训练;对于长生成,AReaL更鲁棒,因为异步和可中断生成隐藏了长响应。
图4:强扩展趋势。虚线表示理想线性扩展。verl在32k上下文和32B模型上一致遇到OOM,因此数据点缺失。
算法消融:在1.5B模型上数学任务,变化最大允许陈旧度η,并比较有无解耦PPO目标。结果见图5a、5b(学习曲线,来源:第7.4节)和表2(最终性能,来源:第7.4节):朴素PPO在η>0时性能下降;解耦PPO改善稳定性,适度η(≤8)加速2倍而性能无损。分析:验证了陈旧度控制和解耦目标的必要性;无界陈旧度仍劣于零陈旧度oracle。
图5:解耦PPO目标和陈旧度控制的消融研究,使用1.5B模型在数学推理任务上。两种算法选择都是必需的。使用适度陈旧值和解耦目标,训练进度可加速超过2倍,同时保持最终评估性能。
系统消融:可中断生成:在4节点上,1.5B和7B模型吞吐量分别增加12%和17%(图6,来源:第7.5节)。动态微批分配:与标准微批相比,平均吞吐量提高30%(图7,来源:第7.5节)。分析:验证了架构设计在提高吞吐量中的作用。
图6:可中断生成的消融研究。
图7:动态微批分配的消融研究。
额外结果:表4(来源:附录B)显示AReaL模型在更多数学基准上的性能,确认一致优势。
结论
本文介绍了AReaL,一个完全异步系统,用于高效大规模强化学习(RL)训练。AReaL架构提供了实现异步算法所需的灵活性和表现力。在此基础上,我们贡献了几个算法创新,包括陈旧度感知训练和解耦PPO目标,这些创新实现了异步环境中的高效和稳定PPO训练。我们的实验结果展示了AReaL相比现有同步RL系统的优越硬件效率、样本效率和可扩展性。本工作为可靠扩展RL训练提供了起点。我们希望它能启用大规模AI系统的未来进步,进一步推动机器智能的边界。
对未来工作的展望:推理和训练设备比例可进一步优化,并可能在训练中动态调整,尤其是在上下文长度增加时;探索多轮交互和代理场景。
附录
PPO细节
我们禁用PPO中的评论者模型和参考模型。GAE中的优势估计参数λ和RL折扣因子γ固定为1。如果答案正确,最终标记的奖励为5,否则为-5。我们额外采用全局批次中的优势归一化来稳定训练。其他学习相关超参数和配置见表3。
数据集细节
对于数学任务,我们使用DeepScaleR【25,Luo 等人的Deepscaler: Surpassing o1-preview with a 1.5b model by scaling rl,2025,Notion Blog】的开源数据。对于代码训练,我们使用DeepCoder【24,Luo 等人的Deepcoder: A fully open-source 14b coder at o3-mini level,2025】发布的数据集。所有比较方法使用相同数据集。
动态批处理
动态批处理算法见算法1。
基线
在我们的实验中,我们使用verl【45,Sheng 等人的Hybridflow: A flexible and efficient RLHF framework,2025,EuroSys,https://doi.org/10.1145/3689031.3696075】的最新版本(main分支,2025年5月7日)来评估图4中的训练吞吐量和表1中的训练小时。对于大多数结果,我们使用SGLang【63,Zheng 等人的Sglang: Efficient execution of structured language model programs,2024,NeurIPS,http://papers.nips.cc/paper_files/paper/2024/hash/724be4472168f31ba1c9ac630f15dec8-Abstract-Conference.html】v0.4.6作为生成后端和PyTorch FSDP【62,Zhao 等人的Pytorch FSDP: experiences on scaling fully sharded data parallel,2023,VLDB,https://www.vldb.org/pvldb/vol16/p3848-huang.pdf】作为训练后端。在少数情况下SGLang出错(32B模型或64节点实验),我们使用vLLM【18,Kwon 等人的Efficient memory management for large language model serving with pagedattention,2023,SOSP,https://doi.org/10.1145/3600006.3613165】v0.8.4作为替代。
额外结果
我们使用AReaL训练的模型在更多数学基准上评估,结果列在表4中。
命题1的证明
命题1 对于由策略(πθ, . . . , πθ+k)生成的任何序列(q, a1, . . . , aH ),其中πθ+i产生标记(ati , . . . , ati+1 ),其中1 = t0 < · · · < tk+1 = H,存在行为策略πbehav,使得中断生成等价于完全从πbehav采样。
证明 对于问题q,让St(q)表示策略序列在步骤t遇到的状态。由于Sti (q) ∩ Stj (q) = ∅ 对于 i ≠ j,我们可以构造:
$ \pi_{\text{behav}}(a_t | s_t) = \pi_{\theta + i}(a_t | s_t) \text{ if } s_t \in S_{t_i}(q) $
限制和未来工作
我们的工作存在几个限制,建议未来研究方向。首先,推理和训练设备之间的比例可以针对特定训练设置进一步优化。此外,此比例可能受益于训练期间的动态调整,尤其是在微调预训练基础模型时上下文长度通常增加。虽然我们将评估集中在单步数学和编码任务上,但AReaL架构并非固有地限于这些领域。我们将多轮交互和代理场景的探索留给未来工作。
💬 评论讨论
欢迎在这里分享您的想法和见解!