快速上手 1:在 Maniskill3 上使用 PPO 训练 VLA 模型#

本快速教程将带你使用 RLinf 框架,在 ManiSkill3 环境中训练视觉-语言-动作模型(VLA),包括 OpenVLA

环境简介#

ManiSkill3 是一个基于 GPU 加速的机器人研究仿真平台, 专注于复杂接触操作和具身智能任务。 该基准涵盖多个领域,包括机械臂、移动操作器、人形机器人以及灵巧手, 支持抓取、组装、绘图、移动等多种任务。

我们还针对 GPU 仿真器进行了系统级优化(详见 混合式模式)。

启动训练#

步骤 1:下载预训练模型

若使用 OpenVLA 模型,请运行以下命令:

# 下载 OpenVLA 预训练模型
hf download gen-robot/openvla-7b-rlvla-warmup \
--local-dir /path/to/model/openvla-7b-rlvla-warmup/

该模型已在论文中引用:paper

若使用 OpenVLA-OFT 模型,请运行以下命令:

# 下载 OpenVLA-OFT 预训练模型
hf download RLinf/Openvla-oft-SFT-libero10-trajall \
--local-dir /path/to/model/Openvla-oft-SFT-libero10-trajall/

# 下载在maniskill上lora微调过的检查点
hf download RLinf/RLinf-OpenVLAOFT-ManiSkill-Base-Lora \
--local-dir /path/to/model/oft-sft/lora_004000

步骤 2:下载 ManiSkill 资源文件

该步骤对在 ManiSkill3 上训练 OpenVLAOpenVLA-OFT 都是必需的。

cd <path_to_RLinf>/rlinf/envs/maniskill
# 为提升国内下载速度,可以设置:
# export HF_ENDPOINT=https://hf-mirror.com
hf download --repo-type dataset RLinf/maniskill_assets --local-dir ./assets

步骤 3:修改配置文件

在运行脚本之前,你需要根据模型和数据集的下载路径,修改 ./examples/embodiment/config/maniskill_ppo_openvla_quickstart.yaml 文件。具体而言,将以下配置更新为 gen-robot/openvla-7b-rlvla-warmup 检查点所在的路径。

  • rollout.model.model_path

  • actor.model.model_path

对于 OpenVLA-OFT,修改 maniskill_ppo_openvlaoft_quickstart.yaml 文件。将下列模型配置项设置为 RLinf/Openvla-oft-SFT-libero10-trajall 检查点所在的路径。同时,将 LoRA 路径设置为 RLinf/RLinf-OpenVLAOFT-ManiSkill-Base-Lora 检查点所在的路径。

  • rollout.model.model_path

  • actor.model.model_path

  • actor.model.lora_path

  • actor.model.is_lora: True

步骤 4:启动训练

完成上述配置文件修改后,运行以下命令启动训练:

bash examples/embodiment/run_embodiment.sh maniskill_ppo_openvla_quickstart

备注

如果你是通过 Docker 镜像安装的 RLinf (见 安装说明),请确保已切换到目标模型对应的 Python 环境。 默认环境为 openvla。 若使用 OpenVLA-OFT 或 openpi,请使用内置脚本 switch_env 切换环境: source switch_env openvla-oftsource switch_env openpi

如果你是通过自定义环境安装的 RLinf,请确保已安装对应模型的依赖,详见 安装说明

对于 OpenVLA-OFT

source switch_env openvla-oft
bash examples/embodiment/run_embodiment.sh maniskill_ppo_openvlaoft_quickstart

查看训练结果#

  • 最终模型与指标保存路径:./logs

  • 启动方式如下:

    tensorboard --host 0.0.0.0 --logdir path/to/tensorboard/
    

打开 TensorBoard 后,你会看到类似下图的界面。 建议重点关注以下指标:

  • rollout/env_info/return

  • rollout/env_info/success_once

备注

如果你想指定 GPU 使用数量, 可以修改配置文件中的参数 cluster.component_placement

根据实际资源将该项设置为 0-30-7 来使用 4/8 张 GPU。 查看 YAML 配置 以获取有关 Placement 配置的更详细说明。

cluster:
num_nodes: 1
component_placement:
   actor,env,rollout: 0-3