コンテンツにスキップ

LIBERO評価

LIBEROは、4つのタスクスイート(Spatial、Object、Goal、Long Horizon)、合計40タスクからなるテーブルトップロボット操作ベンチマークです。Frankaロボットアームを使用して、VLAモデルの空間理解、物体認識、目標推論、長期操作の能力をテストします。

このドキュメントでは、LIBEROでの実験結果を再現するための手順を提供します。 評価プロセスは以下の2つの主要な部分で構成されています:

  1. LIBERO 環境と依存関係のセットアップ。
  2. starVLALIBERO の両方の環境でサービスを起動して評価を実行。

このワークフローは NVIDIA A100RTX 4090 GPUの両方で正常に動作することを確認しています。


0. チェックポイントのダウンロード

Section titled “0. チェックポイントのダウンロード”

コミュニティの評価を容易にするため、Hugging Faceに事前学習済みチェックポイントのコレクションを提供しています: StarVLA/bench-libero。LIBEROでの対応する結果は以下の表にまとめられています。

モデルStepsEpochsSpatialObjectGoalLongAvg
$\pi_0$+FAST--96.496.888.660.285.5
OpenVLA-OFT175K22397.698.497.994.597.1
$\pi_0$--96.898.895.885.294.1
GR00T-N1.520K20392.092.086.076.086.5
StarVLA-FAST (Qwen2.5-VL)30K9.5497.397.296.190.295.2
StarVLA-OFT (Qwen2.5-VL)30K9.5497.498.096.892.096.1
StarVLA-π (Qwen2.5-VL)30K9.5498.299.295.688.495.4
StarVLA-GR00T (Qwen2.5-VL)30K9.5497.898.294.690.895.4
StarVLA-FAST (Qwen3-VL)30K9.5497.397.496.390.695.4
StarVLA-OFT (Qwen3-VL)30K9.5497.898.696.293.896.6
StarVLA-π (Qwen3-VL)30K9.5498.899.695.888.495.7
StarVLA-GR00T (Qwen3-VL)30K9.5497.898.897.492.096.5

4つのスイートすべてに対して1つのポリシーをトレーニングしています。すべてのスコアは各タスクスイート500回の試行の平均です(10タスク x 50エピソード)。


環境をセットアップするには、まず公式のLIBEROリポジトリに従って、ベースの LIBERO 環境をインストールしてください。

よくある問題: LIBEROのデフォルトはPython 3.8ですが、3.8から3.10間の構文の変更は大きいです。Python 3.10を使用すると多くの問題を回避できることを確認しています

その後、LIBERO 環境内で以下の依存関係をインストールしてください:

Terminal window
pip install tyro matplotlib mediapy websockets msgpack
pip install numpy==1.24.4 # シミュレーション環境との互換性のためにnumpyをダウングレード

starVLAリポジトリのルートから2つの別々のターミナルを使用して評価を実行します。

  • starVLA環境: 推論サーバーを実行します。
  • LIBERO環境: シミュレーションを実行します。

ステップ1. サーバーの起動(starVLA環境)

Section titled “ステップ1. サーバーの起動(starVLA環境)”

最初のターミナルで starVLA conda環境をアクティベートして実行します:

Terminal window
bash examples/LIBERO/eval_files/run_policy_server.sh

注意: examples/LIBERO/eval_files/run_policy_server.sh で正しいチェックポイントパスを指定していることを確認してください。


ステップ2. シミュレーションの起動(LIBERO環境)

Section titled “ステップ2. シミュレーションの起動(LIBERO環境)”

2番目のターミナルで LIBERO conda環境をアクティベートして実行します:

Terminal window
bash examples/LIBERO/eval_files/eval_libero.sh

注意: eval_libero.sh で以下の変数を正しく設定してください:

変数意味
LIBERO_HOMELIBEROリポジトリクローンへのパス/path/to/LIBERO
LIBERO_PythonLIBERO conda環境のPythonパス$(which python)(LIBERO環境内)
your_ckptStarVLAチェックポイントパス./results/Checkpoints/.../steps_30000_pytorch_model.pt
unnorm_key非正規化統計を読み込むためのロボットタイプ名franka(LIBEROはFrankaアームを使用)

unnorm_key は、トレーニング中に保存された正規化統計(最小/最大値など)を読み込み、正規化されたモデル出力を実際の関節角度に変換するために使用されます。

各結果は、以下に示すように可視化用の動画も保存されます:

例


ステップ0: トレーニングデータセットのダウンロード

Section titled “ステップ0: トレーニングデータセットのダウンロード”

データセットを playground/Datasets/LEROBOT_LIBERO_DATA ディレクトリにダウンロードします:

$LEROBOT_LIBERO_DATA/subset/meta/modality.jsonmodality.json を配置してください。

以下を実行して素早く準備できます:

Terminal window
# DESTをデータを保存するディレクトリに設定
export DEST=/path/to/your/data/directory
bash examples/LIBERO/data_preparation.sh

ステップ1: トレーニングの開始

Section titled “ステップ1: トレーニングの開始”

必要なトレーニングファイルのほとんどは examples/LIBERO/train_files/ にまとめられています。

以下のコマンドでトレーニングを開始します:

Terminal window
bash examples/LIBERO/train_files/run_libero_train.sh

注意: examples/LIBERO/train_files/run_libero_train.sh で正しいパスを指定していることを確認してください。