Dexbotic模型强化学习训练#

https://raw.githubusercontent.com/dexmal/dexbotic/main/resources/intro.png

Dexbotic 模型概览(图片来源:Dexbotic)。#

Dexbotic 是 Dexmal 推出的开源 VLA 工具箱。 RLinf 将 Dexbotic π0和 DM0 策略作为 LIBERO 动作生成模型,并使用 PPO 进行在线强化学习微调。

概览#

在 LIBERO 上用 PPO 微调 Dexbotic π0或 DM0。

环境

LIBERO

算法

PPO

任务

LIBERO Spatial · Object · Goal · 10

硬件

1 节点 · 8 GPU

你将完成: 安装依赖 → 下载 Dexbotic 检查点 → 运行 run_embodiment.sh → 观察 env/success_once
前置条件: 安装 · 兼容 LIBERO 的 Dexbotic 检查点(见下文步骤)。

任务#

根据环境、任务族以及配置或权重工件选择对应的模型页面。

环境

任务 / 套件

配置 / 权重

重点

LIBERO

LIBERO-Spatial

libero_spatial_ppo_dexbotic_*

在 spatial 操作任务上使用 Dexbotic pi0/dm0 策略。

LIBERO

LIBERO-Object

libero_object_ppo_dexbotic_pi0

在物体操作任务上使用 Dexbotic pi0。

LIBERO

LIBERO-Goal / LIBERO-10

libero_goal_ppo_dexbotic_pi0 / libero_10_ppo_dexbotic_pi0

覆盖目标条件和长程 LIBERO 套件。

观测与动作#

字段

说明

Observation

为 Dexbotic 策略打包的 LIBERO 相机流与本体状态。

Action

选定 Dexbotic 策略后端生成的分块连续动作,包括 flow-matching / flow-SDE 设置。

Reward

PPO 更新使用的 LIBERO 成功信号或仿真器奖励。

Prompt

策略 processor 消费的 LIBERO 自然语言指令。

安装#

首先,克隆 RLinf 仓库:

# 为提高国内下载速度,可以使用镜像:
# git clone https://ghfast.top/github.com/RLinf/RLinf.git
git clone https://github.com/RLinf/RLinf.git
cd RLinf

然后,使用下列两种方式之一准备依赖:预构建的 Docker 镜像(推荐)或自定义环境。 通用的安装流程(前置依赖、GPU 驱动、镜像内置的 switch_env 工具、镜像加速、常见问题排查) 在 安装说明 中统一说明;本方案中的命令仅在 Docker 镜像标签和 --env 取值上有所不同。

选项 1:Docker 镜像 — 镜像标签 agentic-rlinf0.3-maniskill_libero

docker run -it --rm --gpus all \
   --shm-size 20g \
   --network host \
   --name rlinf \
   -v .:/workspace/RLinf \
   rlinf/rlinf:agentic-rlinf0.3-maniskill_libero
   # 国内镜像:docker.1ms.run/rlinf/rlinf:agentic-rlinf0.3-maniskill_libero

# 在容器内切换到 Dexbotic 虚拟环境:
source switch_env dexbotic

选项 2:自定义环境 — 安装 --model dexbotic --env maniskill_libero 依赖组合:

# 国内用户可以添加 --use-mirror 加速下载。
bash requirements/install.sh embodied --model dexbotic --env maniskill_libero
source .venv/bin/activate

下载模型#

下载一个或两个 Dexbotic 检查点(任选一种方式):

# 方法 1:git clone
git lfs install
git clone https://huggingface.co/Dexmal/libero-db-pi0
git clone https://huggingface.co/Dexmal/DM0-libero

# 方法 2:huggingface-hub(国内用户可设置 HF_ENDPOINT=https://hf-mirror.com)
pip install huggingface-hub
huggingface-cli download Dexmal/libero-db-pi0 --local-dir libero-db-pi0
huggingface-cli download Dexmal/DM0-libero --local-dir DM0-libero

下载完成后,在配置 YAML 中指向该检查点——为 rollout 与 actor 两处模型设置相同的路径:

rollout:
   model:
      model_path: /path/to/downloaded-checkpoint
actor:
   model:
      model_path: /path/to/downloaded-checkpoint

运行#

每个配方都是 examples/embodiment/config/ 下的一个 YAML 配置:

任务套件

模型

配置

LIBERO Spatial

Dexbotic π₀

libero_spatial_ppo_dexbotic_pi0.yaml

LIBERO Spatial

DM0

libero_spatial_ppo_dexbotic_dm0.yaml

LIBERO Object

Dexbotic π₀

libero_object_ppo_dexbotic_pi0.yaml

LIBERO Goal

Dexbotic π₀

libero_goal_ppo_dexbotic_pi0.yaml

LIBERO 10

Dexbotic π₀

libero_10_ppo_dexbotic_pi0.yaml

使用 run_embodiment.sh 启动一个配置:

bash examples/embodiment/run_embodiment.sh libero_spatial_ppo_dexbotic_pi0

这个命令会:

  1. 加载 examples/embodiment/config/libero_spatial_ppo_dexbotic_pi0.yaml

  2. cluster.component_placement 构建 LIBERO actor、rollout 和 env worker。

  3. 运行 PPO,并把日志和检查点写入 runner.logger.log_path

进一步配置

  • π₀ 检查点路径 → 将 actor.model.model_pathrollout.model.model_path 设置为 libero-db-pi0

  • DM0 检查点路径 → 在 libero_spatial_ppo_dexbotic_dm0.yaml 中将两个 model path 设置为 DM0-libero

  • Action chunks → π₀ 使用 num_action_chunks: 5;DM0 使用 num_action_chunks: 10

  • 指标定义和日志后端 → 训练指标

  • 组件放置和吞吐调优 → 组件放置执行模式

独立评测#

对训练后的检查点运行 Dexbotic 的 LIBERO evaluator:

python toolkits/standalone_eval_scripts/dexbotic/libero_eval.py \
   --config_name db_pi0_libero \
   --pretrained_path /path/to/checkpoint \
   --task_suite_name libero_spatial \
   --num_trials_per_task 50 \
   --action_chunk 5 \
   --num_steps 10

如需评估 DM0,切换 evaluator 配置和 action chunk:

python toolkits/standalone_eval_scripts/dexbotic/libero_eval.py \
   --config_name dm0_libero \
   --pretrained_path /path/to/checkpoint \
   --task_suite_name libero_spatial \
   --num_trials_per_task 50 \
   --action_chunk 10 \
   --num_steps 10

也可以使用 RLinf 统一的 VLA 评估流程,详见 评估

可视化与结果#

启动 TensorBoard 实时观察训练:

tensorboard --logdir ./logs --port 6006

最值得关注的指标是 ``env/success_once`` —— 回合成功率。每个日志指标的含义见 训练指标