POLARIS 背后的训练引擎 verl:HybridFlow 架构与 3D-HybridEngine 解析
【免费下载链接】POLARISScaling RL on advanced reasoning models项目地址: https://gitcode.com/gh_mirrors/polaris34/POLARIS
POLARIS 背后的训练引擎 verl:HybridFlow 架构与 3D-HybridEngine 解析
说到大模型推理能力的巅峰,你可能会想到那些动辄数百亿参数的商业模型。但开源项目 POLARIS 用事实证明了另一条路:仅基于 Qwen3-4B 这样的小模型,通过强化学习(RL)后训练,就能在 AIME25 数学基准上拿到 79.4 分,反超 Claude-4-Opus、Grok-3-Beta 等顶级商业系统。而这一切的背后,正是它的训练引擎verl——一个由字节跳动 Seed 团队发起、基于HybridFlow架构的大模型强化学习训练框架。本文将用通俗易懂的方式,为你拆解 verl 的 HybridFlow 架构设计与 3D-HybridEngine 核心原理。
什么是 verl:为强化学习而生的大模型训练库
verl(Volcano Engine Reinforcement Learning for LLMs)是 HybridFlow 论文的开源实现,该论文已入选系统领域顶级会议 EuroSys 2025。它解决的是一个非常现实的问题:大模型的 RL 训练远比普通预训练复杂得多——既要"训练"(更新模型参数),又要"推理"(生成采样数据),还要在两者之间反复切换。
传统框架把训练和推理硬绑在一起,切换成本高、资源浪费大。verl 则提出了两大杀手锏:
- 灵活:用几行代码就能搭建 GRPO、PPO、DAPO、PRIME 等主流 RL 算法数据流
- 高效:无缝接入 FSDP、Megatron-LM 训练后端,以及 vLLM、SGLang 推理引擎
在 POLARIS 项目中,verl 承担了全部 RL 训练任务,相关配置都封装在scripts/train/qwen3-4b/stage1.sh这样的训练脚本中,入口则是verl/trainer/main_ppo.py。
HybridFlow 架构核心:控制流与计算流的解耦
要理解 HybridFlow,先要理解 RL 训练本质上是"两层数据流"问题:
- 控制流:决定高层算子如何执行,比如"先采样、再算优势、最后更新模型",它表达了 RL 算法的核心逻辑
- 计算流:神经网络本身的运算,如前向、反向传播、优化器更新
在大模型时代,计算流天然是多进程的(模型太大,必须拆分到多张 GPU)。HybridFlow 的关键设计是:控制流保持单进程运行,计算流则交给多进程的 Worker 去执行。两者通过 Ray 调度解耦。
这样做的好处立竿见影:
- 计算后端可替换——从 FSDP 切换到 Megatron,控制流代码一行都不用改
- 新算法实现简单——在单进程里写 PPO 主循环,就像写普通 Python 程序一样直观
- 资源摆放灵活——不同模型(Actor、Critic、Reward)可以自由映射到不同的 GPU 资源池
WorkerGroup 与混合控制器:RL 流水线如何运转
在 verl 中,每个 GPU 上运行一个 Worker,多个 Worker 组成 WorkerGroup,作为控制器与 GPU 之间的代理。以 PPO 为例,verl 定义了三个 WorkerGroup:
- ActorRolloutRef:管理 Actor(策略模型)、Rollout(生成采样)和 Reference(参考策略),三者共置是为了用 NCCL 快速同步权重
- Critic:管理价值模型
- Reward:管理奖励模型或奖励函数
控制器通过装饰器注册的接口来调用 Worker,比如generate_sequences、compute_log_prob、update_actor等,数据的切分、分发、收集和拼接全部自动完成。这段逻辑的完整实现可以参考verl/workers/fsdp_workers.py和verl/workers/megatron_workers.py,而训练主循环则在verl/trainer/ppo/ray_trainer.py中。
3D-HybridEngine:训练与推理切换的加速器
RL 训练中最耗时的环节之一,是模型在"训练态"和"生成态"之间反复切换:训练时权重以 FSDP/Megatron 的分片格式分布,生成时又要重组为 vLLM 能用的张量并行格式。如果每次都全量搬移权重,通信开销惊人,GPU 显存也会出现大量冗余。
3D-HybridEngine正是为此而生,它实现了两个目标:
- 消除内存冗余:通过按需重建和复用权重副本,避免在显存里同时维护多份模型
- 显著降低通信开销:训练与生成阶段切换时,只传输必要的分片数据,而非全量权重
在实际运行中,Actor 和 Rollout 共置于同一批 GPU 上,由 ShardingManager(如verl/workers/sharding_manager/fsdp_vllm.py)以上下文管理器的方式完成权重重分片。这也是 POLARIS 能用 32 张 H800 在约 10 天内完成 4B 模型 RL 训练的关键原因之一(每步仅约 0.33 小时)。
POLARIS 实战成绩:小模型的逆袭
POLARIS 用 verl 交出的答卷极具说服力。下图展示了各模型在 AIME25 上的表现,POLARIS-4B-Preview(红色柱)以 79.4 分超越了众多超大模型:
注:上图为项目评测结果图,红色标注的是 Qwen3-4B(65.6 分)与训练后的 POLARIS-4B-Preview(79.4 分),提升幅度高达 13.8 分。
如果对这套训练配方的技术细节感兴趣,官方文档verl/docs/hybrid_flow.rst是深入理解 HybridFlow 编程模型的最佳入口。
总结:为什么 verl 值得关注
verl 的价值在于它把"RL 算法创新"和"底层工程实现"彻底解耦:算法研究者只需关注控制流逻辑,工程能力则由 3D-HybridEngine、FSDP/Megatron 适配、vLLM/SGLang 集成等模块托底。POLARIS 的成功已经证明,这条"小模型 + 强化学习 + 高效引擎"的路线完全可行。对于想复现或开展大模型 RL 研究的开发者来说,verl 无疑是最值得上手的开源基础设施之一。
【免费下载链接】POLARISScaling RL on advanced reasoning models项目地址: https://gitcode.com/gh_mirrors/polaris34/POLARIS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考