AI News HubLIVE
站内改写2 分钟阅读

NVIDIA AI 发布 Molt:一个 PyTorch 原生的智能体强化学习框架

NVIDIA NeMo 团队发布了 Molt,一个约 8.6K 行 RL 代码的 PyTorch 原生智能体强化学习框架,组合 Ray、vLLM 和 NVIDIA AutoModel,目标是降低研究者在算法迭代中的工程成本。它支持普通 Python 智能体、token 精确的轨迹,吞吐量与基于 Megatron 的堆栈相当,但需注意 MoE 路由差异。

来源MarkTechPost作者: Asif Razzaq

智能体强化学习研究伴随着不断的算法修改。新估计器、新流水线阶段、新 rollout 方案层出不穷。在主流框架中,每一次修改都要贯穿训练器、分布式后端和 rollout 粘合层,研究者每次迭代都要承担这些成本。

NVIDIA NeMo 团队发布的 Molt 直接瞄准了这一成本。它是一个 PyTorch 原生的智能体 RL 框架,设计目标非常独特:代码库要足够紧凑,让研究者能在脑中把握整体,也让 AI 编程助手能完整阅读和推理。其 RL 代码量约为 8.6K 行(通过跟踪各框架 RL 入口的导入图统计),相比之下 verl 约 62K 行、slime 约 25K 行、OpenRLHF 约 7.2K 行。

Molt 是否可用于部署?可以。它以 Apache 2.0 许可发布,附带启动脚本、Slurm 脚本和预构建容器。但研究论文将其定位为研究基础设施而非生产训练服务;真正的门槛是硬件。随附的配方假设使用 2 个节点、每节点 8 块 H100 GPU,其中 8 块用于训练、8 块用于 rollout。这意味着 Molt 面向前沿实验室、资金充足的 AI 初创公司、金融/医疗/机器人领域的企业 AI 研究团队以及拥有多节点 H100/H200 的学术实验室。应用场景包括多轮工具调用智能体、代码执行智能体、视觉语言环境(附带的 geo3k 配方)、LLM 作为评判者的奖励循环,以及在线策略蒸馏到更小的 student 模型。

Molt 组合了 Ray(放置与异步队列)、vLLM(rollout)和 NVIDIA AutoModel(FSDP2 训练),三者均未 fork,所以上游改进通过容器 pin 而非 rebase 进入。运行时是一个智能体池:一组 vLLM 引擎位于请求路由器之后,再加上一个可训练的策略 actor。流式池保持 prompt 组在飞行中,使引擎在 actor 训练时不会排空。部分 rollout 会暂停引擎,通过 NCCL 将 actor 分片直接广播到每个引擎,然后恢复保留的请求而不是丢弃。

智能体本身是一个普通程序。RL 运行只需指定一个导出 AgentRunner 的 Python 模块,其余都是普通代码,包括奖励。支持两种形式:Env 在 Gymnasium 对齐的 step() 中由框架拥有 LLM 循环;ChatAgent 则通过标准 OpenAI 或 Anthropic SDK 由用户拥有循环。Molt 启动一个支持两种线路协议的回环服务器,每个请求在服务端解码为 token 精确的累积。当长程智能体压缩上下文并重写前缀时,服务器会自动密封当前段并打开新段。

三个正确性不变量支撑着设计:token 同一性(采样 token id 定义轨迹,而非重新 token 化的转录)、策略版本语义(可训练 token 保留其行为策略的对数概率,异步使用在序列级门控后逐 token 修正)、前向一致性(rollout 与 actor 必须对模型语义一致)。对于混合专家(MoE)策略,最后一个不变量最重要:rollout 和训练路由器独立选择专家,小的数值差异可能翻转 top-k 选择。Molt 采用 rollout 路由重放:vLLM 返回每个 token 的专家 id,训练前向重放这些 id。

Molt 是 Apache 2.0 许可的智能体 RL 框架,RL 代码约 8.6K 行,约为 verl 的 1/7。Ray、vLLM 和 NVIDIA AutoModel 组合而不 fork,上游发布以容器 pin 引入。智能体是普通 Python,标准 OpenAI/Anthropic SDK 可直接训练。吞吐量与基于 Megatron 的堆栈统计相当,并披露了 MoE 不匹配注意事项。规模只是一个标志:同一个循环可以在 --fsdp.ep_size 256 下运行稠密 4B 模型和 700B MoE。