LIBERO

LIBERO 是首期仿真支持范围。本页使用 Wall-OSS-0.5 和 LeRobot 格式 LIBERO 数据,完成环境搭建、训练配置、模型微调和仿真评估。LIBERO 的细分步骤作为页面正文呈现,不再展开为左侧三级目录。

环境搭建

先按“快速开始”安装 Wall-OSS-0.5 环境,再安装仿真依赖

pip install -r requirements-libero.txt
mkdir -p third_party
git clone https://github.com/Lifelong-Robot-Learning/LIBERO.git \
third_party/LIBERO

评估脚本会检查 LIBERO、robosuite、MuJoCo、PyOpenGL、BDDL、Gym 和 h5py。缺少依赖时应在模型加载前失败并给出安装提示。

libero 安装后首次初始化说明

import libero.libero 会在模块顶层检查配置文件,不是进某个函数才查。默认读 $LIBERO_CONFIG_PATH/config.yaml,没设这个变量就是 ~/. libero/config.yaml。文件不存在时,包会调 input()问数据集放到哪。脚本、torchrun、nohup、Cursor agent 这类非交互环境 stdin 直接是 EOF,于是报:

EOFError: EOF when reading a line

traceback 顶上全是 import,看起来像 import 包报错,其实只是在等键盘。

交互提示里敲 N 也不行。默认 datasets 会写成 <package>/../datasets,这个目录通常不存在。get_libero_path() 只打一行 [Warning]: ... path does not exist! 就继续,后续会因找不到路径而报错

正确做法:任何 import 之前先写好 yaml。 缺一个 get_libero_path() 会 assert。前四个必须指向 clone 出来的包;datasets 是 LIBERO 自己的 HDF5 演示数据根,Wall-X 的 LeRobot 训练不用它,评测也不读它,给个空目录即可。

assets: /path/to/LIBERO/libero/libero/assets
bddl_files: /path/to/LIBERO/libero/libero/bddl_files
benchmark_root: /path/to/LIBERO/libero/libero
datasets: /path/to/libero_sim
init_states: /path/to/LIBERO/libero/libero/init_files
下载 LIBERO 数据集
huggingface-cli download lerobot/libero \
  --repo-type dataset \
  --local-dir /path/to/libero_all
配置训练 YAML
cp workspace/example/libero.yml /path/to/my_libero_config.yml

替换核心路径:

model:
  config_path: /path/to/wall-oss-0.5/config.json
  processor_path: /path/to/Qwen2.5-VL-3B-Instruct
  pretrained_path: /path/to/Qwen2.5-VL-3B-Instruct

data:
  lerobot_config:
    repo_id: /path/to/libero_all
  norm_stats_path: /path/to/libero_all_norm_stats.json
  key_mappings:
    camera:
      observation.images.faceImg: face_view
      observation.images.rightImg: right_wrist_view
    state: observation.state
    action: action

checkpoint:
  save_path: /path/to/libero_training_output
  resume_from: /path/to/wall-oss-0.5/model.safetensors

LIBERO 为 7 维单臂动作。现有示例将动作补齐到 26 维:

task:
  dof_config:
    master_right_ee_cartesian_pos: 3
    master_right_ee_rotation: 3
    master_right_gripper: 1
    action_padding: 19

  ar_dof_config:
    master_right_ee_cartesian_pos: 3
    master_right_ee_rotation: 3
    master_right_gripper: 1
    action_padding: 19

  agent_pos_config:
    follow_right_ee_cartesian_pos: 3
    follow_right_ee_rotation: 3
    follow_right_gripper: 2
    action_padding: 18

  action_horizon: 10
  action_horizon_flow: 10
生成归一化统计
python scripts/compute_norm_stats.py \
  --train_config /path/to/my_libero_config.yml \
  --data_root /path/to/libero_all \
  --output_path /path/to/libero_all_norm_stats.json

执行后确认 data.norm_stats_path 与输出路径一致。

启动训练

见模型训练

仿真推理评估

常规批量评估:

CHECKPOINT_PATH=/path/to/checkpoint \
TRAIN_CONFIG_PATH=/path/to/my_libero_config.yml \
TASK_SUITE_NAME=libero_spatial \
NUM_TRIALS_PER_TASK=50 \
bash scripts/run_libero.sh

快速冒烟测试:

SMOKE=1 \
CHECKPOINT_PATH=/path/to/checkpoint \
bash scripts/run_libero.sh

环境变量:

  • CHECKPOINT_PATH:训练完成的 Checkpoint。

  • TRAIN_CONFIG_PATH:训练使用的 YAML。

  • TASK_SUITE_NAME:libero_spatial、libero_object、libero_goal 或 libero_10。

  • ALL_SUITES=1:依次运行四类标准任务套件。

  • TASK_INDICES:指定任务序号,如 0,1,2。

  • CUDA_ID:GPU 序号。

结果记录

至少保存:

  • 代码、模型、数据与配置版本;

  • Checkpoint 与评估任务套件;

  • 每个任务的 trial 数、成功数和失败类型;

  • 环境启动或依赖错误;

  • 推理耗时和显存;

  • 代表性成功/失败视频。

快速检查清单
  • Wall-OSS-0.5 与 Qwen 处理器权重完整;

  • LIBERO 数据集为 LeRobot 格式;

  • YAML 中所有本地路径已替换;

  • 7 维动作和 26 维预训练空间映射正确;

  • 归一化统计已生成并与配置一致;

  • Checkpoint 可加载;

  • 冒烟测试通过后再运行批量评估;

  • 评估结果可追溯到配置和模型版本。

本页内容