verl 代码仓库分析总结

🎯 项目概述

verl(Volcano Engine Reinforcement Learning for LLMs)是由 字节跳动 Seed 团队发起、社区共同维护的一个面向大语言模型(LLM)的强化学习训练框架。它是 HybridFlow 论文的开源实现,已被 EuroSys 2025 收录。


🏗️ 核心架构:HybridFlow / Hybrid-Controller

verl 采用混合控制器架构,融合两种编程范式:

层次 模式 说明
高层编排 单控制器(MPMD) 单一 RLTrainer 进程统一管理全局计算图,调度 rollout、奖励计算、训练分发
内部计算 多控制器(SPMD) Worker 以分布式方式执行相同程序,通过 FSDP/Megatron/vLLM 等进行集合通信

架构分为两层:

  • verl-core:提供 RL Pipeline 所需的四大组件——Model Engine、Rollout Engine、Checkpoint Engine、Transfer Queue,均有抽象接口,可插拔扩展
  • verl-trainer:在 core 之上构建各类 RL Pipeline(同步、单步离策略、完全异步等)

📦 代码目录结构

verl/
├── trainer/          # 训练入口(PPO/SFT/评估/生成服务器)
│   ├── main_ppo.py          # 主 RL 训练入口
│   ├── main_generation_server.py  # 独立推理服务器
│   ├── main_eval.py         # 评估入口
│   ├── sft_trainer.py       # SFT 监督微调
│   └── ppo/                 # PPO 训练器核心逻辑
├── workers/          # 分布式 Worker 实现
│   ├── actor/               # Actor 模型 Worker
│   ├── critic/              # Critic 模型 Worker
│   ├── rollout/             # 推理引擎(vLLM/SGLang/TensorRT-LLM)
│   ├── reward_manager/      # 奖励函数管理
│   └── sharding_manager/    # 模型分片与重分配
├── single_controller/  # 单控制器抽象(Ray WorkerGroup/ResourcePool)
├── experimental/       # 实验性功能
│   ├── agent_loop/          # Agent 循环(工具调用/多轮)
│   ├── fully_async_policy/  # 完全异步训练策略
│   ├── one_step_off_policy/ # 单步离策略
│   └── vla/                 # 视觉-语言-动作模型(机器人 RL)
├── models/            # 模型定义
├── checkpoint_engine/ # 检查点管理
└── utils/             # 工具函数(数据处理、奖励函数等)

⚙️ 训练后端支持

类别 支持框架
训练引擎 PyTorch FSDP / FSDP2、Megatron-LM(5D并行)、VeOmni
推理引擎 vLLM、SGLang、TensorRT-LLM、HF Transformers
硬件平台 NVIDIA GPU、AMD GPU、昇腾 NPU

🧠 支持的 RL 算法

涵盖主流及前沿算法:
PPO、GRPO、GSPO、DAPO、REINFORCE++、RLOO、ReMax、PRIME、DrGRPO、VAPO、PF-PPO


🚀 关键技术特性

  • 3D-HybridEngine:训练/生成阶段切换时的高效 Actor 模型重分配,消除内存冗余
  • AgentLoop 抽象:支持单轮、多轮工具调用(ReAct)、自定义 Agent 场景
  • Sequence Packing / Sequence Parallelism(DeepSpeed Ulysses)
  • LoRA 支持:多 GPU LoRA RL 训练节省内存
  • 多模态 RL:支持 VLM(Qwen2.5-VL、Kimi-VL)
  • 超大规模:支持 671B 级别模型,百卡级别 Expert Parallelism
  • 实验追踪:wandb、swanlab、mlflow、tensorboard

🔬 典型应用场景

  1. 数学推理(GSM8K、MATH、AIME)
  2. 代码生成(Coding RL with sandbox)
  3. 多轮工具调用 Agent(LangGraph/ReAct 集成)
  4. 视觉语言动作模型(机器人控制,Isaac Lab/LIBERO)
  5. LLM 对齐(RLHF、SPPO 自博弈偏好优化)

📈 项目影响力

  • 已支撑多个 SOTA 模型训练:Doubao-1.5-proSeed-Thinking-v1.5(AIME 86.7 分)、Seed-Coder
  • 大量知名开源项目基于 verl 构建(DAPO、PRIME、ReTool、DeepMath 等)
  • 在 PyTorch Conference、EuroSys、NeurIPS、ICLR 等顶级会议发表

总结

verl 的核心价值在于:通过 HybridFlow 架构,将 RL 算法的灵活性与分布式训练的高性能有机结合,使研究者可以用少量代码定义复杂的 RL 数据流,同时无缝接入现有的 LLM 训练/推理基础设施,是目前功能最完整、社区最活跃的 LLM 强化学习训练框架之一。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐