PrimeIntellect-ai/prime-rl
GitHub: PrimeIntellect-ai/prime-rl
PRIME-RL 是一个支持千卡规模扩展的全异步强化学习训练框架,旨在高效完成大语言模型的端到端后训练。
Stars: 1702 | Forks: 363
PRIME-RL:大规模异步 RL 训练
## 概述
PRIME-RL 是一个用于大规模强化学习的框架。它的设计初衷是易于使用和修改,同时能够扩展到 1000+ GPU。以下是我们认为它与众不同的地方:
1. 全异步 RL,用于大规模高吞吐量的 agentic 训练。
2. 高性能:旨在使用 [FSDP2](https://docs.pytorch.org/tutorials/intermediate/FSDP_tutorial.html) 进行训练和使用 [vLLM](https://github.com/vllm-project/vllm) 进行推理,在 1000+ GPU 上训练 1T+ MoE 模型,支持 FP8 推理、PD 分离、EP 和 CP 并行等。
3. 通过 [环境中心](https://app.primeintellect.ai/dashboard/environments?ex_sort=most_stars) 原生集成 [`verifiers`](https://github.com/PrimeIntellect-ai/verifiers) 环境,包括对 SWE 和 agentic 环境的内置支持。
4. 端到端后训练:SFT、RL 训练和评估。
5. 支持 Slurm 和 Kubernetes 的多节点部署。
6. 对 VLMs(如 Qwen3-VL)的多模态支持。
7. 设计上易于修改、模块化且可扩展。
8. 针对前沿模型的一行 SLURM 部署 —— 例如 [`GLM-5` FP8 与 P/D 分离、`llm-d` 路由器和 Mooncake KV offload](examples/glm5_llmd/README.md)。
## 设置
### 前置条件
目前,您**需要至少一个 NVIDIA GPU 才能使用 PRIME-RL**。如果您还没有可用的 GPU,我们推荐您使用我们的[计算平台](https://app.primeintellect.ai),无论是租用用于开发、调试和小型消融实验的单个按需 GPU,还是[预留 1000+ GPU 集群](https://app.primeintellect.ai/dashboard/quotes)进行生产规模的训练,都能满足需求。
### 快速设置
使用单个命令设置 PRIME-RL。
```
curl -sSL https://raw.githubusercontent.com/PrimeIntellect-ai/prime-rl/main/scripts/install.sh | bash
```
手动设置
1. 克隆代码仓库
```
git clone https://github.com/PrimeIntellect-ai/prime-rl.git
cd prime-rl
```
2. 初始化子模块
```
git submodule update --init -- deps/verifiers deps/renderers deps/research-environments deps/pydantic-config
```
3. 安装 [uv](https://docs.astral.sh/uv/)
```
curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.local/bin/env
```
4. 从 lock 文件安装依赖项
```
uv sync --all-extras
```
4.1. 在 aarch64 主机上:为您的 GPU 从源代码构建 flash-attn
```
bash scripts/docker-arm64-post-install.sh
```
3.1. 可选:安装 Flash Attention 3(仅在 Hopper GPU 上,用于 flash_attention_3 attention backend)
```
uv pip install "flash-attn-3 @ git+https://github.com/Dao-AILab/flash-attention.git@main#subdirectory=hopper" --no-build-isolation
```
验证您的环境设置
1. 检查环境是否使用 Python 3.12
```
uv run python -V
```
2. 检查是否已安装 `flash-attn`
```
uv run python -c "import flash_attn"
```
3. 检查您是否能运行 SFT 训练器(*这需要 1 个 GPU*)
```
uv run sft @ configs/debug/sft/train.toml
```
4. 检查您是否能运行 RL 训练器(*这需要 1 个 GPU*)
```
uv run trainer @ configs/debug/rl/train.toml
```
5. 检查您是否能运行推理服务器(*这需要 1 个 GPU*)
```
uv run inference @ configs/debug/infer.toml
```
*请在后台保持推理服务器运行,以便进行后续步骤。*
5.1. 检查您是否能针对推理服务器运行 orchestrator
```
uv run orchestrator @ configs/debug/orch.toml
```
5.2. 检查您是否能针对推理服务器运行评估
```
uv run eval @ configs/debug/eval.toml
```
### 额外设置
1. 如果您想将运行记录到 [W&B](https://wandb.ai),请登录
```
uv run wandb login
# 或者设置 `export WANDB_API_KEY=...`
```
2. 如果您需要来自 [HuggingFace](https://huggingface.co) 的受限/私有模型或数据集,请登录
```
uv run hf auth login
# 或者设置 `export HF_TOKEN=...`
```
## 训练示例
我们在 [`examples`](examples) 目录中提供了端到端的训练示例,重点介绍了该框架的功能,并引导您完成训练自己模型的过程。
### 基础训练:1 到 8 个 GPU
1. [**反转文本**](examples/reverse_text/README.md):训练 `Qwen3-0.6B` 反转一小段文本。演示了微型规模的单轮 SFT 和 RL 训练。可以在单个消费级 GPU 上在几分钟内完成训练,非常适合初学者。
2. [**Wordle**](examples/wordle/README.md):训练 `Qwen3-1.7B` 玩 Wordle。这是一个有趣的多轮 SFT 和 RL 训练示例。可以在 2-4 个 H100 GPU 上在几个小时内完成训练。非常适合探索框架的多轮训练能力。
3. [**字母排序**](examples/alphabet_sort/README.md):训练 `Qwen3-4B-Instruct-2507` 按字母顺序对名称进行排序。演示了通过 LoRA 进行多轮 RL 训练而无需 SFT 预热。可以在单个 H100 GPU 上一个多小时的时间内完成训练。非常适合探索基于 LoRA 的训练。
4. [**Wiki 搜索**](examples/wiki_search/README.md):训练 `Qwen3-4B-Instruct-2507` 通过搜索维基百科来回答冷知识问题。演示了带有 Web 搜索工具使用的多轮交互。
5. [**Hendrycks 健全性检查**](examples/hendrycks_sanity/README.md):在 `DeepSeek-R1-Distill-Qwen-1.5B` 上使用 MATH 的过滤子集进行健全性检查实验,在该子集中模型已经能部分解决 20-80% 的问题。适用于算法消融研究。
### 高级训练:32 - 2048 个 GPU:
1. [**Qwen 3 30B - A3B 数学**](examples/qwen30b_math/README.md):训练 `Qwen3-30B-A3B` 解决困难的数学问题。
2. [**Qwen 3 30B - A3B SWE**](examples/qwen30b_swe/README.md):训练 `Qwen3-30B-A3B` 解决困难的 SWE 问题。
3. [**Intellect-3.1**](examples/Intellect-3.1/README.md):复现我们的 `INTELLECT-3.1` 训练运行。
4. [**MiniMax-M2.5 SWE**](examples/minimax_m2.5_swe/README.md):在 agentic SWE 任务上训练 `MiniMax-M2.5`。
5. [**高吞吐量 GLM-5**](examples/glm5_pd_disag/README.md):在 SWE 上使用 PD 分离和 FP8 推理训练 `GLM-5`。
6. [**高吞吐量 GLM-5 (llm-d)**](examples/glm5_llmd/README.md):一行 SLURM 部署带有 P/D 分离、`llm-d` 路由器和 Mooncake KV offload 的 `GLM-5` FP8 —— 这是运行 `GLM-5` 的更快方法。
## 文档
请查看 [文档](docs) 目录,获取有关如何使用 PRIME-RL 的深度指南。
- [**概述**](docs/overview.md) - 架构、安装以及可复制粘贴的端到端 RL 运行
- [**配置**](docs/configuration.md) - TOML 组合、CLI 覆盖、环境变量、验证
- [**训练**](docs/training.md) - RL、SFT、评估、checkpointing、可观测性、经验法则
- [**扩展**](docs/scaling.md) - 单 GPU 到多节点、FSDP/EP/CP、SLURM、基准测试
- [**算法**](docs/algorithms.md) - 异步/off-policy 训练、AIPO loss、优势和过滤器插件、轨迹合并
- [**高级**](docs/advanced.md) - 自定义建模、多模态训练、LoRA、多租户训练
- [**开发**](docs/development.md) - 测试套件、pre-commit hooks、添加新模型
### Pre-commit Hooks
请安装 [pre-commit](https://pre-commit.com) hooks 以确保您的代码格式正确。
```
uv run pre-commit install
```
### 测试
```
uv run pytest -v # everything
uv run pytest tests/unit -v # unit only
uv run pytest tests/integration -v # integration only
uv run pytest -v -m "not gpu" # CPU-only (inverse of the gpu marker)
```
## 许可证
本项目基于 Apache 2.0 许可证授权,详见 [许可证](LICENSE) 文件。
## 引用
如果您觉得我们的工作有用,欢迎使用以下方式进行引用
```
@misc{primeintellect2025prime-rl,
author = {Prime Intellect},
title = {PRIME-RL},
url = {https://github.com/PrimeIntellect-ai/prime-rl},
year = {2025}
}
```
标签:Yelp, 凭据扫描, 子域名突变, 逆向工具