LeRobot documentation
VLABench
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).
- Makale: VLABench: Uzun Süreli Muhakemeye Dayalı Dil Koşullu Robotik Manipülasyon için Büyük Ölçekli Bir Çekirdek
- GitHub: OpenMOSS/VLABench
- Proje web sitesi: vlabench.github.io
- Önceden eğitilmiş politika:
lerobot/smolvla_vlabench
Mevcut görevler
VLABench, LeRobot’un --env.task yüzeyinde 43 görev kategorisini kapsayan iki görev paketi sunar:
| Suite | CLI adı | Görevler | Açıklama |
|---|---|---|---|
| Temel | primitive | 21 | Tekli / az sayıdaki beceri kombinasyonları (select, insert, physics QA) |
| Bileşik | composite | 22 | Ç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,compositeveyaprimitive,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.pyVLABench 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 uint8observation.images.second_image— ikinci kamera, 480×480 HWC uint8observation.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:
VLABench/vlabench_primitive_ft_lerobot_video— 5.000 bölüm, 128 görev, 480×480 görüntüler.VLABench/vlabench_composite_ft_lerobot_video— 5.977 bölüm, 167 görev, 224×224 görüntüler.
Ö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=10000Yayı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.