2026/4/18 1:51:30
网站建设
项目流程
网站建设做得好的公司,wordpress新闻站自动采集器,网站建设与管理 规划书,网站建设最高管理权限欢迎回到我们为您精心策划的「ASystem 系统开源」核心技术解析系列的最新一期#xff01;
ASystem 是我们为支撑万亿级思考模型 Ring-1T 等大规模 RL 训练而构建的完整技术底座。在超大规模 RL 训练中#xff0c;系统工程的复杂性极易反噬算法开发效率和灵活性。
本期聚焦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 的架构设计建立在两个核心原则之上Agent 完全独立运行Agent Autonomy在 AReaL 框架中Agent 本身不依赖任何 RL 框架的组件也不感知自身正在被用于训练。它只是一个标准的、基于大语言模型LLM的决策系统按照既定的编排逻辑接收输入、调用工具、生成动作并输出结果。这种设计确保了 Agent 的纯净性与可移植性——同一个 Agent 实现既可以用于在线推理也可以无缝接入离线训练真正做到一套代码两处复用。RL 训练作为外部观察者RL as ObserverAReaL 不主动干预 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 唯一需要编写的接口。轨迹收集Trajectory Collection当 AReaL 开始进行 Agentic RL 训练时框架会为每一次 Agent 运行自动开启一个会话Session并记录从输入到输出的每一步交互。由于我们优化的对象是 LLM 的输出能够参与参数更新的数据仅有 LLM 自主生成的 token而其他部分作为 LLM 的输入被记录下来输入捕获用户原始 query、工具调用结果、其他 Agent 的输入等以 token 形式被保存下来。输出缓存LLM 输出的 token包括思维链、调用工具的参数、自我反思等等在被解码成字符串返回到 agent 之前被缓存到 AReaL 中。环境反馈Agent 自行调用外部环境和工具进行迭代。奖励标注计算 Agent 最终的或每一步的奖励分数并上传到 AReaL。所有这些信息被组织为一个结构化的轨迹Trajectory用于后续训练。强化学习训练RL Training一旦积累了足够的轨迹数据AReaL 便进入 RL 训练流程。AReaL 会收集每一次会话中所有交互的输入、输出和奖励值按照时间顺序排序并根据用户指定的折扣因子discount factor将最终奖励进行反向传播得到一个完整的可以训练的批次。训练流程基于 AReaL 框架实现支持多种 RL 算法并且和推理完全异步充分利用硬件资源。训练过程后AReaL 会自动将策略更新后的模型权重回传给 Agent 的 LLM 后端从而实现策略迭代。模型部署与闭环迭代训练完成的模型可直接导出为标准模型文件如 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_namegsm8k-grpo-multiturn trial_nametrial0训练的 reward 如下图红色为通过两轮迭代解决问题黄色为单轮迭代可以看到多轮反思确实能够提升性能。在解耦式架构下数学智能体的训练奖励曲线核心特性二Single Controller 架构背景介绍AReaL 最初沿用主流预训练框架所采用的SPMD 执行模型多个训练进程运行相同代码数据与模型参数在进程间分片。这种模式在预训练中问题不大但在强化学习场景下却面临两大核心问题1、长尾问题强化学习训练包含两个关键阶段Rollout与Training。在当前 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(configconfig.actor) actor.create_process_group(parallel_strategyparallel_strategy) rollout RemoteSGLangEngine(config.rollout) rollout.initialize(train_data_parallel_sizeparallel_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_rankactor.current_data_parallel_head(), group...)# 直接运行脚本无需 launcher # python script.py --config xxx.yaml def main(args): # 使用控制器包装引擎 actor TrainController( engineFSDPPPOActor(configconfig.actor), schedulerLocalScheduler(...) ) rollout RolloutController( engineRemoteSGLangEngine(config.rollout), schedulerLocalScheduler(...) ) # 自动返回 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_factorydict) 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_factorylist)从数据流看 RL 流程大致如下Rollout Controller 收集各推理引擎生成的元数据Train Controller 将元数据按数据并行策略分片发送给 Worker各训练 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%免费】