LeRobot 文件
LIBERO
並獲得增強的文件體驗
開始使用
LIBERO
LIBERO 是一個專為研究終身機器人學習(lifelong robot learning)而設計的基準測試 — 其核心理念是機器人需要隨著時間的推移與使用者共同學習並適應,而不僅僅是預訓練一次。它提供了一套標準化的操作任務,重點在於知識遷移(knowledge transfer):評估機器人將已習得的知識應用於新情境的能力。透過對 LIBERO 進行評估,不同的演算法可以得到公平的比較,研究人員也能在此基礎上進行開發。
- 論文:Benchmarking Knowledge Transfer for Lifelong Robot Learning
- GitHub:Lifelong-Robot-Learning/LIBERO
- 專案網站:libero-project.github.io

可用任務
LIBERO 包含 五個任務套件,涵蓋 130 個任務,範圍從簡單的物體操作到複雜的多步驟場景。
| 套件 (Suite) | CLI 名稱 | 任務 (Tasks) | 說明 |
|---|---|---|---|
| LIBERO-Spatial | libero_spatial | 10 | 需要推理空間關係的任務 |
| LIBERO-Object | libero_object | 10 | 以操作不同物體為核心的任務 |
| LIBERO-Goal | libero_goal | 10 | 具備不同目標的目標導向任務 |
| LIBERO-90 | libero_90 | 90 | 來自 LIBERO-100 集合的短視界任務 |
| LIBERO-Long | libero_10 | 10 | 來自 LIBERO-100 集合的長視界任務 |
安裝
在依照 LeRobot 安裝說明進行操作後:
pip install -e ".[libero]"LIBERO 需要 Linux 環境(`sys_platform == 'linux'`)。LeRobot 使用 MuJoCo 進行模擬 — 請在訓練或評估前設定渲染後端。export MUJOCO_GL=egl # for headless servers (HPC, cloud)
評估
預設評估(推薦)
跨四個標準套件進行評估(每個任務 10 次執行 episodes)
lerobot-eval \
--policy.path="your-policy-id" \
--env.type=libero \
--env.task=libero_spatial,libero_object,libero_goal,libero_10 \
--eval.batch_size=1 \
--eval.n_episodes=10 \
--env.max_parallel_tasks=1單一套件評估
在一個 LIBERO 套件上進行評估
lerobot-eval \
--policy.path="your-policy-id" \
--env.type=libero \
--env.task=libero_object \
--eval.batch_size=2 \
--eval.n_episodes=3--env.task選擇套件(libero_object、libero_spatial等)。--env.task_ids限制為特定的任務索引([0]、[1,2,3]等)。若要執行套件中的所有任務,請省略此參數。--eval.batch_size控制並行執行的環境數量。--eval.n_episodes設定每個任務要執行的 episodes 數量。
多套件評估
透過傳入逗號分隔的列表,同時對多個套件進行策略基準測試。
lerobot-eval \
--policy.path="your-policy-id" \
--env.type=libero \
--env.task=libero_object,libero_spatial \
--eval.batch_size=1 \
--eval.n_episodes=2控制模式
LIBERO 支援兩種控制模式 — relative(預設)和 absolute。不同的 VLA 檢查點(checkpoints)是使用不同的動作參數化進行訓練的,因此請確保模式與您的策略相符。
--env.control_mode=relative # or "absolute"策略輸入與輸出
觀測值 (Observations)
observation.state— 8 維本體感覺特徵(末端執行器位置、軸角方位、夾爪位置 qpos)observation.images.image— 主攝影機視角(agentview_image),HWC uint8observation.images.image2— 手腕攝影機視角(robot0_eye_in_hand_image),HWC uint8
LeRobot 強制要求視覺特徵使用.images.*前綴。請確保您的策略配置input_features使用相同的命名鍵,並且您的資料集元數據鍵遵循此慣例。如果您的資料包含不同的鍵,則必須重新命名觀察值以符合策略預期的格式,因為命名鍵是編碼在標準化統計層內部的。
動作 (Actions)
- 連續控制在
Box(-1, 1, shape=(7,))中 — 6D 末端執行器增量 + 1D 夾爪
推薦評估 episodes
為了進行可重現的基準測試,請在所有四個標準套件(Spatial、Object、Goal、Long)中使用每個任務 10 個 episodes。這總共提供 400 個 episodes,符合已發表結果所使用的協議。
訓練
Dataset
我們提供了一個完全相容於 LeRobot 的預處理 LIBERO 資料集:
供參考,這是由 Physical Intelligence 發布的原始資料集:
訓練指令範例
lerobot-train \
--policy.type=smolvla \
--policy.repo_id=${HF_USER}/libero-test \
--policy.load_vlm_weights=true \
--dataset.repo_id=HuggingFaceVLA/libero \
--env.type=libero \
--env.task=libero_10 \
--output_dir=./outputs/ \
--steps=100000 \
--batch_size=4 \
--eval.batch_size=1 \
--eval.n_episodes=1 \
--eval_freq=1000重現已發表結果
我們在 LIBERO 基準測試上重現了 Pi0.5 的結果。我們採用 Physical Intelligence 的 LIBERO 基礎模型(pi05_libero),並使用 HuggingFace LIBERO 資料集,在 8 張 H100 GPU 上以 bfloat16 格式額外微調 6000 個步驟,batch size 設定為 256。
微調後的模型:lerobot/pi05_libero_finetuned
評估指令
lerobot-eval \ --output_dir=./eval_logs/ \ --env.type=libero \ --env.task=libero_spatial,libero_object,libero_goal,libero_10 \ --eval.batch_size=1 \ --eval.n_episodes=10 \ --policy.path=pi05_libero_finetuned \ --policy.n_action_steps=10 \ --env.max_parallel_tasks=1
我們設定 n_action_steps=10,與原始的 OpenPI 實作相符。
結果
| 模型 | LIBERO Spatial (空間) | LIBERO Object (物件) | LIBERO Goal (目標) | LIBERO 10 | 平均 |
|---|---|---|---|---|---|
| Pi0.5 (LeRobot) | 97.0 | 99.0 | 98.0 | 96.0 | 97.5 |
這些結果與 Physical Intelligence 報告的原始結果一致。
| 模型 | LIBERO Spatial (空間) | LIBERO Object (物件) | LIBERO Goal (目標) | LIBERO 10 | 平均 |
|---|---|---|---|---|---|
| Pi0.5 (OpenPI) | 98.8 | 98.2 | 98.0 | 92.4 | 96.85 |