AReaL
清华×蚂蚁开源异步RL训练框架,让LLM Agent学会真实世界工具调用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
清华×蚂蚁开源异步RL训练框架,让LLM Agent学会真实世界工具调用
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你正在训练一个 AI 助手,让它学会在真实世界调用工具——搜索信息、执行代码、与外部 API 交互。每一次试错,传统方法都需要等待整个流程串行完成,GPU 在空转,工程师在等待,服务器账单在飞涨。这不是个例,这是所有 RL + LLM 研究者的共同痛点。
AReaL(Asynchronous Reinforcement Learning System)正是为解决这一痛点而生。它来自清华大学交叉信息研究院与蚂蚁集团 AReaL 团队,是目前最成熟的 LLM Agent 异步 RL 训练框架。

图1:AReaL 异步训练时序图——Actor 与 Learner 完全解耦,GPU 利用率大幅提升
在大语言模型时代,RLHF(基于人类反馈的强化学习)已成为对齐模型能力的关键技术。然而,将 RL 应用于 LLM Agent 时,遇到了一个独特的性能瓶颈:Agent 执行(生成响应、调用工具)与策略更新(计算梯度、更新模型)是两个截然不同的任务——前者是 I/O 密集型,后者是计算密集型。
传统系统(如 OpenAI 的 RLHF 基础设施)采用同步设计:Agent 完整执行一个 episode,等待数据回传,再开始训练。这意味着 GPU 在 Agent 调用外部工具(可能耗时数秒甚至数分钟)时完全空闲,造成算力浪费。
AReaL 的核心洞察是:异步解耦。将 Actor(负责推理/采样)和 Learner(负责梯度计算)部署为独立进程,通过 RPC 通信。Learner 可以持续进行梯度更新,而 Actor 同步产出训练数据,从根本上消除了 GPU 空转问题。

图2:AReaL 与同步 RL 系统(VERL)的吞吐量对比,异步模式实现显著性能优势
AReaL 同时支持 SGLang 和 vLLM 两种主流 LLM 推理引擎作为后端。SGLang 提供更丰富的 tracing 和调试能力,vLLM 在某些场景下吞吐量更高。切换方式极为简单——替换 pyproject.toml 即可:
# SGLang 后端(默认)
uv sync --extra cuda
# vLLM 后端
cp pyproject.vllm.toml pyproject.toml && uv sync --extra cuda
AReaL 内置了丰富的 RL 算法实现:
每种算法均有完整配置文件,涵盖超参数调优、学习率调度、梯度裁剪等细节。
对于大规模训练,AReaL 原生支持 Ray 分布式集群。通过 YAML 配置文件指定节点数、GPU 数量和共享存储路径,即可启动多机多卡训练:
python3 examples/math/gsm8k_rl.py --config examples/math/gsm8k_grpo.yaml cluster.n_nodes=4 cluster.n_gpus_per_node=8 cluster.fileroot=/path/to/nfs scheduler.type=ray
areal/ 核心包包含以下模块:
areal/engine/:推理引擎抽象层,同时支持 SGLang Remote 和 vLLM Remoteareal/trainer/:各类 RL 训练器(PPO、GRPO、DPO、SFT 等)areal/reward/:奖励函数集合(GSM8K 数学评测、CLEVR 视觉推理、Geometry3K 几何)areal/infra/:分布式基础设施(异步任务调度器、RPC 通信、沙箱执行器)areal/dataset/:数据管道,与 HuggingFace datasets 无缝集成areal/models/:模型加载与分片
图3:生成质量随模型规模的变化趋势,AReaL 训练的模型在推理能力上有显著优势
AReaL 要求 Python 3.11-3.12、CUDA 12+ 和至少一块 16GB 显存的 NVIDIA GPU。安装过程需要先安装预编译的 flash-attention wheel,再通过 uv 安装其余依赖:
git clone https://github.com/areal-project/AReaL
cd AReaL
pip install uv
# 根据 Python 版本选择对应 wheel
uv pip install "https://github.com/mjun0812/flash-attention-prebuild-wheels/releases/..."
uv sync --extra cuda
官方提供的最简训练示例是 GSM8K 数学推理任务,模型和数据都会自动下载:
python3 examples/math/gsm8k_rl.py --config examples/math/gsm8k_grpo.yaml scheduler.type=local
首次运行会自动下载 Qwen2-1.5B-Instruct 模型(约 1.5GB)和 GSM8K 数据集(约 25MB)。训练过程会实时输出 reward curve,可在 TensorBoard 中可视化。

图4:7B 模型在 GSM8K 上的零样本评估训练曲线
2025 年 7 月,项目组推出了 AReaL-lite——一个面向快速原型开发的轻量版本。相比完整版:
AReaL-lite 位于 areal/ 核心包中,无需额外安装,适合算法研究阶段快速验证想法。
AReaL 已在多种 Agent 场景下验证有效性:
| 场景 | 模型规模 | 效果 |
|---|---|---|
| GSM8K 数学推理 | 1.5B / 7B / 32B | SOTA 性能 |
| 代码生成(HumanEval) | 7B+ | 显著超越 SFT 基线 |
| 搜索增强 Agent(ASearcher) | - | 论文已发表 |
| 客服对话 | - | 蚂蚁集团生产验证 |
| Terminal 工具调用 | - | 支持 Bash/Shell 操作 |
| 多模态视觉推理 | VLM | 支持 Qwen2.5-VL 等 |

图5:不同 RL 算法在 GSM8K 上的消融实验,验证异步设计对训练稳定性的贡献
AReaL 的定位是大规模生产训练,因此对硬件要求较高:
Dockerfile 提供了完整的多阶段构建镜像,但尚不支持一键 docker-compose 启动,多节点集群需要手动配置 Ray 环境,这是目前部署的主要门槛。

图6:异步训练中 staleness(数据新鲜度)与吞吐量的权衡关系
根据官方 benchmark(boba² 版本),相比同步训练系统,AReaL 可实现 2.77 倍吞吐量提升,同时保持相当甚至更优的训练收敛性。异步设计还天然适合多轮 Agent 场景,因为 Agent 的长时外部交互不会阻塞 Learner 的训练进程。
AReaL 代表了 LLM Agent 训练基础设施的一个重要方向——用异步架构解耦 I/O 密集与计算密集两大阶段。它不仅是一个框架,更是一整套经过蚂蚁集团生产环境验证的工程实践。
对于 AI 爱好者,AReaL 的预置示例(如 GSM8K 数学推理)提供了低门槛的 RL + LLM 入门体验;对于 AI 开发者,其模块化架构(AReaL-lite)和丰富的训练算法支持足以应对大多数 RL Agent 训练需求。
随着 Agent 场景越来越复杂(多工具调用、长程记忆、实时决策),异步 RL 训练将成为刚需。AReaL 正在将这一能力从大厂内部基础设施普惠到整个 AI 开源社区。