Zum Inhalt springen

LIBERO-Evaluation

LIBERO ist ein Tischroboter-Manipulations-Benchmark mit 4 Aufgabensuiten (Spatial, Object, Goal, Long Horizon) und insgesamt 40 Aufgaben. Es testet VLA-Modelle auf raeumliches Verstaendnis, Objekterkennung, Zielschlussfolgerung und Langzeithorizont-Manipulation mit einem Franka-Roboterarm.

Dieses Dokument enthaelt Anweisungen zur Reproduktion unserer experimentellen Ergebnisse mit LIBERO. Der Evaluationsprozess besteht aus zwei Hauptteilen:

  1. Einrichten der LIBERO-Umgebung und Abhaengigkeiten.
  2. Ausfuehren der Evaluation durch Starten von Diensten in sowohl der starVLA- als auch der LIBERO-Umgebung.

Wir haben verifiziert, dass dieser Workflow erfolgreich auf NVIDIA A100 und RTX 4090 GPUs laeuft.


Wir stellen eine Sammlung vortrainierter Checkpoints auf Hugging Face bereit, um die Evaluation durch die Community zu erleichtern: 🤗 StarVLA/bench-libero. Die zugehoerigen Ergebnisse auf LIBERO sind in der folgenden Tabelle zusammengefasst.

ModellSchritteEpochenSpatialObjectGoalLongDurchschn.
$\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

Wir trainieren eine Policy fuer alle 4 Suiten. Alle Werte sind ueber 500 Durchlaeufe pro Aufgabensuite gemittelt (10 Aufgaben x 50 Episoden).


Um die Umgebung einzurichten, folgen Sie zunaechst dem offiziellen LIBERO-Repository, um die Basis-LIBERO-Umgebung zu installieren.

⚠️ Haeufiges Problem: LIBERO verwendet standardmaessig Python 3.8, aber die Syntaxaenderungen zwischen 3.8 und 3.10 sind erheblich. Wir haben verifiziert, dass Python 3.10 viele Probleme vermeidet.

Installieren Sie danach innerhalb der LIBERO-Umgebung die folgenden Abhaengigkeiten:

Terminal-Fenster
pip install tyro matplotlib mediapy websockets msgpack
pip install numpy==1.24.4 # Downgrade numpy fuer Kompatibilitaet mit der Simulationsumgebung

Fuehren Sie die Evaluation vom Stammverzeichnis des starVLA-Repositorys aus, unter Verwendung von zwei separaten Terminals, eines fuer jede Umgebung.

  • starVLA-Umgebung: fuehrt den Inferenz-Server aus.
  • LIBERO-Umgebung: fuehrt die Simulation aus.

Aktivieren Sie im ersten Terminal die starVLA-Conda-Umgebung und fuehren Sie aus:

Terminal-Fenster
bash examples/LIBERO/eval_files/run_policy_server.sh

⚠️ Hinweis: Stellen Sie bitte sicher, dass Sie den korrekten Checkpoint-Pfad in examples/LIBERO/eval_files/run_policy_server.sh angeben.


Aktivieren Sie im zweiten Terminal die LIBERO-Conda-Umgebung und fuehren Sie aus:

Terminal-Fenster
bash examples/LIBERO/eval_files/eval_libero.sh

⚠️ Hinweis: Stellen Sie sicher, dass Sie die folgenden Variablen in eval_libero.sh korrekt setzen:

VariableBedeutungBeispiel
LIBERO_HOMEPfad zu Ihrem LIBERO-Repository-Klon/path/to/LIBERO
LIBERO_PythonPython-Pfad aus der LIBERO-Conda-Umgebung$(which python) (innerhalb der LIBERO-Umgebung)
your_ckptStarVLA-Checkpoint-Pfad./results/Checkpoints/.../steps_30000_pytorch_model.pt
unnorm_keyRobotertypname zum Laden der Unnormalisierungsstatistikenfranka (LIBERO verwendet den Franka-Arm)

unnorm_key wird verwendet, um die waehrend des Trainings gespeicherten Normalisierungsstatistiken (Min/Max usw.) zu laden und normalisierte Modellausgaben zurueck in tatsaechliche Gelenkwinkel umzuwandeln.

Jedes Ergebnis speichert ausserdem ein Video zur Visualisierung, wie unten gezeigt:

Beispiel


Laden Sie die Datensaetze in das Verzeichnis playground/Datasets/LEROBOT_LIBERO_DATA herunter:

Und verschieben Sie modality.json in jedes $LEROBOT_LIBERO_DATA/subset/meta/modality.json.

Sie koennen dies schnell vorbereiten, indem Sie ausfuehren:

Terminal-Fenster
# Setzen Sie DEST auf das Verzeichnis, in dem Sie die Daten speichern moechten
export DEST=/path/to/your/data/directory
bash examples/LIBERO/data_preparation.sh

Die meisten erforderlichen Trainingsdateien sind in examples/LIBERO/train_files/ organisiert.

Fuehren Sie den folgenden Befehl aus, um das Training zu starten:

Terminal-Fenster
bash examples/LIBERO/train_files/run_libero_train.sh

⚠️ Hinweis: Stellen Sie bitte sicher, dass Sie den korrekten Pfad in examples/LIBERO/train_files/run_libero_train.sh angeben.