LeRobot documentation
FineART-VLA
FineART-VLA
FineART-VLA, Physical Intelligence'ın π0.5 modeli ve onun openpi uygulaması üzerine, LeRobot'un Pi05 politikası aracılığıyla inşa edilmiştir. Bu temeli, eğitilebilir bir PaliGemma dil başlığı ve dil üretimi ile eylem üretimini sırayla gerçekleştiren bir çalışma zamanı ile genişletir. Tek bir checkpoint, düşük seviyeli bir alt görevi tahmin edebilir, isteğe bağlı olarak belleği güncelleyebilir veya görsel soruları yanıtlayabilir ve akış eşleştirme eylem uzmanını bu metne göre koşullandırabilir.
Sadece görev koşullu eylemlere ihtiyacınız varsa Pi05'i kullanın. Politika, bir rollout sırasında ara dil üretmeli veya tüketmeliyse FineART-VLA'yi kullanın.
FineART-VLA'nın Pi05'ten farkı
| Yetenek | Pi05 | FineART-VLA |
|---|---|---|
| Eylem modeli | PaliGemma görme-dil öneki + Gemma eylem uzmanı | Aynı temel mimari |
| Dil başlığı | Çalışma zamanı üretimi için eğitilmemiştir | Yeniden etkinleştirildi ve metin çapraz entropisi ile eğitildi |
| Eylem koşullandırma | Bölüm görevi | Aktif düşük seviyeli alt görev ve normalize edilmiş robot durumu |
| Eğitim hedefleri | Flow-matching eylemleri | Flow eylemleri, tarif seçili metin ve isteğe bağlı FAST eylem jetonları |
| Veri seti gereksinimi | Standart görüntüler, durum, eylemler ve görev | Eğittiğiniz her dil yeteneği için aynı alanlar ve dil açıklamaları |
| Rollout | Doğrudan görevden eyleme politika | Hiyerarşik görev → alt görev → eylem döngüsü, isteğe bağlı bellek ve VQA ile |
FineART-VLA, Pi05 kontrol noktasından başlatılabilir. Politika mimarisi uyumlu kalmaya devam ederken FineART-VLA, kendi işleyicilerini oluşturur; böylece reçete etiketleri ve FAST etiketleri Pi05 işleyici yığını tarafından sessizce değiştirilmez.
Yükle
FineART-VLA bağımlılıklarıyla LeRobot'u yükleyin:
git clone https://github.com/huggingface/lerobot.git
cd lerobot
python -m venv .venv
source .venv/bin/activate
pip install -e ".[fineart_vla]"fineart_vla eklentisi, PaliGemma/FAST bağımlılıklarını içerir. Linux’ta CUDA GPU ile isteğe bağlı füzyonlu eğitim çekirdekleri için bunun yerine ".[fineart_vla_kernels]" yükleyin. Bu, FlashRT arka uçları tarafından kullanılan liger-kernel ve Hugging Face kernels paketini ekler. Liger, --policy.use_liger_kernels=true ile etkinleştirilir: tüm süreç için transformers’ın PaliGemma RoPE/GeGLU bileşenlerini yamalar, bu nedenle aynı süreçte yüklenen diğer PaliGemma tabanlı politikalar da füzyonlu çekirdeklerle çalışır.
Dil etiketli verileri hazırlayın
FineART-VLA, eğitim sırasında normal bir LeRobot veri setinden denetimli alt görevler çıkarmaz. Veri seti, seçilen tarifin kullandığı dil hedeflerini isteğe bağlı language_persistent ve language_events sütunlarında içermelidir.
En azından, her eğitim çerçevesinin etkin bir düşük seviyeli talimata sahip olması için sürekli bir subtask zaman çizelgesi ekleyin. memory, VQA, ara sözler ve konuşma eklemelerini yalnızca tarif bu yetenekleri eğitiyorsa ekleyin.
FineART-VLA, EO-1 gibi, varsayılan tarifini FineARTVLAConfig içinde barındırır. %30 oranında yüksek düzey görev → alt görev tahmini ve %70 oranında düşük düzey, alt görev koşullu eylem eğitimi örnekler. Her yapılandırma kendi tarif sözlüğünü barındırır ve kaydedilen checkpoint'ler bu sözlüğü çıkarım aşamasına taşır.
Varsayılanı geçersiz kılmak için --policy.recipe_path=/path/to/custom.yaml kullanın.
src/lerobot/configs/recipes/ içindeki paylaşılan tarifler main’in anlamlarını korur;
FineART-VLA bunların yerini almaz. Sadece hedef odaklı eğitim için,
${task} içeren tek bir düşük seviyeli kullanıcı mesajı içeren satır içi bir tarif kullanın veya
düz PI05 hattı için recipe=None ayarlayın ve metin/FAST kayıplarını devre dışı bırakın.
Varsayılan, çıkarımı π(a|o, subtask)·π(subtask|o, task) şeklinde çarpanlara ayırır. Özel bir ortak-dizi tarifi, görevi ve üretilen asistan aralığını eğitimle aynı nedensel işaretlerle işleyen eşleşen bir çalışma zamanı işlemci gerektirir. Eski politika tarafı ortak istem oluşturucusu artık rollout tarafından kullanılmamaktadır.
Rollout, planlama sıklığını (--autosteer_interval_s=3), etkileşimli komutları ve senkron/RTC zamanlamasını yönetir. FineART-VLA yalnızca sorgulandığında metin üretir; sıradan eylem çağrıları, çalışma zamanının haberi olmadan başka bir alt görev üretmez.
Birleşik bellek/alt görev çalışma alanları varsayılan değildir ve özel bir tarif ile bellek duyarlı bir çalışma zamanı denetleyici gerektirir. Olağan alt görev üretimi için memory_scratchpad=false değerini koruyun; eski çalışma alanı denetim noktaları, birleşik yanıtların doğrudan eylem denetimine geçirilmesine karşı açık korumalarını muhafaza eder.
Bu sütunları oluşturmak için lerobot-annotate kullanın. Depo, kaynak ve hedef veri setleriniz için düzenleyebileceğiniz bir Hugging Face Jobs başlatıcısı içerir. Yerel bir etiketleme çalıştırması için önce pip install -e ".[annotations]" komutunu çalıştırın:
HF_TOKEN=hf_... uv run python examples/annotations/run_hf_job.py
Uzun bir eğitim çalıştırmadan önce, birkaç bölümü inceleyin ve alt görevlerin zaman açısından doğru olup olmadığını ve tam gösterimi kapsayıp kapsamadığını doğrulayın. Üretim ve doğrulama için Annotation Pipeline, şema ve recipe resolver için Language Columns and Recipes bölümüne bakın.
If a dataset has no language columns, recipe rendering becomes a no-op and FineART-VLA falls back to the plain Pi05 prompt path. This is useful for compatibility but does not train the language planner.
FineART-VLA'yı eğitin
Bu örnek, kendi sonraki alt görevini tahmin etmek için FineART üzerinde orta düzeyde eğitilmiş kontrol noktası olan lerobot/fineart_vla_base üzerinden FineART-VLA’yı başlatır ve gömülü 70/30 alt görev tarifini eğitir. --policy.path, taban kontrol noktasının kendi yapılandırmasını yüklediğinden, ince ayar FAST token yerleşimini (fast_skip_tokens) ve tabanın eğitildiği tarifi korur; diğer --policy.* bayrakları bunu geçersiz kılar.
lerobot-train \
--dataset.repo_id=${HF_USER}/my_language_annotated_dataset \
--policy.path=lerobot/fineart_vla_base \
--policy.tokenizer_max_length=256 \
--policy.dtype=bfloat16 \
--policy.device=cuda \
--policy.freeze_vision_encoder=false \
--policy.gradient_checkpointing=true \
--batch_size=8 \
--steps=30000 \
--output_dir=outputs/fineart_vla \
--job_name=fineart_vla \
--trackio.enable=trueKüçük bir çalıştırma ile başlayın ve ölçeklendirmeden önce kayıpların Trackio panelinde beklenildiği gibi davrandığını doğrulayın.
Düz PI0.5 kontrol noktasından başlamak isterseniz, FineART-VLA’nın varsayılan yapılandırmasını koruyun ve --policy.pretrained_path parametresini buna yönlendirin: --policy.type=fineart_vla --policy.pretrained_path=lerobot/pi05_base. OpenPI biçimindeki ağırlıklar yüklenirken dönüştürülür ve metin ile FAST kayıpları FineART orta eğitiminden değil, PaliGemma’nın dil başlangıcından başlar.
Ana eğitim kontrolleri
| Seçenek | Varsayılan | Amaç |
|---|---|---|
policy.recipe_path | None | Gömülü 70/30 alt görev tarifinin isteğe bağlı olarak geçersiz kılınması |
policy.text_loss_weight | 1.0 | Dil başı çapraz entropi ağırlığı; 0 metin eğitimini devre dışı bırakır |
policy.flow_loss_weight | 10.0 | Sürekli eylem akışı-kayıp ağırlığı |
policy.enable_fast_action_loss | true | Ayrık FAST eylem-jetonu denetimi ekler |
policy.fast_action_loss_weight | 1.0 | FAST çapraz entropi ağırlığı |
policy.knowledge_insulation | true | VLM K/V yolu üzerinden aksiyon-kayıp gradyanlarını engeller |
policy.flow_num_repeats | 5 | Bağımsız gürültü azaltma hedefleri için tek bir VLM önekinin yeniden kullanılmasını sağlar |
policy.lm_head_lr_scale | 1.0 | Dil başlığı öğrenme hızını ölçekler; 1.0 taban hızını kullanır |
policy.fast_skip_tokens | 1152 | FAST kimlik ofseti; VQA ve FAST'ın asla çakışmaması için <seg>+<loc> atlanır |
fast_skip_tokens=1152, FAST kodlarını PaliGemma’nın <loc> aralığının altına yerleştirir.
openpi’nin pi0-FAST sözleşmesi 128’dir (FAST, <loc> kimliklerini işgal eder); bu değeri yalnızca bu şekilde eğitilmiş checkpoint’lerle ağırlık uyumluluğunu korumak için kullanın ve <loc> hedeflerinin FAST kodlarıyla gömme satırlarını paylaşacağı VQA tarifiyle birleştirmekten kaçının.
Kayıp ağırlıkları başlangıç noktalarıdır, veri setinden bağımsız sabitler değildir. Akış kaybını ve metin/FAST kayıplarını ayrı ayrı izleyin ve yalnızca toplam kayıptan bir checkpoint seçmek yerine üretilen alt görevleri inceleyin.
Veri setine özgü FAST belirleyici
Varsayılan olarak (--policy.auto_fit_fast_tokenizer=true), eğitim, --policy.action_tokenizer_name adlı FAST tokenizer’ı eğitim veri setine uydurur ve --policy.fast_tokenizer_cache_dir içinde önbelleğe alır. Bu, lerobot/fineart_vla_base gibi bir kontrol noktasından ince ayar yapılırken de geçerlidir; böylece FAST hedefleri, yeni robotun eylem dağılımıyla eşleşir. Uydurulan tokenizer, kontrol noktasının işlemci artefaktları içinde saklanır ve çıkarım sırasında yeniden kullanılır. action_tokenizer_name değerini değiştirmeden kullanmak için --policy.auto_fit_fast_tokenizer=false ayarlayın.
Eğitim performansı
FineART-VLA varsayılan olarak optimize edilmiş eğitim yollarını kullanır:
- Python'da küçük işlemleri yeniden oynatmak yerine, akış hedeflerini ve sonek projeksiyonlarını tekrarlayan partileri toplar;
- caches sabit eylem maskelerini ve her ileri geçişte bir kez RoPE konumlarını hesaplar;
- hedef şekil ve seyreltiklikten metin/FAST çapraz entropi uygulamasını seçer;
- bilgi yalıtımlı, yalnızca akış içeren toplularda matematiksel olarak ölü VLM/görüntü geri yayılımını atlar;
- gradyan denetimi etkinleştirildiğinde yerel, yeniden girmeyen SigLIP katman denetimi kullanır; ve
- Liger RoPE/GeGLU çekirdeklerini korurken SigLIP şekillerinde daha yavaş olan LayerNorm yamasından kaçınır.
Opsiyonel eğitim arka uçları varsayılan olarak devre dışıdır:
| Seçenek | Ne zaman denemelisiniz |
|---|---|
policy.use_flashrt_adarms=true | Desteklenen CUDA GPU'larında birleştirilmiş uyumlu RMSNorm ve kapılı artıklar |
policy.use_compiled_text_ce=true | Derlenmiş somutlaştırılmış logit CE varilleri |
policy.use_compiled_vision=true | Görüntü geçişinde gradyan yoksa yalnızca derlenmiş görüntü |
policy.use_flex_attention=true | Bilgi yalıtımı ve flow_num_repeats > 1 içeren profillendirilmiş CUDA kurulumları; aksi takdirde SDPA kullanılır |
policy.use_manual_attention=true | Maddi hale getirilmiş dikkatin daha hızlı olduğu açıkça profillenmiş şekiller |
policy.manual_attention_scope=action | Manuel dikkati eylem sorgularıyla sınırlar |
Her backend'i körü körüne etkinleştirmeyin. Flex ve manuel dikkat birbirini dışlar ve dikkat/AdaRMS alternatifleri bilgi yalıtımı gerektirir. En iyi benchmark yapılandırması, derlenmiş metin CE ve FlashRT AdaRMS'yi kullanırken Flex/manuel dikkat ve derlenmiş görme özelliklerini devre dışı bıraktı.
Çıkarım performansı
FineART-VLA'nın iki çıkarım döngüsü vardır ve her ikisi de pahalı çok modlu önekin tekrar tekrar kodlanmasını önler:
- Action denoising, görüntü/dil önekini bir kez kodlar, KV önbelleğini akış adımları arasında yeniden kullanır, eylem-son ek maskelerini cihaz üzerinde oluşturur ve önek önbelleğini klonlamak yerine geçici son ek K/V'lerini kırpma işlemi uygular. Zaman adımı zamanlamasını parça başına bir kez cihaz üzerinde oluşturur ve tarihsel zaman adımı aritmetiğini korur. Bu uygulama detayı, benchmark yapılmadıkça uçtan uca bir hızlanma sağlamaz.
- Dil çözümleme, otoregresif KV önbellekleme kullanır; bu nedenle her yeni jeton, tam öneki yeniden çalıştırmak yerine örneklenen jetonu önbelleğe alınmış görüntü/dil anahtarlarına karşı işler.
Ortak çalışma zamanı, dili ve eylemleri farklı hızlarda çalıştırır. Bir alt görev daha uzun süre geçerli kaldığında --autosteer_interval_s değerini artırın veya dil üretimi olmadan doğrudan bir talimat sağlamak için /subtask komutunu kullanın. Daha uzun bir aralık, üretim maliyetini azaltır ancak yeniden planlamayı da yavaşlatır.
Kontrol noktası çalıştır
Kontrol noktasıyla eşleşen robot/kamera yapılandırmasıyla lerobot-rollout kullanın, --interactive=true ve --autosteer_interval_s=3 parametrelerini ekleyin. --inference.type=sync veya --inference.type=rtc seçeneklerinden birini seçin. Etkileşimli terminalde /autosteer <goal> üretilen alt görevleri etkinleştirir, /subtask <instruction> manuel olarak bir tane sağlar ve /start robot kontrolünü başlatır. Tam donanım kurulumu, güvenlik davranışı ve kayıt kontrolleri için Etkileşimli dil kontrolü bölümüne bakın. Eski --sim, --mode ve --high_level_hz adaptör CLI seçenekleri bu arayüzün bir parçası değildir.
Sorun Giderme
- Büyük akış kaybı gradyanları: FineART-VLA, PyTorch SDPA'nın math arka ucunda FP32 dikkat aritmetiğiyle KI-off ortak önek/aksiyon dikkatini çalıştırır ve çıktısını model veri türüne geri dönüştürür (standart PI0.5, eager dikkatini korur). Bu, büyük sorgu/anahtar aktivasyonlarıyla düşük akış adımlarında gradyanları kararsızlaştırabilen düşük hassasiyetli dikkati önler. Mevcut kontrol noktaları ve normalizasyon katmanları değiştirilmez; KI-off, VLM anahtarları ve değerleri üzerinden eğitim yapmaya devam eder. Sadece sonlu toplam kayba güvenmek yerine, ayrı
flow_loss,text_lossve kırpma öncesi gradyan normunu izleyin. - Metin kaybı veya üretilen alt görevler yok: seçilen tarifenin örneklenen karelerdeki etiketlere bağlanabildiğini ve
policy.text_loss_weight > 0olduğunu doğrulayın. - Alt görevler mantıklı görünüyor ancak eylemler başarısız oluyor: alt görev sınırlarını, normalize edilmiş durum/eylem istatistiklerini ve düşük seviyeli tarif örneklerinin mevcut olduğunu doğrulayın.
- Metin, tekrarlanan veya konum jetonlarına dönüşür: metin-hedef kapsamını, dil-baş öğrenme hızını ve akış, FAST ile metin kayıpları arasındaki dengeyi inceleyin.
- Bellek yetersizliği: Önce batch boyutunu azaltın, ardından gradient checkpointing'i etkinleştirin. Kamera sayınızda bellek profillerini almadan derlenmiş veya alternatif dikkat (attention) backend'lerini etkinleştirmeyin.
- Yavaş dağıtım: eylem gecikmesini dil gecikmesinden ayırın, ardından
--autosteer_interval_s(yeni bir alt görevin ne sıklıkla üretildiği) ve--policy.num_inference_steps(akış gürültü azaltma adımları) parametrelerini ayarlayın.
Atıf
FineART-VLA veya FineART veri setini kullanıyorsanız, lütfen şu şekilde atıf yapın:
@misc{choghari2026fineart,
title = {FineART: Fine-Grained Annotated Robotic Trajectory Dataset and Vision-Language-Action Model for Bimanual Manipulation},
author = {Choghari, Jade and Kooijmans, Pepijn and Agarwal, Mansi and Ciftci, Yusuf Umut and Doriwala, Aseem and Weaver, Catherine and Sivapurapu, Mouli and Yang, Kai and Lee, Jackson and Wolf, Thomas and Mannam, Pragna},
year = {2026},
}FineART-VLA, Physical Intelligence'den π₀.₅ ve knowledge insulation üzerine inşa edilmiştir.
Lisans
Bu model, PI0.5 omurgasının uyarlandığı orijinal OpenPI deposu ile tutarlı olarak Apache 2.0 Lisansı'na uyar.
Update on GitHub