UniRL 文档
快速开始

安装

安装 UniRL 运行环境和可选文档站。

UniRL 要求 Python >=3.12,<3.14torch 不是基础依赖:它只通过两个互斥的引擎 extrasglangvllm)之一引入,这样每个引擎才能锁定各自的 CUDA 栈。你必须选择其中一个引擎 extra。

Python 包

推荐使用 uv,它会遵循 pyproject.toml[tool.uv])中声明的、按引擎锁定的 CUDA index:

# SGLang rollout 栈(torch 2.9.1+cu129, flash-attn-4)
uv sync --extra sglang --extra train --extra infer --extra eval

# 或 vLLM / vLLM-Omni 栈(torch 2.11.0+cu129, vllm 0.20.0)
uv sync --extra vllm --extra train --extra infer --extra eval

sglangvllm 被声明为冲突 extra,不能同时安装——按你的 rollout engine 选择其一。

如果环境已经提供了兼容的 torch/CUDA 构建,也可以用 pip

pip install -e ".[sglang,train,infer,eval]" --no-build-isolation

需要测试、lint 和 hooks 时加上 dev

uv sync --extra sglang --extra train --extra infer --extra eval --extra dev
pre-commit install

可选 Extra

pyproject.toml 是依赖声明的 source of truth。各 extra:

Extra用途
sglangSGLang rollout engine + 锁定的 torch/torchvision/torchaudio +cu129 栈和 flash-attn-4(Linux)
vllmvLLM + vLLM-Omni rollout engine + 锁定的 torch +cu129 栈(Linux)
trainWandB 和异步运行时依赖(wandbaiohttp
infer推理侧辅助依赖(accelerate
eval评估/reward 依赖(torchvisioneasyocr
devpytest、ruff、pre-commit

sglangvllm 互斥([tool.uv].conflicts)。在较旧 glibc 的 pod 上 vLLM wheel 常需从 sdist 现场构建;首次构建较慢(或设置 VLLM_USE_PRECOMPILED=1),uv 会按 pod 缓存。setup.py 仅兼容旧 editable install 工具。

各引擎 extra 已经 pin 了匹配的 flash-attnsglang extra pin 了 flash-attn-4>=4.0.0b4);除非环境需要特定构建,不要再单独 pip install flash-attn

可选依赖

mmcvmmdetection 默认不安装。只有 Geneval/OpenMMLab workflow 需要时,才按 Geneval MMCV 设置 安装。

如需把重型 reward model 放到独立 GPU 节点而非进程内运行,使用 unirl-reward-service/ 下的独立远程 reward service(它自带依赖和 README)。远程 backend 的接线见 奖励

可选的 rollout→trainer 数据面总线(TransferQueue / Mooncake)同样需要单独安装。见 TransferQueue 安装

文档站

Fumadocs 文档站放在 docs/,与 Python 包隔离:

cd docs
npm install
npm run dev

静态构建:

npm run build

构建产物位于 docs/out/

目录