SuperAPI AI 工具集

verl-rl-training

智能体与模型

查看项目

更新于 10-15 13:10

技能介绍

verl 是字节跳动 Seed 团队推出的面向大语言模型的强化学习训练库,定位为灵活、高效、生产可用。它实现了 HybridFlow 框架(EuroSys 2025),并支撑 Doubao-1.5-pro 等模型在数学基准上达到 O1 级表现。

适用场景 当需要以下能力时可以选择 verl:生产级大规模 RL 训练(资料称已测试至 671B 参数);可灵活替换后端(FSDP ↔ Megatron-LM ↔ vLLM ↔ SGLang);支持多种 RL 算法(PPO、GRPO、RLOO、REINFORCE++、DAPO);支持带工具调用的多轮 rollout,用于智能体工作流;支持视觉语言模型的 RL 训练。 不适合的情况:需要 Megatron 原生训练时建议使用 slime 或 miles;希望使用 PyTorch 原生抽象配合 Monarch 时建议使用 torchforge;只需要简单的 SFT/DPO 时建议使用 TRL 或 Axolotl。

主要能力 训练后端:FSDP、FSDP2、Megatron-LM。推理(rollout)引擎:vLLM、SGLang、HuggingFace Transformers。算法:PPO、GRPO、DAPO、RLOO、ReMax、REINFORCE++、SPIN、SPPO。模型:Qwen-3、Llama-3.1、DeepSeek、Gemma-2(0.5B 到 671B)。高级特性:LoRA RL、序列并行、专家并行、多轮工具调用。

安装方式 pip 安装:pip install verl[vllm],或使用 verl[sglang] 切换到 SGLang 后端。 Docker(生产环境推荐):docker pull verlai/verl:vllm011.latest。 源码安装:git clone https://github.com/volcengine/verl.git,进入目录后执行 pip install -e .[vllm,math]。

核心架构 verl 采用 HybridFlow 编程模型,将控制流与计算分离:单进程控制器(Ray)负责编排 rollout → reward → train → sync 流程;多进程 Worker 包括 ActorRolloutRefWorker(策略与生成)、CriticWorker(价值估计,仅 PPO 使用)和 RewardManager(基于模型或规则的奖励)。

使用方式(工作流) 1)数学推理 GRPO:准备含 prompt 与 reward_model 列的 parquet 数据集,定义奖励函数(示例中通过正则提取 \boxed{} 答案并与标准答案比对),编写包含 algorithm、data、actor_rollout_ref、trainer 的 YAML 配置,然后运行 python3 -m verl.trainer.main_ppo 并指定配置启动,最后通过 WandB/TensorBoard 观察损失曲线与奖励变化。 2)带 Critic 的 PPO:与 GRPO 的关键区别是需要独立的 critic 模型,使用 GAE 进行优势估计,更适合密集奖励任务;配置中 adv_estimator 设为 gae,并可设置 clip_ratio 等参数。 3)Megatron 大规模训练:适用于 70B 以上参数或需要专家并行的场景,需安装 mbridge、将模型转换为 Megatron 格式,并使用多节点集群;可通过 ray start 启动集群后以 nnodes 和 n_gpus_per_node 参数启动训练。

配置参考 算法选择:GRPO 对应 adv_estimator=grpo(无 Critic,适合数学/推理);PPO/GAE 对应 gae(密集奖励、价值估计);REINFORCE++ 对应 reinforce_plus_plus(方差缩减);RLOO 对应 rloo(留一基线);ReMax 对应 remax(最大奖励基线);OPO 对应 opo(最优策略优化)。 关键参数包括 rollout 的 n、temperature、top_p,训练的 lr、ppo_mini_batch_size、clip_ratio,以及 KL 控制相关参数。

常见问题与处理 Rollout 阶段 OOM:可减小 log_prob_micro_batch_size、启用梯度检查点、使用 FSDP2 与 CPU offloading。训练不稳定:可降低学习率、增大 KL 惩罚系数、启用梯度裁剪。权重同步慢:可使用 FSDP2 加快重分片、启用异步权重传输。vLLM 版本不匹配:资料建议使用 vllm>=0.8.5,<=0.12.0,并避免存在已知缺陷的 0.7.x。

高级主题 多轮工具调用见参考资料 references/multi-turn.md;视觉语言模型可通过 enable_vision 配置;LoRA 训练可在 actor 下配置 lora 的 r、alpha、target_modules。

资源 文档:https://verl.readthedocs.io/;论文:https://arxiv.org/abs/2409.19256;GitHub:https://github.com/volcengine/verl;配方:https://github.com/verl-project/verl-recipe;社区:verl-project 的 Slack。价格、收费模式等资料暂未提供。