vllm-project/vime
An LLM post-training framework with vLLM for RL Scaling
Vime – LLM post‑training framework for reinforcement‑learning at scale
它是什么
- Vime 是一个研究级框架,允许您使用强化学习(RL)方法微调大型语言模型(LLM)。它结合了两个久经考验的栈:
- Megatron‑LM – 用于巨型模型的高吞吐量训练引擎。
- vLLM(以及可选的 vllm‑router)– 一个能够在多个 GPU 上并行生成文本的快速推理服务器。
- 这种组合提供了一个单一的数据流循环:生成提示词,模型生成响应,计算奖励,并将结果轨迹反馈给 Megatron 进行下一步训练。
主要能力
| 能力 | Vime 如何实现 |
|---|---|
| 高性能训练 | Megatron 处理繁重的梯度更新,而 Vime 将相同的模型权重传递给 vLLM 进行 rollout,保持双方同步。 |
| 灵活的数据生成 | 用户可以插入自定义生成函数(多轮对话、工具调用、沙盒环境等)。Data Buffer 抽象了提示词、生成的样本和 RL 奖励,因此可以表达任何工作流。 |
| 代理/长时程支持 | 内置多代理、异步和代码生成代理的钩子;示例包括在 Qwen‑3.8‑27B 上运行的编码代理 RL。 |
支持的模型(继承自上游 slime 项目)– Qwen 系列、DeepSeek V3 系列、LLaMA 3 以及其他与 Megatron 兼容的检查点。
架构概览
- 训练(Megatron) – 从 Data Buffer 读取批次,计算 RL 损失,并将更新后的权重同步到 rollout 侧。
- Rollout(vLLM + 路由器) – 启动一个或多个 vLLM 推理引擎,路由生成请求,并可以用自定义逻辑(工具使用、环境交互、奖励验证)进行包装。
- Data Buffer – 存储提示词、生成的轨迹和奖励的粘合剂;可以通过 Ray 的对象存储或“straw”共享存储后端持久化,以实现容错。
如何开始
- 遵循快速入门指南(环境设置、数据准备、启动脚本)。所有命令都由单个
train.py入口点驱动。 - 选择 rollout 后端(
--rollout-num-gpus-per-engine、--vllm-router-ip等)以及您需要的任何 Megatron 并行标志。 - 可选地添加自定义生成函数(
--custom-generate-function-path)以实现您自己的代理循环。 - 运行提供的示例 – 多代理、完全异步或 Qwen‑3.8 编码代理 RL 演示。
可扩展性
- 参数分为三组(Megatron、vLLM、Vime 特定),并全部在命令行中公开;源文件
vime/utils/arguments.py和vime/backends/vllm_utils/arguments.py列出了完整集合。 - 引擎部署支持异构 GPU 组、外部 rollout 服务器以及用于基于磁盘更新的增量权重同步,使得可以在与训练器不同的集群上运行 rollout。
- 测试与可靠性 – CPU 单元测试、GPU 端到端套件和 CI 管道防止静默 RL 错误;容错文档描述了如何使用 straw 传输从崩溃中恢复。
谁应该使用 Vime?
- 构建基于 RL 的 LLM 代理(工具使用机器人、代码生成助手、多代理模拟)的研究人员。
- 已经使用 Megatron 或 vLLM 并希望在不重写训练或推理栈的情况下获得开箱即用的 RL 循环的团队。
- 任何需要生产就绪、可配置的管道,能够在多个 GPU 上扩展,同时保持数据生成逻辑灵活的人。
更多信息
- 完整文档:https://docs.vllm.ai/projects/vime/en/latest/
- 源代码:https://github.com/vllm-project/vime
- 社区:Slack 频道和微信群(链接在 README 中)。
Vime 是一个真正的开源项目,专注于使用强化学习进行 LLM 后训练,并与 vLLM 生态系统紧密集成。
相关
- Dispatch
- 项目
- 项目
- Dispatch
- 项目