文章摘要
近期,原OpenAI o1项目核心成员Edward Hu加入Mercor后,与SkyRL团队联合推出面向复杂知识工作Agent的强化学习解决方案,完整公开从研发到落地的全训练流程。基于APEX-Agents基准的实验显示,经流程优化后模型性能显著提升,35B量级模型性能超越Claude Opus 4.5,为该类Agent落地提供了可复用实践方案。

近期,LoRA技术核心开发者、OpenAI o1项目核心成员Edward Hu加入Mercor后,与SkyRL团队联合推出了面向复杂知识工作Agent的强化学习解决方案,并完整公开了从研发到落地的全流程训练体系。这套方案涵盖了任务环境搭建、Agent测试框架优化、Token对齐策略、分布式系统调优等多个关键环节,还包含小规模模型过拟合验证、35B量级模型的算法消融实验,以及最终397B大模型的正式训练过程。

在9月19日的相关技术分享活动中,团队成员与加州大学伯克利分校的Sky Computing Lab博士生阮世麟,共同介绍了模块化RL后训练框架SkyRL,以及397B办公类Agent的强化学习训练实战经验。

作为面向真实企业知识工作的长程Agent评测基准,APEX-Agents包含480个公开测试任务,覆盖公司法务、管理咨询、投资银行三大专业领域。与传统评测基准不同,每个任务都运行在模拟的企业环境中,包含数十份PDF、表格文档、邮件和聊天记录,Agent需要通过工具调用和代码执行完成信息检索、文件处理等操作,完整流程通常包括理解需求、检索资料、分析数据、调用工具、生成交付物并最终校验结果。为开展强化学习训练,团队还准备了1928个由专家创建的训练任务,分布在112个独立的模拟企业环境中,且这些训练任务的Prompt和环境与公开评测集不重叠,有效降低了数据污染风险。

团队选择了两款混合专家架构(MoE)模型开展实验:Qwen3.6-35B-A3B主要用于系统调试和算法消融实验,该模型总参数量为35B,每个Token实际激活3B参数;而Qwen3.5-397B-A17B则用于最终的大规模训练,其总参数量达397B,采用MoE架构后每个Token仅激活约17B参数。值得注意的是,团队没有先进行监督微调(SFT Warm-up),而是直接对基础模型开展强化学习,目的是聚焦研究RL流程中最具挑战的部分。

模型 总参数量 每个Token激活参数 主要作用
Qwen3.6-35B-A3B 35B 3B 系统调试和算法消融
Qwen3.5-397B-A17B 397B 17B 最终大规模训练

经过强化学习训练后,Qwen3.5-397B-A17B在APEX-Agents基准上的Pass@1指标从16.11%提升至27.29%,相对提升幅度约70%;而规模更小的Qwen3.6-35B-A3B也在该基准上实现了对Claude Opus 4.5的超越。不同模型在不同领域的提升效果存在差异:35B模型在公司法务任务上的性能提升最为明显,397B模型则在管理咨询领域表现最优,两款模型在投行业务上也都获得了显著的性能提升,说明这项强化学习技术能够覆盖多种复杂知识工作场景。

在正式启动RL训练前,团队首先完成了三项核心工作:明确各组件的部署位置、提升环境和测试框架的稳定性、实现精确的Token-in-Token-out对齐。其核心逻辑在于,不稳定的环境会导致模型生成的失败轨迹无法真实反映模型能力,进而污染训练信号。

整套训练系统由SkyRL、Harbor、Ray、vLLM、Megatron和Modal等组件构成,可分为训练数据、GPU集群、独立沙箱三个部分。训练数据以Harbor Task Directory的形式组织,包含任务要求文件、任务配置、Agent配置、企业环境镜像以及验证评分逻辑等内容,每次训练尝试都会调用一个独立的任务目录。GPU集群由Ray调度,包括模型训练节点、推理生成节点、全异步训练循环管理、轨迹生命周期管理、工具调用执行以及权重同步等模块,单次训练尝试的完整流程包括启动环境、Agent运行、验证评分、返回奖励并最终销毁环境。每个训练尝试都会启动独立的沙箱环境,运行PDF、Excel、PPT、邮件、聊天等多种工具调用模块,以及对应的文件系统和验证评分系统,让模型在真实的模拟企业环境中完成任务,而非仅生成文本。

长程Agent任务可能运行数十分钟,生成数万甚至十几万Token,如果在任务后期因为工具断连、沙箱销毁超时或者API限流导致零分奖励,不仅会浪费计算资源,还会污染训练信号。因此团队在正式训练前做了大量环境治理工作:为所有外部操作设置超时机制,包括文件下载、工具调用、容器启停以及LLM Judge请求等;针对强化学习中大量并行rollout导致的Judge API限流问题,团队使用多API Key轮询、失败重试和指数退避策略提升吞吐;将每个Agent轨迹放入独立的进程中,避免共享进程导致的工具连接断开问题;同时明确区分模型任务失败和系统错误,避免将系统异常导致的零分奖励错误地用于模型训练。团队建议在正式RL前,按照实际训练的并发规模对全训练集进行一次预评测,将非模型错误率降至接近零的水平,而非依赖训练阶段的错误屏蔽。

团队通过让未训练模型运行全训练集,分析失败轨迹的根源,包括模型能力不足、工具设计缺陷、测试框架异常、环境依赖缺失以及验证器判断错误等。他们发现了多个典型问题:比如沙箱缺少必要的Python包,导致模型需要花费多轮尝试才能发现依赖缺失;PowerPoint工具调用后错误返回None,导致模型无法判断操作是否完成;原有PDF工具会将二维页面转为一维文本,导致多栏文档和复杂表格的内容拼接错误,因此团队提示模型优先使用pdfplumber库处理复杂PDF。此外,团队还添加了多项实用机制:当工具调用格式解析失败时允许模型重新生成,而非直接终止轨迹;截断过长的工具返回结果避免耗尽上下文;当上下文剩余不足时提醒模型开始收尾任务;修复文件生成和比对逻辑。这些优化的效果显著,在未进行任何参数训练的情况下,Qwen3.6-35B-A3B的平均奖励从22.74%提升至28.69%,提升了5.95个百分点,相当于在旧Harness上完成一个Epoch的训练效果。团队总结指出,在Agent强化学习中,优化好测试框架本身可能比调整RL算法更有效。

完成环境治理后,需要确保推理端和训练端使用完全一致的Token序列。传统的编码解码过程可能存在不同Token序列解码为相同文本的问题,比如词表中包含不同的起始Token组合,可能导致推理时采样的Token序列和训练时重新编码的序列不一致,进而破坏PPO等算法依赖的状态-动作-概率对应关系,导致训练变成非策略学习。这种问题在多轮Agent场景中更为严重,因为每轮都会经历文本解码、工具执行、结果拼接和重新编码的过程,第N轮输出的Token可能与第N+1轮输入的历史Token不一致。团队通过让Agent直接通过/completions接口处理原始Token ID,并保存输入Token ID、输出Token ID、Rollout Logprob、Loss Mask以及Reward等信息,确保训练器使用的动作与推理引擎实际采样的动作完全一致。

长程Agent任务的轨迹完成时间差异极大,简单任务可能快速结束,复杂任务可能生成超过100K Token,如果使用严格同步训练,整个批次需要等待最慢的轨迹完成,会浪费大量GPU资源。因此团队采用全异步RL训练:推理节点持续生成轨迹,完成的轨迹立即进入缓冲区,训练器持续从缓冲区获取数据,无需等待同一批次所有轨迹结束,更新后的权重通过NCCL同步到推理节点。团队首先通过独立脚本扫描Megatron的各项配置,包括张量并行度、专家并行度、流水线并行度、上下文并行度、CPU卸载以及微批次大小等,并使用动态微批处理,根据每条序列的Token数量动态组成微批次,这对长度差异极大的Agent轨迹来说尤为重要。资源分配的基本原则是先固定训练GPU数量,再增加足够的推理GPU直到训练器不再等待轨迹生成,参考配置为35B模型使用12个推理节点和4个训练节点,397B模型使用12个推理节点和8个训练节点。并发上限由系统和算法两个条件决定:系统上限由KV Cache决定,单条轨迹越长、模型越大,可同时运行的Agent数量越少;算法上限则由轨迹陈旧程度决定,全异步RL中生成轨迹的策略可能落后于当前训练策略。

这项工作的核心价值不仅在于最终的性能提升,更在于完整公开了全流程训练体系,强调了环境搭建、测试框架优化、Token对齐等非算法部分对Agent强化学习的重要性,为复杂知识工作Agent的落地提供了可复用的实践方案。

以上内容不代表本平台立场,仅供读者参考