欢迎使用 verl 文档!
verl 是一个灵活、高效且生产就绪的 RL 训练框架,专为大型语言模型(LLMs)的后训练而设计。它是 HybridFlow 论文的开源实现。
verl 具有灵活性和易用性:
轻松扩展多样化的 RL 算法:混合编程模型结合了单控制器和多控制器范式的优势,能够灵活表示并高效执行复杂的后训练数据流。允许用户用几行代码构建 RL 数据流。
通过模块化 API 无缝集成现有 LLM 基础设施:解耦计算和数据依赖,使框架能够无缝集成现有 LLM 框架,如 PyTorch FSDP、Megatron-LM、vLLM 和 SGLang。此外,用户可以轻松扩展到其他 LLM 训练和推理框架。
灵活的设备映射和并行性:支持将模型放置在不同 GPU 集上,以实现高效的资源利用和跨不同集群规模的可扩展性。
随时与热门的 HuggingFace 模型集成
verl 非常快速:
最先进的吞吐量:通过无缝集成现有的最先进 LLM 训练和推理框架,verl 实现了高生成和训练吞吐量。
使用 3D-HybridEngine 的高效 actor 模型重分片:消除内存冗余,并在训练和生成阶段切换期间显著减少通信开销。
编程指南
配置
PPO 示例
算法
PPO 训练器和 Worker
性能调优指南
高级功能
- 使用检查点支持容错训练
- RoPE 缩放配置覆盖
- 注意力实现覆盖
- 支持 LoRA 的 RL(HF) 算法
- 多轮展开支持
- Interaction System for Multi-turn RL Training
- Ray API 设计教程
- Extend to other RL(HF) algorithms
- Sandbox Fusion 使用示例
- Trace Function Usage Instructions
- RolloutSkip 函数使用文档
- Recipe: 单步偏移策略异步训练器
- Agent 循环
- Reward Loop
- Recipe: Fully Async Policy Trainer
- TransferQueue 数据系统
- 使用 Prometheus 和 Grafana 监控 Rollout
- verl 的 FP8 rollout
硬件支持
- Getting started with AMD (ROCM Kernel)
- verl AMD (ROCm 内核) 性能调优
- 昇腾快速开始
- Align the Inference results of the verl and vLLM frameworks on Ascend devices(zh)
- 在昇腾设备上基于FSDP后端进行数据采集
- Data collection based on FSDP backend on Ascend devices(基于昇腾设备的 FSDP 后端数据收集)
- 昇腾 Dockerfile 构建指南
- Ascend Quickstart with SGLang Backend
API 参考
常见问题
开发说明
贡献
verl 是自由软件,你可以根据 Apache License 2.0 的条款重新分发和修改它。我们欢迎贡献。请加入我们的 GitHub、Slack 和 Wechat 进行讨论。
社区贡献者欢迎!请查看我们的 项目路线图 和 新手友好问题 了解您可以贡献的地方。
代码检查和格式化
我们使用 pre-commit 来帮助提升代码质量。要初始化 pre-commit,请运行:
pip install pre-commit
pre-commit install
要本地解决 CI 错误,您也可以手动运行 pre-commit:
pre-commit run
添加 CI 测试
如果可能,请为您的新功能添加 CI 测试:
找到最相关的 workflow yml 文件,该文件通常对应一个
hydra默认配置(例如ppo_trainer、ppo_megatron_trainer、sft_trainer等)。如果尚未包含,请将相关路径模式添加到
paths部分。最小化测试脚本的工作负载(请查看现有脚本作为示例)。
我们正在招聘!如果您对 MLSys/LLM 推理/多模态对齐领域的实习/全职机会感兴趣,请发送 电子邮件 给我们。