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.safetensorsLIBERO 为 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 可加载;
-
冒烟测试通过后再运行批量评估;
-
评估结果可追溯到配置和模型版本。