
SmolVLA, tek bir 24 GB kartta ince ayar yapılabilen 450 M parametreli bir VLA'dır. Gerçek lerobot 0.6.1 komutları, gerçek varsayılanlar, bir güne mal olan tuzaklar ve bir çalıştırmanın maliyeti.
SmolVLA tek ekranda
- •450 M parametre, yaklaşık 100 M'si akış eşleştirme eylem uzmanı. lerobot sadece bu uzmanı eğitir ve VLM'yi dondurulmuş halde tutar, bu yüzden tek bir karta sığar.
- •LeRobot'un hesaplama kılavuzu, smolvla grubunu AdamW ile 8'lik bir toplu işlemde yaklaşık 10 ila 16 GB tepe VRAM'e yerleştirir. Bu nedenle 24 GB.
- •Giriş noktası lerobot-train'dir. Haziran 2025 SmolVLA blog yazısı hala python lerobot/scripts/train.py çıktısını verir, bu artık mevcut olmayan bir yoldur. Aşağıdaki her şey lerobot 0.6.1'dir.
- •Kosinüs programı 30000 adımda azalacak şekilde önceden ayarlanmıştır. lerobot 0.6.1 bunu daha kısa bir çalışma için aşağı doğru yeniden ölçeklendirir ve kaydeder, ancak asla yukarı doğru değil: standart 100000 adımlık çalışma, 70000 adım boyunca 2.5e-6 tabanında biter.
- •Otuz bölüm, AY-Robots minimumudur, 24 GB'lık bir katmanda 80 GB'lık modeller için 4 ila 12 USD'ye karşılık bir çalıştırma için 1 ila 3 USD maliyetle.
Gerçek bir kol üzerinde görsel dil eylem modeli isteyen çoğu kişi donanım sınırında durur. GR00T N1.7 ve Pi0.5 her biri yaklaşık üç milyar parametreye sahiptir ve bir A100 80 GB veya bir H100 ister. Eğer sahip olduğunuz bir RTX 4090'lı bir oyun bilgisayarıysa, yolun sonu budur. SmolVLA bir istisnadır: 450 M parametre, LeRobot içinde, tek bir tüketici kartında ince ayar yapmak ve bir CPU'dan hizmet vermek için tasarlanmıştır.
Önce manuel yol: lerobot'u kurun, lerobot/smolvla_base kontrol noktasını çekin, gerçek komutu çalıştırın, çalışırken okuyun. Sonra platform yolu ve nerede yardımcı olmadığı.
SmolVLA nedir, kontrol edebileceğiniz sayılarla
SmolVLA, küçük bir görsel dil modeline entegre edilmiş bir akış eşleştirme politikasıdır. Omurgası SmolVLM2-500M-Video-Instruct'tır; makale, dil modelinin yalnızca ilk 16 katmanını kullanır, her kamera karesini görüntü döşemesi yerine piksel karıştırma ile 64 görsel belirteçle sınırlar ve her ikinci blokta çapraz dikkat ile kendi kendine dikkat katmanını birbirine karıştırır. Çıkarım maliyeti, sonradan akla gelen bir şey değil, bir tasarım kısıtlamasıydı.
| Özellik | Değer | Kaynak |
|---|---|---|
| Toplam parametre | yaklaşık 450 M | makale |
| Eylem uzmanı | yaklaşık 100 M, akış eşleştirme | makale |
| VLM omurgası | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| Kullanılan VLM katmanları | dil modelinin ilk 16'sı | num_vlm_layers = 16 |
| Kare başına görsel belirteç | 64, piksel karıştırma, döşeme yok | makale |
| Ön eğitim | 481 topluluk veri kümesi, 22.9 K bölüm, 10.6 M kare; 4 GPU'da global yığın 256 ile 200000 adım | makale |
Kıyaslamalar, insanların neden 450 M'lik bir modelle uğraştığını açıklıyor. LIBERO'da, 7 B'lik OpenVLA için 76.5'e ve 3.3 B'lik robotik ön eğitimli Pi0 için 86.0'a karşı ortalama %87.3 başarı elde eder; Meta-World'de ise 47.9'a karşı 57.3. Gerçek SO-100 donanımında, çok görevli eğitim, alma ve yerleştirmede %75, istiflemede %90, sıralamada %70 başarı sağlayarak ortalama %78.3 elde ederken, ACT görev başına eğitilmiş ACT ortalama %48.3 başarı elde etti. Aynı satırlar, SmolVLA arena girişi ve ACT ile SmolVLA karşılaştırması içindeki her yayınlanmış VLA'nın yanında yer almaktadır.
SmolVLA her konuda 3 B'lik bir modelden daha iyi değildir. Makalenin kendi SO-101 tablosu bunu gösteriyor: dağılım içinde %90 başarı, dağılım dışında %50 başarı, hiç ön eğitim almadığı bir platformda. İddia ettiği ve desteklediği şey ise, Pi0'a kıyasla %40 daha hızlı ve 6 kat daha az bellek kullanarak eğitim yapmasıdır.
Neden 24 GB'lık bir kart ilk çalıştırma için doğru seçimdir
LeRobot, bu amaçla depodaki en faydalı sayfa olan bir hesaplama boyutlandırma kılavuzu sunar. Politikaları omurga boyutuna göre gruplandırır ve lerobot varsayılanı olan AdamW ile 8'lik bir toplu iş boyutunda ölçülen her grup için bir VRAM zarfı verir. Yalnızca optimize edici durumu, çıplak bir ileri ve geri geçişe göre yüzde 30 ila 100 ekler, bu nedenle bunlar yalnızca ağırlık rakamları değildir.
| Grup | Politikalar | En Yüksek VRAM (toplu iş 8, AdamW) | Başlangıç GPU'ları |
|---|---|---|---|
| Hafif BC | act, vqbet, tdmpc | about 2 to 6 GB | RTX 3060, L4 |
| Difüzyon | diffusion, multi_task_dit | about 8 to 14 GB | RTX 4070+, L4 |
| Küçük VLA | smolvla | about 10 to 16 GB | RTX 4080+, L4, A10G |
| Büyük VLA | pi0, pi0_fast, pi05, xvla, wall_x | about 24 to 40 GB | A100 40 GB+ |
| Çok Modlu | groot, eo1 | about 24 to 40 GB | A100 40 GB+ |
Sekiz toplu iş boyutunda on ila on altı gigabayt argümandır: 24 GB'lık bir kart buna ek olarak veri yükleyiciyi de barındırır. AY-Robots, SmolVLA'yı RTX 4090 veya herhangi bir 24 GB'lık karta, minimum 30 bölüm, LeRobot v3.0 veri ile, eylem adımı başına 245 ms olarak yerleştirir. Kiralanan bu kart, saatte 0.30 ila 0.60 USD'den 2 ila 5 saat, yani yaklaşık 1 ila 3 USD'ye bir ince ayar çalıştırması demektir; GR00T ve Pi0.5'in ihtiyaç duyduğu 80 GB'lık katmanda ise 4 ila 12 USD'ye mal olur (fiyatlandırma). Başarısız bir SmolVLA çalıştırması bir kahve parasıdır; başarısız bir GR00T çalıştırması ise öğle yemeği.

- Zaten sahip olabileceğiniz donanıma uyar: batch 8'de yaklaşık 10 ila 16 GB.
- Boşa giden bir çalışma saatlere ve tek haneli dolarlara mal olur, bu nedenle veri seti hakkında yanılmayı göze alabilirsiniz.
- Lerobot etiketi altında paylaşılan topluluk veri setleri üzerinde önceden eğitilmiştir, gerçek SO-100 ve SO-101 sonuçlarıyla.
- Lerobot'un kendisinde yaşar: satıcı deposu yok ve smolvla_base kısıtlı değil.
- 450 M hala 450 M'dir: dağıtım dışı başarı, makalenin SO-101 tablosunda yüzde 90'dan yüzde 50'ye düşer.
- LeRobot v3.0 verisi istiyor; bir v2.1 kaydının dönüştürülmesi gerekiyor (dataset rejected v3).
- Eylem adımı başına 245 ms, reaktif değil, yetkin bir alma ve yerleştirme denetleyicisidir.
- Belgelerdeki örnek, bir A100 üzerinde batch 64 çalıştırır; 24 GB'ta batch'i gerçek zamanla takas edersiniz.
Adım 0: Çalışmayı bayraklar değil, veri seti belirler
Kayıt kötüyse aşağıdaki hiçbir şeyin önemi yoktur. LeRobot SmolVLA sayfası açıkça belirtiyor: referans veri seti 5 küp pozisyonunda 50 bölümden oluşuyordu, pozisyon başına 10, ve aynı görev 25 bölümde kötü performans gösterdi. Varyasyon başına tekrar genelleşir, ham bölüm sayısı genelleşmez. Hiç kayıt yapmadınız mı? Şuradan başlayın: ilk veri setinizi kaydedin, ile masaüstü istemcisi, bir teleoperasyon oturumundan LeRobot formatında yazar veya veri seti dizininden birini ödünç alın.
- AY-Robots üzerinde en az 30 bölüm, LeRobot referans tarifi için yaklaşık 50.
- Dağıtım sırasında beklediğiniz her varyasyon, birkaç kez tekrarlanmış.
- Kayıt ve dağıtım zamanında aynı şekilde yazılmış tek bir görev dizisi. Model bu metne göre koşullandırılır.
- Sabit kameralar. Kayıt ve dağıtım arasında hareket ettirilen bir kamera, temiz bir kayıp eğrisinin hareketsiz bir kol vermesinin en yaygın nedenidir.
- Hiç eğitmediğiniz, ayrılmış bir varyasyon, böylece karşı test edebileceğiniz dürüst bir şeye sahip olursunuz.
SmolVLA, Pi0.5 ve ACT LeRobot v3.0 istiyor. GR00T N1.7 ve N1.5 ise v2.0 veya v2.1 istiyor ve yükleyicileri v3.0'da çöküyor. Bir kez kaydedin, modelleri daha sonra karşılaştırmayı planlayın ve bir şekilde dönüştürme yapmanız gerekecek: veri kümesi v3'ü reddetti.
# v2.1 -> v3.0: aggregates per-episode files into shards and writes the episode offsets
python -m lerobot.scripts.convert_dataset_v21_to_v30 --repo-id=${HF_USER}/so100_pick_placeDaha fazlası için yüksek kaliteli VLA eğitim verisi nasıl toplanır. Kısa versiyonu: Kasıtlı varyasyon içeren tek bir görevin 30 ila 50 temiz bölümü, üç görevin 200 özensiz bölümünü, hiçbir hiperparametrenin kapatamayacağı bir farkla yener.
lerobot 0.6.1 Kurulumu
# LeRobot needs Python 3.12 or newer as of 0.6.x
conda create -y -n lerobot python=3.12
conda activate lerobot
# TorchCodec decodes the dataset videos and wants ffmpeg
conda install ffmpeg -c conda-forge
# Base package is deliberately thin; extras pull the rest
pip install 'lerobot[smolvla,training,core_scripts]'
# Sanity check: prints the lerobot version, the GPU torch sees, and the console scripts you got
lerobot-infoTemel lerobot kurulumu incedir ve ağır bağımlılıkları ek paketlerin arkasına gizler: smolvla transformers, num2words ve accelerate ekler, training veri kümesi yığınını ve wandb'yi, core_scripts donanım ve görselleştirme bağımlılıklarını ekler. Linux'ta kurulum yolu aynı zamanda CUDA tekerleğinizi de belirler: PyPI varsayılanı, sürücü tabanı 580.65 olan bir cu130 tekerleğidir, bu nedenle daha eski bir sürücüde önce cu128 dizininden torch'u, ardından lerobot'u kurun.
--policy.path=lerobot/smolvla_base önceden eğitilmiş 450 M kontrol noktasını yükler ve ince ayar yapar. --policy.type=smolvla yeni bir SmolVLA oluşturur ve yapılandırma varsayılanı olan load_vlm_weights = False, siz istemedikçe SmolVLM2 omurga ağırlıklarını bile çekmediği anlamına gelir. Yanlış yaparsanız, çalışma sorunsuz bir şekilde eğitilir, aynı maliyete sahip olur ve aktarılabilir hiçbir şey öğrenmez.
Eğitim çalıştırması, komut komut
- 1Hub'a Karşı Kimlik Doğrulama
Temel kontrol noktası Hub'dan gelir ve veri setiniz de muhtemelen oradadır.
bashhf auth login - 2Seçenekleri Bir Kez Okuyun
Pipeline ve politika yapılandırmasının her alanı bir bayraktır. Kaynağa dalmadan önce göz gezdirin.
bashlerobot-train --help - 3İnce Ayarı Başlatın
Belgelerdeki örnek, tek bir A100 üzerinde 64'lük bir parti çalıştırır; hesaplama kılavuzunun kendi A100 40 GB'lık referansı 16'lık bir partidir ve 8, 24 GB'lık eşdeğeridir. Burada bilerek bir zamanlayıcı bayrağı yok, aşağıya bakın.
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/so100_pick_place \ --batch_size=8 \ --steps=20000 \ --save_freq=2000 \ --log_freq=200 \ --seed=1000 \ --output_dir=outputs/train/smolvla_pick_place \ --job_name=smolvla_pick_place \ --policy.device=cuda \ --wandb.enable=true - 4Sadece Kaybı Değil, Log Satırını Okuyun
Her --log_freq adımında lerobot, loss, grdn, lr, updt_s, data_s, smp/s ve CUDA'da mem_gb değerlerini yazdırır. mem_gb, partinin sığıp sığmadığını, lr, zamanlamanın azalıp azalmadığını ve data_s'nin updt_s'ye yaklaşması, veri yükleyicinin darboğaz olduğunu, GPU'nun olmadığını gösterir.
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5Karşılaştırabileceğiniz Kontrol Noktalarını Toplayın
save_freq varsayılan olarak 20000'dir, bu nedenle 20000 adımlık bir çalıştırma tek bir kontrol noktası bırakır ve karşılaştıracak hiçbir şey olmaz. 2000 olarak ayarlayın. Hub'a göndermek için --policy.repo_id gereklidir.
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6Makine Ölürse Devam Edin
--config_path'ı kontrol noktasının yanındaki train_config.json dosyasına yönlendirin. lerobot, devam etmediğiniz sürece mevcut bir output_dir'e başlamayı reddeder, bu nedenle bir çalıştırmayı yanlışlıkla üzerine yazamazsınız.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Sonucu Gerçekten Değiştiren Bayraklar
| Bayrak | Ne İşe Yarar | 24 GB'ta |
|---|---|---|
| --batch_size | Adım başına örnekler, VRAM'de kabaca doğrusal | 4 to 8 |
| --steps | Toplam optimize edici adımları | 20000 first pass |
| --policy.scheduler_decay_steps | Kosinüs bozunma uzunluğu, ön ayarlı 30000 | Sadece 30000'in üzerinde etkili |
| --policy.use_amp | Karışık hassasiyet; SmolVLA'nın dtype alanı yok | Bellek kısıtlı olduğunda true |
| --num_workers | Veri yükleyici süreçleri, varsayılan 4 | data_s yükselmeyi durdurana kadar artırın |
| --dataset.eval_split | Görev başına ayrılan bölüm oranı | 0.1, with --eval_steps |
| --policy.freeze_vision_encoder | Görsel kuleyi dondurulmuş tutar | true on 24 GB |
| --policy.train_expert_only | Sadece ~100 M uzman gradyan alır | Önce true |
SmolVLA bir kosinüs zamanlaması ön ayarlar: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Eski tavsiyeler, 20000 adımlık bir çalışmanın bu nedenle bozunma ortasında durduğunu belirtir. 0.6.1'de durum böyle değildir: `CosineDecayWithWarmupSchedulerConfig.build()`'e `--steps` verilir ve `num_decay_steps` altında her ikisini de yeniden ölçeklendirir; ısınmayı 1000'den 666'ya, bozunmayı ise 30000'den 20000'e getirir ve bunu yaparken Auto-scaling LR scheduler yazdırır. Asla yukarı doğru yeniden ölçeklendirmez: bozunma `min(current_step, decay_steps)` ile sınırlandırılır, bu nedenle varsayılan `--steps=100000`, 30000. adımdan sona kadar, yani çalışmanın yüzde 70'i boyunca tabanda kalır. Sadece bu uzun taraf hala `--policy.scheduler_decay_steps`'e ihtiyaç duyar. `lr` sütunu kontrol etmeniz gereken yerdir.
Hiçbir şeye dokunmazsanız devraldığınız varsayılanlar
Bir ilke yapılandırması lerobot'ta kendi optimize edici ve zamanlayıcı ön ayarını taşır ve eğer use_policy_training_preset=false ayarlamazsanız bu ön ayarlar geçerli olur. SmolVLA eğitimi hakkında insanların sorduğu soruların yarısı, varlığından haberdar olmadıkları bir varsayılan tarafından yanıtlanır.
| Ayar | lerobot 0.6.1'deki Varsayılan | Tanımlandığı Yer |
|---|---|---|
| chunk_size / n_action_steps | 50 / 50 | SmolVLAConfig |
| Adım sayısı (akış eşleştirme gürültü giderme) | 10 | SmolVLAConfig |
| optimizer_lr | 1e-4 | SmolVLAConfig |
| scheduler_warmup_steps | 1000 | SmolVLAConfig |
| scheduler_decay_steps | 30000 | SmolVLAConfig |
| scheduler_decay_lr | 2.5e-6 | SmolVLAConfig |
| freeze_vision_encoder | true | SmolVLAConfig |
| train_expert_only | true | SmolVLAConfig |
| batch_size / steps | 8 / 100000 | TrainPipelineConfig |
| seed / save_freq / num_workers | 1000 / 20000 / 4 | TrainPipelineConfig |
İnsanları şaşırtan iki satır şunlardır: freeze_vision_encoder ve train_expert_only, ikisi de doğru. Varsayılan olarak yaklaşık 100 M parametre eğitirsiniz, 450 M değil, bu yüzden 24 GB'a sığar. LeRobot'un dört GPU'lu H100 kümesindeki kendi referans çalışması her ikisini de yanlış yapar; tek bir 24 GB kartta bu, çalışan bir çalıştırmayı dönüştürür.
Bellek sınırlı olduğunuzda rehberin tavsiyesi, toplu iş boyutunu düşürmek ve etkili toplu işi geri kazanmak için gradyan birikimi kullanmaktır. lerobot 0.6.1'de gradyan birikimi yoktur: TrainPipelineConfig böyle bir alana sahip değildir ve bu dize yayınlanan pakette hiçbir yerde görünmez. AY-Robots formu SmolVLA için 8'lik bir gradyan birikimi değeri gösterir ve bunu da uygulamaz. 24 GB'taki kaldıraçlarınız şunlardır: --batch_size, iki dondurma varsayılanı ve --policy.use_amp.
Çalışma ne kadar sürer ve kaç adım yeterlidir
LeRobot, yaklaşık 50 bölümlük bir veri kümesi üzerinde beş dönem için, 30 fps'de yaklaşık 45000 karelik gerçek zamanlı referanslar yayınlar. Belgeler, büyüklük sırası rakamları olduğunu söylüyor, ancak bunlar bir saat beklemekle bir gün beklemek arasındaki farktır.
| Kurulum | Politika | Parti | Gerçek süre |
|---|---|---|---|
| Single L4 / A10G (24 GB) | smolvla | 4 | yaklaşık 3 ila 6 sa |
| Single A100 40 GB | smolvla | 16 | yaklaşık 1 ila 2 sa |
| 4 x H100 80 GB with accelerate | smolvla | 32 | yaklaşık 1 ila 2 sa |
| Single RTX 4090 / RTX 3090 (24 GB) | act | 8 | yaklaşık 30 ila 60 dk |
Kural, sabit bir adım sayısı değil, veri kümesi üzerinde 5 ila 10 epoch'tur: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Belgelerin işaret ettiği referans veri kümesi olan lerobot/svla_so100_pickplace üzerinde, meta veriler 50 bölüm ve 19631 kare bildiriyor: 8'lik parti, epoch başına yaklaşık 2454 adım verir, bu nedenle 20000 adım yaklaşık 8 epoch'tur. Partiyi yarıya indirin ve aynı bütçe epoch'ların yarısını satın alır, bu nedenle --batch_size'a her dokunduğunuzda bunu tekrarlayın.
İnce ayarlı politikayı kola geri yükleme
lerobot-rollout \
--strategy.type=base \
--robot.type=so100_follower \
--robot.port=/dev/ttyACM0 \
--robot.id=my_follower_arm \
--robot.cameras="{ front: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30}}" \
--task="Grasp the cube and put it in the box." \
--policy.path=${HF_USER}/smolvla_pick_placeEylem adımı başına 245 ms'yi yanlış okumak kolaydır: politika chunk_size = 50 ileri geçiş başına eylem yayınlar ve n_action_steps = 50 tanesini yürütür, bu nedenle bu maliyeti ne sıklıkta ödeyeceğiniz, servoların ne sıklıkta komut aldığına göre değil, bu ayarlar tarafından belirlenir. İşte bunu eylem parçalama sağlar ve 245 ms'lik bir modelin 30 Hz'lik bir kolu neden çalıştırabildiğini açıklar. Geriye kalan ise çıkarım gecikmesi parçanın sonunda.
| Ölçüm (SmolVLA, gerçek SO-100) | Senkron | Asenkron |
|---|---|---|
| Tamamlanma süresi, alma ve yerleştirme, 10 deneme | 13.75 s | 9.70 s |
| Sabit bir zaman penceresinde alma ve yerleştirme döngüleri | 9 | 19 |
| Üç görevde ortalama başarı oranı | 78.3 % | 73.3 % |
Üçüncü sıra, çoğu yazının atladığı kısımdır. Asenkron çıkarım yaklaşık yüzde 30 daha hızlıdır ve sabit bir pencerede verimi yaklaşık olarak iki katına çıkarır; makale başarı oranlarını karşılaştırılabilir olarak adlandırır ki ortalama olarak öyledir. Bunun altında, sıralama yüzde 70'ten yüzde 50'ye düşerken, alma ve yerleştirme yüzde 5 arttı. lerobot 0.6.1, aynı ikili dosyada diğer kaldıraç olan --inference.type=rtc komutunu kullanarak dağıtımı gerçek zamanlı parçalamaya geçirir; bu, betiğin kendi kullanım bloğunun yavaş VLA'lar, Pi0, Pi0.5 ve SmolVLA için önerdiği bir özelliktir.
Kontrol döngüsü, modele bağlı olarak eylem adımı başına 20 ila 485 ms'dir ve bunun üzerine eklenen genel internet gidiş-dönüş süreleri, çalışan bir politikayı tereddütlü bir politikaya dönüştürür. Uzak çıkarım, yavaş alma ve yerleştirme için uygulanabilir, hızlı reaktif hareket için değil: eğer görev hızlı düzeltmeler gerektiriyorsa, GPU kol ile aynı LAN'da olmalıdır.
Bir eğitim çalıştırması için konu dışı olsa da, herhangi bir hiperparametreden daha fazla SO-100 projesini sona erdirir. SO-100 ve SO-101'deki Feetech STS3215 servoları 7.4 V ile çalışır; 12 V onları bozar. LeKiwi, 7.4 V'luk bir kolu 12 V'luk bir tabanla karıştırır, yanlış güç jakının yanlış soketi bulması da bu yüzdendir.
Aynı kontrol noktasına iki yol
Makineye, ortama ve hata ayıklamaya siz sahipsiniz. Tek bulut bağımlılığı, temel kontrol noktasının Hub'dan indirilmesidir. Politikayı değiştirmek istiyorsanız, veriler ağınızdan ayrılamıyorsa veya kart boşta duruyorsa doğru yol budur.
- CUDA tekerleğini, sürücüyü, ffmpeg derlemesini ve veri yükleyiciyi siz kontrol edersiniz.
- configuration_smolvla.py dosyasını yamalayabilir ve aynı öğleden sonra yeniden eğitebilirsiniz.
- Çalıştırma başına değil, elektrik ve zamanla ödeme yapar ve TorchCodec'i kendiniz hata ayıklarsınız.
pip install 'lerobot[smolvla,training,core_scripts]'
hf auth login
lerobot-train \
--policy.path=lerobot/smolvla_base \
--dataset.repo_id=${HF_USER}/so100_pick_place \
--batch_size=8 --steps=20000 \
--save_freq=2000 --seed=1000 \
--output_dir=outputs/train/smolvla_pick_place \
--job_name=smolvla_pick_place \
--policy.device=cuda --wandb.enable=trueAynı çalıştırma bir formun arkasında: modeli ve veri kümesini siz seçersiniz, arka uç gerekli VRAM'e göre bir GPU kiralar, eğiticisi çalıştırır ve kontrol noktalarını nesne depolamaya yazar. Veri kümesi bir Hugging Face repo kimliğinden, genel dizinden, veya makinenizden gelebilir. SmolVLA on SO-100, veya eğitim sayfasındaki matristen başlayın.
| Alan | Platformun SmolVLA için gönderdiği varsayılan değer | Not |
|---|---|---|
| batch size | 2 | 24 GB katmanı için muhafazakar |
| learning rate | 1e-4 | lerobot ön ayarı |
| max steps | 20000 | LeRobot belgelerindeki referans çalıştırma |
| gradient accumulation | 8 | Formda gösterilir, uygulanmaz |
| extra knobs | seed, logFreq | Seed, çalıştırmayı tekrarlanabilir kılar |
- 24 GB katmanında 2 ila 5 saat, çalıştırma başına yaklaşık 1 ila 3 USD.
- /cli adresindeki bir terminalden ve /mcp adresindeki yapay zeka ajanlarından aynı işlemler.
- Çıkarım podları boşta bir bekçi köpeği taşır, bu nedenle unutulmuş bir pod sessizce faturalandırmak yerine kendini yok eder.
- Henüz bir kolunuz yok mu? /live, kaydolmadan kullanabileceğiniz fiziksel bir SO-100 yayınlar.
Kuyrukta takılı kalan bir iş, bir hata değil, spot piyasa belirtisidir: eğitim işi kuyrukta takılı kaldı. Adım adım: ilk politikanızı eğitin ve eğitim belgeleri.
SmolVLA yanlış seçim olduğunda
SmolVLA'nın doğru ilk deneme olup olmadığının testi, çalışıp çalışmadığı değil, hatanın size bir şey söyleyip söylemediğidir. Yüzde 60 veya 70'e ulaşırsanız, daha büyük bir model makul bir sonraki harcamadır: veri sinyal taşır. Yüzde 10'a ulaşırsanız, 3 B'lik bir model de büyük olasılıkla yüzde 10'a ulaşır ve bunu on iki dolar yerine üç dolara öğrenmiş olursunuz.

Daha fazla harcamadan önce okumaya değer: Pi0.5, SmolVLA'ya karşı aynı fikir üzerinde daha fazla kapasite için ve GR00T N1.7, SmolVLA'ya karşı NVIDIA yolu için, her ikisi de 80 GB katmanında, çalıştırma başına 4 ila 12 USD. Diğer yol, ACT daha ucuz bir temeldir: 80 M parametre, eylem adımı başına 20 ms, dil koşullandırması yok. Beşinin hepsi şurada bulunur: politikalar sayfası; arena 85 modele ve 332 kıyaslama sonucuna sahiptir.

Herhangi bir şeyi ölçeklendirmeden önceki kontrol listesi
lr2.5e-6 tabanına ulaştı mı? 30000 adımdan önce lerobot bozunumu yeniden ölçeklendirir ve başlangıçta bunu belirtir; üzerinde ise--policy.scheduler_decay_stepsdeğerini kendiniz ayarlayın.- Birden fazla kontrol noktası ve
--dataset.eval_splitile ayrılmış bölümler, böylece değerlendirme kaybının bir anlamı olur. - Politika hiç hareket ediyor mu? Hareketsiz bir kolla düşen bir kaybın belirli nedenleri vardır: kayıp düşüyor, politika hiçbir şey yapmıyor.
- Sahne değişikliğine dayanıyor mu? Değilse: politika yalnızca tek bir kurulumda çalışıyor.
- Tohumu not aldınız mı? lerobot varsayılan olarak 1000'dir, bu nedenle iki dokunulmamış çalıştırma karşılaştırılabilir kalır.
- Ancak o zaman: daha fazla bölüm, daha fazla varyasyon veya daha büyük bir model. Bu sırayla.
Bu modellerin neden var olduğu ve dil girdisiyle ne yaptıkları için, arka plandır; montajı şuradan çalıştırır: ilk çalıştırmasına kadar. Bitmiş kontrol noktası için, ; eğer kol hiç görünmezse, .
SmolVLA'yı kendi kolunuzda eğitin
Modeli ve kolu seçin, kılavuz size tam varsayılanları, veri kümesi formatını ve çalıştırmanın maliyetini verir. SmolVLA, çalıştırma başına 1 ila 3 USD karşılığında 24 GB katmanında yer alır.
Eğitim kılavuzlarını açınSmolVLA'yı gerçekten bir RTX 4090 üzerinde ince ayar yapabilir miyim?▾
Evet. LeRobot'un hesaplama kılavuzu, SmolVLA'yı AdamW ile batch 8'de yaklaşık 10 ila 16 GB tepe VRAM'de konumlandırıyor ve 24 GB tüketici kartlarını bunun için uygun olarak listeliyor. Belgelerdeki örnekteki batch 64, tek bir A100 ile eşleştirilmiştir. Bellek, batch ile yaklaşık olarak doğrusal olarak ölçeklenir, bu nedenle 4 veya 8 kullanın ve mem_gb'yi izleyin.
Gerçekte kaç bölüme ihtiyacım var?▾
AY-Robots minimumu 30 olarak belirler. LeRobot belgeleri yaklaşık 50'yi önerir ve aynı görevin 25 bölümünün kötü performans gösterdiğini bildirir. Yapı sayıdan üstündür: referans seti, her biri 10 bölümden oluşan 5 küp konumuydu ve genelleştiren bu tekrardır.
Belgeler batch 64 diyor, platform batch 2 gönderiyor. Hangisi doğru?▾
İkisi de, farklı donanımlar için. Belgelerdeki örnek batch 64 kullanır ve tek bir A100 üzerinde 20000 adım için yaklaşık 4 saatten bahseder; hesaplama kılavuzunun A100 40 GB referansı batch 16'dır. Batch 2, AY-Robots'un 24 GB katmanında gönderdiğidir. Yerel olarak 4 ila 8 ortadır ve epoch aritmetiği buna göre değişir.
SO-100 üzerinde ilk çalıştırma için SmolVLA mı yoksa ACT mi?▾
Görev tek bir tekrarlayan hareketse ve en hızlı döngüyü istiyorsanız ACT: eylem adımı başına 20 ms, 80 M parametre, dil koşullandırması yok. Dil koşullandırması, tek bir kontrol noktasında birden fazla görev dizisi ve önceden eğitilmiş bir taban istiyorsanız SmolVLA. Her ikisi de 24 GB katmanında yer alır, bu nedenle seçim bütçe değil, görevdir.
--policy.scheduler_decay_steps'i ayarlamak zorunda mıyım?▾
Sadece --steps 30000'in üzerinde olduğunda. SmolVLA, kosinüs bozunmasını 30000 adımda önceden ayarlar ve lerobot 0.6.1, daha kısa bir çalıştırma için bunu kendi başına aşağı ölçeklendirir ve bunu yaptığında "Auto-scaling LR scheduler" kaydını tutar. Asla yukarı ölçeklenmez, bu nedenle varsayılan --steps=100000, son 70000 adımı 2.5e-6 tabanında bırakır.
Sources
- SmolVLA: Uygun Fiyatlı ve Verimli Robotik için Bir Görsel-Dil-Eylem Modeli
- SmolVLA: Verimli Görsel-Dil-Eylem Modeli (Hugging Face blog)
- lerobot/smolvla_base model kartı
- LeRobot belgeleri: SmolVLA
- LeRobot belgeleri: LeRobot Eğitimi için Hesaplama Donanım Kılavuzu
- LeRobot belgeleri: Kurulum
- LeRobot belgeleri: LeRobotDataset v3.0 ve v2.1 dönüştürücü
- LeRobot belgeleri: Asenkron Çıkarım
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (stratejiler ve RTC çıkarımı)
- lerobot v0.6.1: pyproject.toml (ekstralar ve konsol giriş noktaları)
- PyPI'da lerobot
- lerobot/svla_so100_pickplace veri kümesi (50 bölüm, 19631 kare, v3.0)
Sources
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: Compute HW Guide for LeRobot Training
- LeRobot docs: Installation
- LeRobot docs: LeRobotDataset v3.0 and the v2.1 converter
- LeRobot docs: Asynchronous Inference
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategies and RTC inference)
- lerobot v0.6.1: pyproject.toml (extras and console entry points)
- lerobot on PyPI
- lerobot/svla_so100_pickplace dataset (50 episodes, 19631 frames, v3.0)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started