alibaba/ROLL
An Efficient and User-Friendly Scaling Library for Reinforcement Learning with Large Language Models
📚 什么是 ROLL?
ROLL(Reinforcement Learning Optimization for Large‑Scale Learning)是一个开源库,让您可以在数十或数百个 GPU 的规模下,使用强化学习(RL)技术训练大型语言模型(LLM)。它专注于两个主要使用案例:
| 使用案例 | 功能 | 典型任务 |
|---|---|---|
| RL 微调(RLVR) | 在 LLM 上执行 RL 风格的“奖励模型 → 策略”循环,用于数学、代码、推理、指令遵循等。 | 将 LLM 对齐人类偏好、改善推理、生成更高质量的答案 |
| 代理 RL | 训练 LLM 与环境(游戏、工具使用、对话)进行多轮交互。 | 多轮游戏、工具使用代理、交互式助手 |
此库专为大规模 GPU 集群(甚至 Ascend NPU)而建,并隐藏了分布式训练的工程复杂性。
🚀 核心功能(以平实语言说明)
| 功能 | 重要性 |
|---|---|
| 基于 Ray 的多角色架构 – RL 循环的不同部分(actor、learner、reward model、rollout workers)作为独立的 Ray actors 执行,因此您可以从单个节点扩展到数千个 GPU,而无需重写代码。 | |
| 后端灵活性 – 支持 Megatron‑Core、vLLM、SGLang、FSDP2 和 LoRA 的插件。选择最快的推理引擎(vLLM、SGLang)和最节省内存的训练策略(Megatron 5‑D 并行、FSDP2)。 | |
| 异步并行 rollout – Rollout(环境步骤)和奖励计算并行进行,保持 GPU 忙碌并减少空闲时间。 | |
| 丰富的 RL 算法库 – 现成的 PPO、GRPO、Reinforce++、TOPR、RAFT++、GSPO、StarPO、GiGPO 等实现,以及可配置的“策略”系统,用于奖励裁剪、归一化、优势估计等。 | |
| 代理专用工具 – 支持逐步(GiGPO)和轨迹级(StarPO)训练、工具使用环境,以及多轮交互的本地调试。 | |
| 硬件无关 – 可在 NVIDIA GPU、AMD GPU(提供 Docker 镜像)和阿里巴巴 Ascend NPU 上运行。 | |
| 可观测性 – 内置记录到 SwanLab、Weights & Biases、TensorBoard;自动跟踪每个领域和每个奖励的指标。 | |
| 检查点与恢复 – 自动保存模型、优化器和 Ray 状态,以便长时间任务可以暂停和继续。 |
🛠️ 如何开始(快速概述)
- 安装 – 遵循在线文档;AMD GPU 有 Docker 镜像可用,否则通过
pip和 Ray 安装。 - 选择后端 – 选择 Megatron‑Core 进行全面训练,或 vLLM/SGLang 进行 rollout 期间的快速推理。
- 编写配置 – ROLL 使用分层 YAML 配置系统。您指定模型(例如
qwen3.5-35B)、RL 算法(例如ppo)、资源映射,以及任何特殊选项(LoRA、FP8 rollout 等)。 - 运行管道 – 使用提供的脚本之一,例如:
类似的脚本存在于python run_rlvr.py --config examples/qwen2.5-7B-rlvr_megatron/rlvr_config.yamlagentic、distill和dpo管道。 - 监控 – 打开 WandB/TensorBoard 仪表板以查看奖励曲线、吞吐量和 GPU 使用率。
- 恢复 – 如果任务停止,重新运行相同命令;ROLL 将从最新的检查点继续。
📖 文档与社区
- 官方文档 – https://alibaba.github.io/ROLL/(安装、配置系统、调试指南、管道教程)。
- 论文与技术报告 – 多篇 arXiv 论文(例如 Asymmetric PPO、RollPacker、Agentic Crafting on Rock and Roll)描述了算法和性能提升。
- Slack/微信 – 存储库中的 QR 码用于社区聊天。
- GitHub – 问题积极分类;存储库有超过 200 颗星且频繁发布。
🎯 谁应该使用 ROLL?
- 研究实验室需要在大规模下实验 RL 基础的 LLM 对齐或多轮代理训练。
- 产业团队构建 LLM 驱动的助手、代码生成工具或游戏代理,需要大规模 RL 微调。
- 工程师想要现成的、Ray 驱动的框架,以便专注于奖励模型或环境,而不是分布式系统的管道。
📌 结论
ROLL 是一个生产级、高度可配置的 RL 框架,用于大型语言模型。它抽象化了分布式训练的重活,支持广泛的 RL 算法,并可在多种硬件后端上运行。如果您需要通过强化学习对齐或教导 LLM——特别是在多轮、工具使用或大规模设置中——ROLL 为您提供了坚实的开源基础。
相关
- 项目
- 项目
- 项目
- 项目
- 项目