琼海市网站建设_网站建设公司_Ruby_seo优化
2026/1/9 21:54:48 网站建设 项目流程

欢迎回到我们为您精心策划的「ASystem 系统开源」核心技术解析系列的最新一期!

ASystem 是我们为支撑万亿级思考模型Ring-1T等大规模 RL 训练而构建的完整技术底座。在超大规模 RL 训练中,系统工程的复杂性极易反噬算法开发效率和灵活性。

本期聚焦:RL 算法开发的高效基石 AReaL

本期,我们将深度解析 ASystem 中面向算法设计、以开发效率和灵活性为核心的关键用户层技术——AReaL 强化学习框架

AReaL 通过极简的 API 和可扩展的插件机制,将算法设计者从繁琐的系统细节中解放出来,专注于算法本身。我们希望通过 AReaL 的架构设计与实践,推动将强化学习框架从“完整应用”转化为“高性能后端依赖”,为业界大规模 RL 训练提供社区友好的思路。

前言

AReaL 是一个面向算法设计,以开发效率和灵活性为核心的强化学习框架。它通过极简的 API 和可扩展的插件机制降低用户的学习曲线和使用心智负担,让开发者聚焦于算法本身而非系统细节,具备大规模扩展、无侵入 Agentic RL、故障感知与自恢复等能力。在蚂蚁内部,作为 ASystem 的关键用户层技术,我们使用 AReaL 支持了 Ring-1T 万亿参数 MoE 模型的 Reinforcement Learning 强化学习(下文简称 RL)后训练,相关代码已在以下链接开源。

https://github.com/inclusionAI/AReaL

**AReaL 本次 12 月 “ASystem 疯狂星期四” 开源的新版本 v0.5.0 带来了解耦式 Agentic RL,以及 Single Controller 架构两个核心特性,**本文将介绍它们的设计理念和解决方案。

  • 解耦式 Agentic RLAReaL 通过 OpenAI API 代理提供了一套解耦化的智能体训练服务解决方案,便于环境提供者、算法开发者和系统开发者形成复杂工程中的零障碍流水线,极大提升了开发效率与系统可维护性。

  • Single Controller 架构消除了 SPMD (Single Program,Multiple Data) 模式的长尾和数据不均匀问题,这种分层设计既能提升推理扩展性、增强系统层面精细化控制,又能保留算法编排的灵活易用性,降低算法开发者代码迁移的成本。

我们希望通过 AReaL 架构设计的实践,推动将强化学习框架从"完整应用"到"运行时服务"的转化,为业界大规模 RL 提供一些思路。

核心特性一:解耦式 Agentic RL 架构

背景介绍

在当前智能体系统快速演进的背景下,如何高效地将强化学习能力融入到复杂、灵活的 Agent 逻辑中,成为一个关键挑战。传统的 Agentic RL 实现方式往往将 RL 的训练逻辑深度耦合在 Agent 的编排框架中,导致代码复用性差、调试困难、且难以快速迭代和部署。

*注:图片为 AI 生成

为解决这一问题,我们在 AReaL 中自研了一个面向 Agentic RL 的解耦式训练框架。AReaL 的核心设计理念是**“Agent 独立运行 + 训练逻辑外置”**,通过高度抽象的架构设计,实现了 Agent 逻辑与 RL 训练逻辑的完全分离,从而在保证灵活性的同时,极大提升了开发效率与系统可维护性。

核心设计思想:解耦与透明

AReaL Agentic RL 的架构设计建立在两个核心原则之上:

  1. Agent 完全独立运行(Agent Autonomy)

在 AReaL 框架中,Agent 本身不依赖任何 RL 框架的组件,也不感知自身正在被用于训练。它只是一个标准的、基于大语言模型(LLM)的决策系统,按照既定的编排逻辑接收输入、调用工具、生成动作并输出结果。这种设计确保了 Agent 的纯净性与可移植性——同一个 Agent 实现既可以用于在线推理,也可以无缝接入离线训练,真正做到"一套代码,两处复用"。

  1. RL 训练作为外部观察者(RL as Observer)

AReaL 不主动干预 Agent 的执行流程,而是通过"代理请求"的方式,监听并记录 Agent 与环境交互的完整轨迹(Trajectory)。这些轨迹包括:用户输入、Agent 的思维链(Thought)、调用的动作(Action)、环境反馈(Observation)以及最终的奖励信号(Reward)。通过这种方式,AReaL 将复杂的 Agent 执行过程转化为标准的 RL 训练数据,从而可以使用任意成熟的 RL 算法进行策略优化。

Agent架构工作流程详解

AReaL 的工作流程可分为以下几个关键阶段:

1. Agent 启动与代理封装

为了让 AReaL 能够驱动用户编写的 Agent,并进行 RL 训练,用户需要提供一个接口函数来告知 AReaL 如何执行 Agent,以及 Agent 所获得的 reward。该函数固定命名为 run_agent_return_reward,输入 data 可以是任意类型,它是用户提供的数据集中的一条数据,输出 reward,表示本次 Agent 运行得到的奖励。

async def run_agent_return_reward(data: Any) -> float: """ Input: data: Any, One sample of data in the dataset. Return: reward: float, The final reward of the result of this agent run. """

该接口是用户将 Agent 接入 AReaL 唯一需要编写的接口。

  1. 轨迹收集(Trajectory Collection)

当 AReaL 开始进行 Agentic RL 训练时,框架会为每一次 Agent 运行自动开启一个会话(Session),并记录从输入到输出的每一步交互。由于我们优化的对象是 LLM 的输出,能够参与参数更新的数据仅有 LLM 自主生成的 token,而其他部分作为 LLM 的输入被记录下来

  • 输入捕获:用户原始 query、工具调用结果、其他 Agent 的输入等,以 token 形式被保存下来。

  • 输出缓存:LLM 输出的 token(包括思维链、调用工具的参数、自我反思等等)在被解码成字符串返回到 agent 之前,被缓存到 AReaL 中。

  • 环境反馈:Agent 自行调用外部环境和工具进行迭代。

  • 奖励标注:计算 Agent 最终的或每一步的奖励分数,并上传到 AReaL。

所有这些信息被组织为一个结构化的轨迹(Trajectory),用于后续训练。

  1. 强化学习训练(RL Training)

一旦积累了足够的轨迹数据,AReaL 便进入 RL 训练流程。AReaL 会收集每一次会话中所有交互的输入、输出和奖励值,按照时间顺序排序,并根据用户指定的折扣因子(discount factor)将最终奖励进行反向传播,得到一个完整的可以训练的批次。

训练流程基于 AReaL 框架实现,支持多种 RL 算法,并且和推理完全异步,充分利用硬件资源。训练过程后,AReaL 会自动将策略更新后的模型权重回传给 Agent 的 LLM 后端,从而实现策略迭代。

  1. 模型部署与闭环迭代

训练完成的模型可直接导出为标准模型文件(如 HuggingFace 格式),并部署到生产环境中的 Agent 系统中。由于 Agent 本身不依赖训练框架,部署过程无需任何代码修改。同时,生产环境中的新交互数据又可被 AReaL 持续收集,形成"收集 → 训练 → 部署 → 再收集"的闭环优化循环。

核心优势总结

快速体验

为了方便用户快速体验,我们提供了一个通过多轮对话解决数学问题的实验脚本,可以通过如下方式启动实验:

python3 -m areal.launcher.ray examples/multi-turn-math/gsm8k_rl_mt.py \ --config examples/multi-turn-math/gsm8k_grpo_mt.yaml \ experiment_name=gsm8k-grpo-multiturn trial_name=trial0

训练的 reward 如下图,红色为通过两轮迭代解决问题,黄色为单轮迭代,可以看到多轮反思确实能够提升性能。

在解耦式架构下数学智能体的训练奖励曲线

核心特性二:Single Controller 架构

背景介绍

AReaL 最初沿用主流预训练框架所采用的SPMD 执行模型:多个训练进程运行相同代码,数据与模型参数在进程间分片。这种模式在预训练中问题不大,但在强化学习场景下却面临两大核心问题:

1、长尾问题

强化学习训练包含两个关键阶段:RolloutTraining。在当前 SPMD 架构中:

  • 每个训练进程独立提交固定数量的 prompt 至推理引擎;

  • 由于生成长度不可预测,部分进程可能由于长尾任务,需长时间等待;

  • 所有进程必须同步完成生成,训练才能进入下一步,尤其是训练刚开始时。

这导致“快”的进程长时间空转,严重浪费 GPU 算力,整体吞吐受限于最慢的生成任务。

2、精细化控制

在大规模 RL 训练中,软硬件故障是不可避免的问题,势必要考虑以下问题:

  • 推理单实例故障如何快速替换而不是重启整个实验

  • 推理引擎瓶颈时如何快速横向扩展

由于 SPMD 所有进程都运行相同代码,要实现上述精细化的控制场景会让代码逻辑非常复杂,到处夹杂着控制流与计算流。为了优雅解决上述问题,我们引入了 “单控制器 + 分布式引擎” 的分层设计,将系统划分为控制平面数据平面,实现精细化的工作流控制与高效的数据流转。

架构设计

Single Controller 架构

设计理念

在架构设计上,自上而下分为 Controller、Worker、Engine 三层

  • Controller:跑在 CPU 节点上,封装了分布式的细节,包括分布式调度、分布式数据聚合与分发等,暴露了与 Engine 相同的接口,用户的训练脚本可以像调用 Engine 一样调用 Controller 的接口。

  • Worker:位于 Controller 之下 ,它提供了 Engine Deploy 的能力,在部署形态上,Engine 可以是 Embedding 模式与 Worker 跑在同一进程,也可以独立进程部署,之所以我们支持独立进程部署是为了解耦 AReaL 框架与引擎的包依赖,同时让外部 Engine 能更方便地接入到 AReaL 中,而不需要开发者理解 AReaL 的代码细节;同时我们将分布式数据流处理也放在这一层,对应 Controller 分发的 metadata,解决 Single Controller 单点瓶颈问题。

  • Engine 层:专注于并行计算,完全兼容原生 SGLang、FSDP、Megatron 等训推引擎。

核心组件

API Demo

# 需通过 launcher 启动 # python3 -m areal.launcher.local script.py --config xxx.yaml def main(args): actor = FSDPPPOActor(config=config.actor) actor.create_process_group(parallel_strategy=parallel_strategy) rollout = RemoteSGLangEngine(config.rollout) rollout.initialize(train_data_parallel_size=parallel_strategy.dp_size) # 手动在 head rank 加载数据并广播 batch = None if actor.is_data_parallel_head(): batch = rollout.prepare_batch(...) batch = tensor_container_to(batch, actor.device) batch = broadcast_tensor_container(batch, src_rank=actor.current_data_parallel_head(), group=...)
# 直接运行脚本,无需 launcher # python script.py --config xxx.yaml def main(args): # 使用控制器包装引擎 actor = TrainController( engine=FSDPPPOActor(config=config.actor), scheduler=LocalScheduler(...) ) rollout = RolloutController( engine=RemoteSGLangEngine(config.rollout), scheduler=LocalScheduler(...) ) # 自动返回 DistributedBatch,无需手动广播 batch = rollout.prepare_batch(...) # 控制器自动处理数据分发

可以看到 Single Controller 与 SPMD 的 Trainer 在用户 trainer 编程界面上基本一致,但是简化了一些分布式细节,一个好的例子是,我们将**「分布式数据流」抽象为 DistributedBatch**。DistributedBatch 是整个架构的"数据护照",它不携带实际张量,仅保存元信息:

@dataclass classTensorMetadata: """Metadata for a tensor field.""" shape: tuple[int, ...] dtype: str device: str = "cpu" @dataclass class ShardMetadata: """Metadata for a single (sub-)shard stored on one node. A logical batch can be composed of multiple shards, and a single physical shard can be split into multiple logical sub-shards via offset and batch_size. """ node_id: str node_addr: str shard_id: str batch_size: int offset: int = 0 fields: dict[str, TensorMetadata] = field(default_factory=dict) @dataclass class BatchMetadata: """Metadata for a distributed batch sharded across multiple nodes.""" batch_id: str global_step: int total_batch_size: int shards: list[ShardMetadata] = field(default_factory=list)

从数据流看 RL 流程大致如下:

  1. Rollout Controller 收集各推理引擎生成的元数据;

  2. Train Controller 将元数据按数据并行策略分片,发送给 Worker;

  3. 各训练 Worker 在首次访问时,按需通过 RPC 拉取本地/远端所需张量

该设计通过 metadata 而不是实际 Tensor 驱动整个 RL 训练,解决了 Single Controller 架构下的单点瓶颈问题,可以大幅提升 RL 训练的规模与效率。

未来展望

AReaL 当前已支持基础的 Agentic RL 训练流程和 Single Controller 模式,未来将进一步支持并完善:

  • Single Controller 模式下的高效数据流和分布式启动能力

  • 自动扩缩容、故障修复和高可用训练

  • 轨迹数据版本管理与可视化分析平台

  • 提升智能体场景下的训推性能

通过 AReaL,我们期望为 Agentic AI 的研发提供一个高效、可靠、可扩展的强化学习运行时服务框架,推动智能体系统从"能用"向"好用"持续演进。

欢迎每一位对强化学习和大语言模型感兴趣的开发者使用 AReaL,并提供宝贵的反馈与建议,一起推动强化学习系统持续创新!

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询