安装
安装 UniRL 运行环境和可选文档站。
UniRL 要求 Python >=3.12,<3.14。两个 rollout engine 栈都使用 CUDA 13 /
PyTorch +cu130,但 vllm 与 sglang 锁定的 PyTorch 版本不同,并被声明为冲突
extra。必须把它们安装在不同虚拟环境中,不能在同一个环境里混装。
Python 包
pyproject.toml 是依赖事实源。根目录的 setup.py 和 requirements.txt 只是旧工具的
兼容快照,没有完整描述当前 engine/CUDA 栈。
# vLLM / vLLM-Omni
uv venv --python 3.12 --seed .venv
source .venv/bin/activate
uv pip install -e ".[vllm,train,infer]" --prerelease=allow
# SGLang,第 1 步:创建并激活另一个环境
deactivate
uv venv --python 3.12 --seed .venv-sglang
source .venv-sglang/bin/activateSGLang 栈会通过 causal-conv1d 编译 CUDA extension。PATH 上的 CUDA 12 nvcc
无法与 CUDA 13 PyTorch runtime 配合编译。激活 .venv-sglang 后,先安装 CUDA 13
compiler wheels,再设置编译环境,最后才安装带 SGLang extras 的 UniRL:
# SGLang,第 2 步:安装 CUDA 13 compiler toolchain
uv pip install "nvidia-cuda-nvcc==13.0.*" "nvidia-cuda-crt==13.0.*" \
"nvidia-nvvm==13.0.*" "nvidia-cuda-cccl==13.0.*" "nvidia-cuda-runtime==13.0.*"
# SGLang,第 3 步:选择该 toolchain 并限制并行编译数
export CUDA_HOME="$VIRTUAL_ENV/lib/python3.12/site-packages/nvidia/cu13"
export PATH="$CUDA_HOME/bin:$PATH"
export MAX_JOBS=4
# SGLang,第 4 步:安装 UniRL 和 engine 栈
uv pip install -e ".[sglang,train,infer]" --prerelease=allowdriver 535 主机还需要让 NVIDIA cuda-compat-13-0 forward-compat library 出现在
LD_LIBRARY_PATH。SGLang wheel 要求 glibc >=2.34;vLLM 栈要求 glibc >=2.28。
可选 Extra
| Extra | 用途 |
|---|---|
vllm | vLLM、vLLM-Omni 及其 PyTorch +cu130 栈 |
sglang | SGLang diffusion、FlashAttention 4 及其 PyTorch +cu130 栈 |
train | W&B、async runtime 支持和 math-verify |
infer | accelerate 等推理侧辅助依赖 |
eval | OCR reward 所需的 PaddlePaddle、PaddleOCR、torchvision 与 Levenshtein |
dataset-prep | datasets/ 转换器所需的 datasets、pandas、PyArrow、PyAV |
cosmos3 | Cosmos3 SFT recipe 所需的 diffusers>=0.39 |
veomni | 锁定版本的 VeOmni 分布式 backend |
fastvideo | 锁定 upstream commit 的 FastVideo |
dev | pytest、ruff、pre-commit |
只安装 recipe 实际需要的能力:
# OCR reward(已包含 PaddleOCR,无需另装 OCR 包)
uv pip install -e ".[vllm,train,infer,eval]" --prerelease=allow
# 数据转换;droid100 还需要来自 engine 环境的 torch
uv pip install -e ".[dataset-prep]"
# 受限模型/backend 示例
uv pip install -e ".[vllm,train,cosmos3]" --prerelease=allow
uv pip install -e ".[sglang,train,veomni,infer]" --prerelease=allow
uv pip install -e ".[vllm,train,fastvideo]" --prerelease=allow可选依赖
legacy GenEval/OpenMMLab scorer 必须放在独立的 Python 3.10 sidecar 中;它的 MMCV 栈不能装进核心 Python 3.12 / CUDA 13 环境。见 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/。