安装说明#

RLinf 支持多种后端引擎,用于训练和推理。目前支持以下配置:

  • MegatronSGLang/vLLM:用于训练 MATH 任务中的大语言模型(LLM)。

  • FSDPHuggingface:用于训练 LIBERO 和 ManiSkill3 环境下的 VLA 模型。

后端引擎#

  1. 训练引擎

    • FSDP:简单高效、适合初学者,兼容性强,使用便捷,支持原生 PyTorch 模块。

    • Megatron:为追求极致性能的开发者设计,支持多种并行配置,具备先进的训练速度和可扩展性。

  2. 推理引擎

    • SGLang/vLLM:成熟且广泛使用,具备许多高级功能和优化能力。

    • Huggingface:简单易用,配套 Huggingface 生态提供的原生 API。

硬件要求#

以下是经过充分测试的硬件配置:

组件

配置

GPU

每个节点 8 块 H100

CPU

每个节点 192 核心

内存

每个节点 1.8TB

网络

NVLink + RoCE / IB,带宽 3.2 Tbps

存储

单节点实验使用 1TB 本地存储
分布式实验使用 10TB 共享存储(NAS)

软件要求#

组件

版本

操作系统

Ubuntu 22.04

NVIDIA 驱动

535.183.06

CUDA

12.4

Docker

26.0.0

NVIDIA Container Toolkit

1.17.8

安装方式#

RLinf 提供两种安装方式。我们 推荐使用 Docker,因为这可以提供最快速、最可复现的环境。 如果你的系统无法使用 Docker 镜像,也可以选择在本地 Python 环境中手动安装。

安装方式1: Docker 镜像#

我们提供了两个官方镜像,分别针对不同后端配置进行了优化:

  • 基于Megatron + SGLang/vLLM的数学推理镜像

    • rlinf/rlinf:math-rlinf0.1-torch2.6.0-sglang0.4.6.post5-vllm0.8.5-megatron0.13.0-te2.1 (用于增强大语言模型在 MATH 任务中的推理能力)

  • 基于FSDP + Huggingface的具身智能镜像

    • rlinf/rlinf:agentic-rlinf0.1-torch2.6.0-openvla-openvlaoft-pi0 (适用于 OpenVLA/OpenVLA-OFT/OpenPI 模型)

确认适合你任务的镜像后,拉取镜像:

docker pull rlinf/rlinf:CHOSEN_IMAGE

然后启动容器:

警告

  1. 请确保使用 -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics 启动 docker,以启用 GPU 支持,尤其是具身实验中渲染所需的 graphics 功能。

  2. 请勿覆盖容器内的 /root/opt 目录(通过 docker run-v--volume),因为它们包含重要的资源文件和环境。如果你的平台一定会挂载 /root,请在启动容器后在容器内运行 link_assets 来恢复 /root 目录中的资源链接。

  3. 请避免更改 $HOME 环境变量(例如通过 docker run -e HOME=/new_home ),该变量默认应为 /root。ManiSkill 和其他工具依赖此路径查找需要的资源。如果您在镜像中运行脚本之前更改了 $HOME,请执行 link_assets 将资源重新链接到新的 $HOME

docker run -it --gpus all \
   --shm-size 100g \
   --net=host \
   --name rlinf \
   -e NVIDIA_DRIVER_CAPABILITIES=compute,utility,graphics \
   rlinf/rlinf:CHOSEN_IMAGE /bin/bash

进入容器后,克隆 RLinf 仓库:

git clone https://github.com/RLinf/RLinf.git
cd RLinf

具身智能镜像中包含多个 Python 虚拟环境(venv),位于 /opt/venv 目录下,分别对应不同模型,即 openvlaopenvla-oftopenpi。 默认环境设置为 openvla。 要切换到所需的 venv,可以使用内置脚本 switch_env

source switch_env <env_name>
# source switch_env openvla
# source switch_env openvla-oft
# source switch_env openpi

备注

link_assetsswitch_env 脚本是我们提供的 Docker 镜像中的内置工具。您可以在 /usr/local/bin 中找到它们。

小技巧

如果进行多节点训练,请将仓库克隆到共享存储路径,确保每个节点都能访问该代码。

安装方式2:UV 自定义环境#

如果你已经使用了 Docker 镜像,下面步骤可跳过。

我们推荐使用 uv 工具来安装所需的 Python 包。 您可以通过 pip 安装 uv

pip install --upgrade uv

安装完成后,你可以运行 requirements/install.sh 脚本安装目标实验所需的依赖。 该脚本通过 targetmodel 两个维度组织:

  • embodied target(具身智能相关),支持以下模型:

    • openvla

    • openvla-oft

    • openpi

    每个 embodied 模型还需要通过 --env 参数指定环境,例如 maniskill_liberobehaviormetaworld

  • reason target(推理 / Megatron 等相关)。

例如,要安装 OpenVLA + ManiSkill LIBERO 实验的依赖,可以运行:

备注

该脚本需要在 RLinf 仓库的根目录下运行。请确保不要在 requirements/ 目录下运行该脚本。

bash requirements/install.sh embodied --model openvla --env maniskill_libero

这将在当前路径下创建一个名为 .venv 的虚拟环境。 要激活该虚拟环境,可以使用以下命令:

source .venv/bin/activate

要退出虚拟环境,只需运行:

deactivate

如果你希望安装推理相关(Megatron + SGLang/vLLM)环境,可以运行:

bash requirements/install.sh reason

你也可以通过 --venv 参数覆盖默认虚拟环境目录,例如:

bash requirements/install.sh embodied --model openpi --env maniskill_libero --venv openpi-venv