写点什么

快手发布 SeamlessFlow 框架:完全解耦 Trainer 与 Agent,时空复用实现无空泡的工业级 RL 训练!

作者:快手技术
  • 2025-08-29
    北京
  • 本文字数:4225 字

    阅读完需:约 14 分钟

快手发布SeamlessFlow框架:完全解耦Trainer与Agent,时空复用实现无空泡的工业级RL训练!

近日,快手 Kwaipilot 团队发布了 SeamlessFlow 技术报告,这是对团队所使用的工业级规模强化学习(RL)训练框架的详细介绍。该框架通过创新的数据平面架构,对 RL 的训练逻辑和 Agent 做了彻底解耦,用以支持多智能体、在线强化学习训练等复杂场景;更进一步,针对 RL 计算资源分配问题,团队提出了“标签分配机制”,统一了该领域最广泛的两种设计模式(训推共卡、训推分离)。以标签分配的思路为出发点,在业界首个提出“时空复用 pipeline”,实现了在训推分离的异构集群上彻底消除 Pipeline Bubble 的效果。在实际测试中,SeamlessFlow 的端到端 token 吞吐量相比基线提升 100%,整体训练时间减少 62%。


技术报告:https://arxiv.org/abs/2508.11553


一、大模型 RL 训练的两大难题

随着 OpenAI o 系列和 DeepSeek-R1 的成功,强化学习已成为提升大模型推理能力的关键路径。然而在工业级部署中,RL 训练面临着两大难题:其一是训练与 Agent 执行流程的强耦合。不同 Agent 往往具有复杂的内部逻辑,如记忆机制、多分支推理或测试时扩展,这使得 RL 训练必须依赖各自的实现,不仅维护成本高,还容易造成轨迹记录不完整、数据不一致。其二是算力利用率与系统稳定性的矛盾。业界对于 RL 模型训练和数据采样这两者的算力分配上有两种流派:训练与推理服务同机部署(Colocated: 训推共卡),可以减少空转保持高利用率,但弊端在于无法利用异构算力资源,且服务崩溃会牵连整个训练流程;另一种是将这二者分在两个集群上部署(Disaggregated: 训推分离),这种方式能提升稳定性,且能灵活利用异构算力,却会因训练和采样之间的时序依赖而产生流水线空泡(pipeline bubbles),导致大量 GPU 闲置。如何在大规模集群中同时实现高效与稳定,成为大模型 RL 必须突破的核心挑战。


这种矛盾在基于实际生产环境进行 RL 训练的场景中(即 Online RL)尤为突出,一个 LLM 服务层需要同时支撑多个产品线的不同智能体,这些智能体可能涉及代码生成、文档理解、多轮对话等各种复杂任务。在这种情况下,如何设计 RL 系统,以保证这些在线产生的数据能无缝高效地进入 RL 的训练管线中、以及在不影响线上产品的情况下,最大化利用异构的计算资源,成为了一个极具挑战的问题。


图 1:从标签视角看三种架构。Disaggregated 架构存在明显的 Pipeline Bubble;Colocated 架构虽无 bubble 但缺乏灵活性;SeamlessFlow 的时空复用通过动态标签切换彻底消除了 bubble。除此之外,标签层的存在还提供了一层冗余:部分机器宕机不会影响整体训练流程。


二、用数据平面破解 Trainer-Agent 耦合难题

SeamlessFlow 的第一个关键创新是引入了独立的数据平面层,彻底解耦了 RL 训练和智能体实现。这个设计的巧妙之处在于,它不要求每个智能体去适配训练框架,而是在 LLM 服务和智能体之间插入了一个透明的代理层。


数据平面的核心是 Trajectory Manager(轨迹管理器),它像一个"隐形记录员",静默地捕获所有经过的 token 级别输入输出。当智能体向 LLM 发送请求时,Trajectory Manager 会记录完整的输入;当 LLM 返回响应时,它同样会保存所有输出 token,然后再转发给智能体。这个过程对智能体完全透明,智能体甚至感知不到 Trajectory Manager 的存在。


更重要的是,Trajectory Manager 能够处理复杂的会话分支情况。通过最长前缀匹配算法,它可以将属于同一会话但可能有不同分支的多轮对话重建成完整的轨迹树。这不仅节省了存储空间,还避免了共享前缀的重复计算,显著提升了训练效率。每个 token 还会被标注生成它的模型版本,使得精确的 on-policy/off-policy 区分成为可能。


图 2:数据平面的序列图,展示 Trajectory Manager 如何让智能体对模型更新无感知,以及 Rollout Manager 如何控制训练与推理阶段的切换。


数据平面的另一个关键组件是 Rollout Manager(推理管理器),它负责协调整个系统的运行节奏。当收集到足够的训练样本、需要更新模型权重或者资源需要重新分配时,Rollout Manager 会触发推理暂停。这里的巧妙设计是实现了 partial rollout 等服务端中断操作对下游 Agent 测的无感。从智能体的视角看,它只是收到了一个稍长的等待时间,完全感知不到背后发生的模型更新或资源调度。


这种设计带来的好处是革命性的。训练工程师不再需要深入了解每个智能体的实现细节,只需要从数据平面获取标准化的轨迹数据即可。新的智能体可以随时加入系统,无需修改 RL 训练 pipeline。即使是数万 token 的长文本生成任务,也能在任意时刻优雅地暂停和恢复,不浪费任何已完成的计算。


三、标签驱动调度:统一 Colocated 和 Disaggregated 的巧妙抽象


SeamlessFlow 的第二个创新是提出了标签驱动的资源调度范式。这个设计的精妙之处在于,它没有在 Colocated 和 Disaggregated 之间做非此即彼的选择,而是将两者统一在了统一的抽象框架下。


在 SeamlessFlow 中,每个计算资源都被赋予一个或多个能力标签(capability tags),比如 rollout 表示可以执行推理任务,train 表示可以执行训练任务。调度器不再关心物理机器的身份,而是根据标签来分配任务。从这个视角看,纯 Colocated 架构就是所有机器都拥有全部标签的特例,纯 Disaggregated 架构则是每台机器只有单一标签的特例,而 SeamlessFlow 支持的是更灵活的混合模式。


图 3:不同 Pipeline 实现方式的对比。Naive Pipeline 存在大量空闲时间;Micro-batch 和 Off-policy filling 部分缓解但无法消除 bubble;SeamlessFlow 的时空复用 Pipeline 实现了近乎零空闲。


这种抽象带来的最大好处是实现了时空复用(Spatiotemporal Multiplexing)。具体运作过程为:系统初始化时,一部分机器被赋予 rollout 和 train 双重标签,其余机器只有 rollout 标签。第一阶段,所有机器都在执行推理任务,最大化数据生成速度。当 Rollout Manager 判断已收集足够数据需要训练时,拥有 train 标签的机器会被立即抢占并切换到训练任务,而只有 rollout 标签的机器继续生成数据,保持推理服务不中断。训练完成后,这些机器又会切换回推理模式。


这种设计彻底解决了 Pipeline Bubble 问题。在传统的 Disaggregated 架构中,训练集群在等待推理数据时会大量空闲。而在 SeamlessFlow 中,这些"训练机器"在空闲时会立即被调度去做推理任务,将空闲时间压缩到几乎为零。实验数据显示,通过这种时空复用,系统的 GPU 的闲置率可以降低到 5%以下。


对于异构集群,SeamlessFlow 还引入了 train_priority 标签。通过 roofline 模型分析不同硬件的内存带宽和计算峰值性能,系统可以智能地判断哪些设备更适合训练任务,哪些更适合推理任务,哪些都适合,从而在保持高利用率的同时充分发挥各类硬件的特长。


四、工业级验证:从理论到实践的完美落地


SeamlessFlow 不仅在理论上最优,在实际部署中也展现出了卓越的性能。在使用 32 张 H800 GPU 进行的对比测试显示,相比主流的 VERL 框架,SeamlessFlow 在单轮 RL 任务(8k token 上下文)中实现了 100%的吞吐量提升,整体训练时间减少 62%。这个提升主要来自于数据平面的流式设计和 Pipeline Bubble 的彻底消除。


图 4:SeamlessFlow 与 VERL 的吞吐量对比。左图展示了不同模型规模下的样本吞吐量,右图展示了 20k token 场景下的 token 吞吐量,SeamlessFlow 均实现了显著提升。


在更复杂的智能体 RL 场景中,SeamlessFlow 的优势更加明显。使用 SWE-agent 作为智能体 scaffold,在最大生成长度 64K token 的代码任务中,SeamlessFlow 实现了平均 1.55 倍的吞吐量提升。特别值得注意的是,当集群规模从 32 块 GPU 扩展到 64 块时,SeamlessFlow 的性能优势进一步扩大,展现出了优秀的可扩展性。


图 5:智能体训练场景的吞吐量对比,SeamlessFlow 在不同集群规模下都保持明显优势。


为了验证端到端的效果,团队在软件工程任务上进行了大规模 RL 训练。使用包含 10K 个 GitHub 真实 issue 的训练集,覆盖 3500 个不同代码仓库,通过测试用例通过率作为奖励信号进行训练。结果显示,Qwen3-8B 模型在 SWE-Bench Verified 上的性能从 12.2%提升到 27.4%,Qwen3-32B 更是从 23%提升到 45.8%,充分证明了 SeamlessFlow 在实际任务中的有效性。


图 6:Qwen3-32B 在 SeamlessFlow 训练过程中的奖励曲线,展示了稳定的性能提升趋势。


五、架构创新背后的深度思考


SeamlessFlow 的成功不仅仅是技术实现的胜利,更体现了对工业级 RL 训练深刻的理解。它认识到在真实的生产环境中,简单地追求某个单一指标的最优是不够的,必须在多个维度上达到平衡。


数据平面的设计体现了"关注点分离"的架构思想。通过将轨迹管理从智能体实现中剥离出来,不仅降低了系统的复杂度,还大大提升了可维护性。这种设计使得算法工程师可以专注于 RL 算法的优化,而不需要关心各种智能体的实现细节;同时产品工程师可以自由地迭代智能体功能,而不用担心破坏训练流程。


SeamlessFlow 还体现了对细节的极致追求。比如在处理模型更新时,系统不是简单地中断所有推理请求,而是通过长轮询机制让请求"悬停",等待新模型加载完成后继续生成。这种设计虽然增加了实现复杂度,但确保了智能体体验的连续性。


标签驱动调度则展现了"统一抽象"的威力。通过将资源能力抽象为标签,SeamlessFlow 将看似对立的 Colocated 和 Disaggregated 架构统一在了同一个框架下。这不仅在理论上优雅,在实践中也带来了巨大的灵活性——系统可以根据实际负载动态调整资源分配策略,在稳定性和效率之间找到最佳平衡点。与 Areal 等其他框架通过引入落后多步 off-polcy 数据的做法不同,SeamlessFlow 的时空复用 pipeline,将 off-polcy 数据的落后程度控制在了 1 步以内,在实现无空泡的同时,尽可能减小了其对 RL 算法侧的负面影响。


只有在异构集群上将以上几点结合,才能实现真正意义上的 Online RL:产品线上实时的数据要能轻松地被 RL 训练模块所使用、RL 训练不能影响线上服务、集群的算力资源得到充分利用。


六、展望:工业级 RL 训练的新范式


SeamlessFlow 的发布标志着工业级 RL 训练进入了一个新阶段。它不再是在现有架构间做取舍,而是从实际算法需求触发,通过以更高观点对 Infra 中各架构进行抽象,实现了新的架构方案,打破了长期存在的效率与稳定性矛盾。随着大模型能力的不断提升和智能体应用的日益普及,高效、稳定、灵活的 RL 训练框架将成为 AI 基础设施的关键组成部分。


SeamlessFlow 的设计理念和技术创新为社区提供了宝贵的参考,它证明了通过深入理解问题本质、巧妙设计系统架构,可以在看似矛盾的需求之间找到完美的平衡点。这种思路不仅适用于 RL 训练,对其他大规模机器学习系统的设计也具有重要的借鉴意义。Kwaipilot 团队将继续在大模型训练和智能体技术领域深耕,努力为社区带来更多实用的技术创新。感谢大家对我们工作的关注和支持,也欢迎持续关注我们后续的技术分享。


【END】

用户头像

快手技术

关注

还未添加个人签名 2024-05-15 加入

快手官方技术号,即时播报快手技术实践的最新动态 关注微信公众号「快手技术」

评论

发布
暂无评论
快手发布SeamlessFlow框架:完全解耦Trainer与Agent,时空复用实现无空泡的工业级RL训练!_人工智能_快手技术_InfoQ写作社区