LeRobot documentation

VLABench

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.6.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

VLABench

VLABench, uzun vadeli akıl yürütme gerektiren dil koşullu robotik manipülasyon için büyük ölçekli bir referans testidir. Üst akım test seti, 2.000'den fazla nesne üzerinde 100 görev kategorisini kapsar ve robot zekâsının altı boyutunu değerlendirir: mesh & doku anlama, uzamsal akıl yürütme, dünya bilgisi aktarımı, anlamsal talimat anlama, fizik yasaları anlama ve uzun vadeli planlama. MuJoCo / dm_control üzerinde, Franka Panda 7-DOF kollu bir sistemle geliştirilmiştir. LeRobot, --env.task aracılığıyla bu görevlerden 43'ünü sunar (21 ilkel + 22 bileşik, aşağıdaki Mevcut görevler bölümüne bakınız).

VLABench benchmark overview

Mevcut görevler

VLABench, LeRobot’un --env.task yüzeyinde 43 görev kategorisini kapsayan iki görev paketi sunar:

SuiteCLI adıGörevlerAçıklama
Temelprimitive21Tekli / az sayıdaki beceri kombinasyonları (select, insert, physics QA)
Bileşikcomposite22Çok adımlı akıl yürütme ve uzun vadeli planlama (pişirme, yeniden düzenleme)

Temel görevler: select_fruit, select_toy, select_chemistry_tube, add_condiment, select_book, select_painting, select_drink, insert_flower, select_billiards, select_ingredient, select_mahjong, select_poker ve fiziksel akıl yürütme görevleri (density_qa, friction_qa, magnetism_qa, reflection_qa, simple_cuestick_usage, simple_seesaw_usage, sound_speed_qa, thermal_expansion_qa, weight_qa).

Bileşik görevler: cluster_billiards, cluster_book, cluster_drink, cluster_toy, cook_dishes, cool_drink, find_unseen_object, get_coffee, hammer_nail, heat_food, make_juice, play_mahjong, play_math_game, play_poker, play_snooker, rearrange_book, rearrange_chemistry_tube, set_dining_table, set_study_table, store_food, take_chemistry_experiment, use_seesaw_complex.

--env.task üç biçimi kabul eder:

  • tek bir görev adı (select_fruit)
  • virgülle ayrılmış bir liste (select_fruit,heat_food)
  • a suite kısayolu (primitive, composite veya primitive,composite)

Kurulum

VLABench PyPI'de yer almaz — tek dağıtım kanalı OpenMOSS/VLABench GitHub deposudur — bu nedenle LeRobot bir vlabench ek bileşeni sunmaz. VLABench'in ihtiyaç duyduğu MuJoCo / dm_control sabitlemeleriyle birlikte, düzenlenebilir bir klon olarak manuel olarak kurun ve ardından mesh varlıklarını alın:

# After following the standard LeRobot installation instructions.

git clone https://github.com/OpenMOSS/VLABench.git ~/VLABench
git clone https://github.com/motion-planning/rrt-algorithms.git ~/rrt-algorithms
pip install -e ~/VLABench -e ~/rrt-algorithms
pip install "mujoco==3.2.2" "dm-control==1.0.22" \
            open3d colorlog scikit-learn openai gdown

python ~/VLABench/scripts/download_assets.py
VLABench requires Linux (`sys_platform == 'linux'`) and Python 3.10+. Set the MuJoCo rendering backend before running:
export MUJOCO_GL=egl  # for headless servers (HPC, cloud)

Değerlendirme

Aşağıdaki tüm değerlendirme parçacıkları, CI’nin çalıştırdığı komutu yansıtır (bkz. .github/workflows/benchmark_tests.yml). --rename_map argümanı, VLABench’in image / second_image / wrist_image kamera anahtarlarını, yayınlanan smolvla_vlabench politikasının eğitiminde kullanılan üç kameralı (camera1 / camera2 / camera3) giriş düzenine eşler.

Tek görev değerlendirmesi (hızlı yineleme için önerilir)

lerobot-eval \
  --policy.path=lerobot/smolvla_vlabench \
  --env.type=vlabench \
  --env.task=select_fruit \
  --eval.batch_size=1 \
  --eval.n_episodes=10 \
  --eval.use_async_envs=false \
  --policy.device=cuda \
  '--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.second_image": "observation.images.camera2", "observation.images.wrist_image": "observation.images.camera3"}'

Çok görevli değerlendirme

Virgülle ayrılmış bir görev listesi geçin:

lerobot-eval \
  --policy.path=lerobot/smolvla_vlabench \
  --env.type=vlabench \
  --env.task=select_fruit,select_toy,add_condiment,heat_food \
  --eval.batch_size=1 \
  --eval.n_episodes=10 \
  --eval.use_async_envs=false \
  --policy.device=cuda \
  '--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.second_image": "observation.images.camera2", "observation.images.wrist_image": "observation.images.camera3"}'

Suite genelinde değerlendirme

Tüm bir test paketi (tüm 21 ilkel veya tüm 22 bileşik) çalıştırın:

lerobot-eval \
  --policy.path=lerobot/smolvla_vlabench \
  --env.type=vlabench \
  --env.task=primitive \
  --eval.batch_size=1 \
  --eval.n_episodes=10 \
  --eval.use_async_envs=false \
  --policy.device=cuda \
  --env.max_parallel_tasks=1 \
  '--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.second_image": "observation.images.camera2", "observation.images.wrist_image": "observation.images.camera3"}'

Veya her iki paket:

lerobot-eval \
  --policy.path=lerobot/smolvla_vlabench \
  --env.type=vlabench \
  --env.task=primitive,composite \
  --eval.batch_size=1 \
  --eval.n_episodes=10 \
  --eval.use_async_envs=false \
  --policy.device=cuda \
  --env.max_parallel_tasks=1 \
  '--rename_map={"observation.images.image": "observation.images.camera1", "observation.images.second_image": "observation.images.camera2", "observation.images.wrist_image": "observation.images.camera3"}'

Önerilen değerlendirme bölümleri

Tekrarlanabilir kıyaslamalar için görev başına 10 bölüm (tam ilkel seti için toplam 210, bileşik için 220). VLABench makalesindeki protokol ile uyumludur.

Politika girdileri ve çıktıları

Gözlemler:

  • observation.state — 7 boyutlu uç efektor durumu (konum xyz + Euler xyz + kavrama)
  • observation.images.image — ön kamera, 480×480 HWC uint8
  • observation.images.second_image — ikinci kamera, 480×480 HWC uint8
  • observation.images.wrist_image — bilek kamerası, 480×480 HWC uint8

Eylemler:

  • Box(-1, 1, shape=(7,)) içinde sürekli kontrol — 3B konum + 3B Euler yönelimi + 1B kavrama.

Eğitim

Veri Setleri

Hub'da LeRobot formatında önceden toplanmış VLABench veri setleri:

Örnek eğitim komutu

SmolVLA tabanını ilkel (primitive) takımı üzerinde ince ayarlayın:

lerobot-train \
  --policy.type=smolvla \
  --policy.repo_id=${HF_USER}/smolvla_vlabench_primitive \
  --policy.load_vlm_weights=true \
  --policy.push_to_hub=true \
  --dataset.repo_id=VLABench/vlabench_primitive_ft_lerobot_video \
  --env.type=vlabench \
  --env.task=select_fruit \
  --output_dir=./outputs/smolvla_vlabench_primitive \
  --steps=100000 \
  --batch_size=4 \
  --env_eval_freq=5000 \
  --eval.batch_size=1 \
  --eval.n_episodes=1 \
  --save_freq=10000

Yayınlanan sonuçların yeniden üretilmesi

Yayınlanan kontrol noktası lerobot/smolvla_vlabench, yukarıdaki primitive-suite veri setinde eğitilmiştir ve Single-task / Suite-wide komutlarıyla değerlendirilir. CI, benchmark'a dokunan her PR'da 10-primitive-task duman değerlendirmesi (her biri bir epizot) çalıştırır.

Update on GitHub