AY-Robots üzerindeki SmolVLA model sayfası; parametre sayısını, GPU katmanını, eylem adımı başına çıkarım gecikmesini ve minimum bölüm sayısını gösteriyor
SmolVLALeRobotVLA Eğitimiİnce AyarSO-100

24 GB GPU'da SmolVLA Nasıl Eğitilir (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 dk okuma

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ı.

ÖzellikDeğerKaynak
Toplam parametreyaklaşık 450 Mmakale
Eylem uzmanıyaklaşık 100 M, akış eşleştirmemakale
VLM omurgasıHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_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 yokmakale
Ön eğitim481 topluluk veri kümesi, 22.9 K bölüm, 10.6 M kare; 4 GPU'da global yığın 256 ile 200000 adımmakale

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.

Boyut iddiasının dürüst versiyonu

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.

GrupPolitikalarEn Yüksek VRAM (toplu iş 8, AdamW)Başlangıç GPU'ları
Hafif BCact, vqbet, tdmpcabout 2 to 6 GBRTX 3060, L4
Difüzyondiffusion, multi_task_ditabout 8 to 14 GBRTX 4070+, L4
Küçük VLAsmolvlaabout 10 to 16 GBRTX 4080+, L4, A10G
Büyük VLApi0, pi0_fast, pi05, xvla, wall_xabout 24 to 40 GBA100 40 GB+
Çok Modlugroot, eo1about 24 to 40 GBA100 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.

AY-Robots maliyet tablosu: politika başına kart, çalışma süresi, çalışma başına fiyat, gereken bölüm sayısı
SmolVLA ve ACT 24 GB satırında, üç adet 3 B model ise 80 GB satırında yer alıyor.
3 B model yerine SmolVLA ile başlamak
Neler kazanırsınız
  • 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.
Nelerden vazgeçersiniz
  • 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.
Bir güne mal olan veri kümesi tuzağı

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.

bash
# 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_place
Dönüştürücü lerobot içinde gelir, bu yüzden ekstra bir şey yüklemeye gerek yoktur. Pakette diğer yöne doğru bir dönüştürücü bulunmamaktadır.

Daha 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

bash
# 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-info
PyPI yolu. Eğiticiyi yamalamak için depoyu klonlayın ve bunun yerine pip install -e ".[smolvla,training]" kullanın.

Temel 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 ve policy.type aynı bayrak değildir

--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

  1. 1
    Hub'a Karşı Kimlik Doğrulama

    Temel kontrol noktası Hub'dan gelir ve veri setiniz de muhtemelen oradadır.

    bash
    hf auth login
  2. 2
    Seçenekleri Bir Kez Okuyun

    Pipeline ve politika yapılandırmasının her alanı bir bayraktır. Kaynağa dalmadan önce göz gezdirin.

    bash
    lerobot-train --help
  3. 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.

    bash
    lerobot-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
  4. 4
    Sadece 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
  5. 5
    Karşı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
  6. 6
    Makine Ö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.

    bash
    lerobot-train \
      --config_path=<path to the saved train_config.json> \
      --resume=true

Sonucu Gerçekten Değiştiren Bayraklar

BayrakNe İşe Yarar24 GB'ta
--batch_sizeAdım başına örnekler, VRAM'de kabaca doğrusal4 to 8
--stepsToplam optimize edici adımları20000 first pass
--policy.scheduler_decay_stepsKosinüs bozunma uzunluğu, ön ayarlı 30000Sadece 30000'in üzerinde etkili
--policy.use_ampKarışık hassasiyet; SmolVLA'nın dtype alanı yokBellek kısıtlı olduğunda true
--num_workersVeri yükleyici süreçleri, varsayılan 4data_s yükselmeyi durdurana kadar artırın
--dataset.eval_splitGörev başına ayrılan bölüm oranı0.1, with --eval_steps
--policy.freeze_vision_encoderGörsel kuleyi dondurulmuş tutartrue on 24 GB
--policy.train_expert_onlySadece ~100 M uzman gradyan alırÖnce true
Zamanlama: 0.6.1'in ele aldıkları ve ele almadıkları

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.

Ayarlerobot 0.6.1'deki VarsayılanTanımlandığı Yer
chunk_size / n_action_steps50 / 50SmolVLAConfig
Adım sayısı (akış eşleştirme gürültü giderme)10SmolVLAConfig
optimizer_lr1e-4SmolVLAConfig
scheduler_warmup_steps1000SmolVLAConfig
scheduler_decay_steps30000SmolVLAConfig
scheduler_decay_lr2.5e-6SmolVLAConfig
freeze_vision_encodertrueSmolVLAConfig
train_expert_onlytrueSmolVLAConfig
batch_size / steps8 / 100000TrainPipelineConfig
seed / save_freq / num_workers1000 / 20000 / 4TrainPipelineConfig

İ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.

Olmayan bellek düğmesi

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.

KurulumPolitikaPartiGerçek süre
Single L4 / A10G (24 GB)smolvla4yaklaşık 3 ila 6 sa
Single A100 40 GBsmolvla16yaklaşık 1 ila 2 sa
4 x H100 80 GB with acceleratesmolvla32yaklaşık 1 ila 2 sa
Single RTX 4090 / RTX 3090 (24 GB)act8yaklaşık 30 ila 60 dk
<code>--steps</code> seçmeden önce epoch hesaplamasını yapın

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

bash
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_place
Görev dizisi, kaydettiğinizle eşleşmelidir. Model bu metne göre koşullandırılmıştır, bu nedenle bir yeniden ifade farklı bir talimattır.

Eylem 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)SenkronAsenkron
Tamamlanma süresi, alma ve yerleştirme, 10 deneme13.75 s9.70 s
Sabit bir zaman penceresinde alma ve yerleştirme döngüleri919
Üç 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.

Çıkarım servoların yanında olmalı

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.

7.4 V, 12 V değil

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.
bash
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=true
Tüm manuel yol tek bir blokta, lerobot 0.6.1.

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.

AY-Robots eğitim matrisi: satırlar olarak beş politika, sütunlar olarak dört robot kolu
Her hücre kendi rehberidir. SmolVLA'nın dört kolunun her biri için bir tane vardır.

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.

AY-Robots politika karşılaştırması: parametreler, GPU katmanı, gecikme, minimum bölüm sayısı
Bir çalıştırmayı belirleyen dört sayı.

Herhangi bir şeyi ölçeklendirmeden önceki kontrol listesi

  1. lr 2.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_steps değerini kendiniz ayarlayın.
  2. Birden fazla kontrol noktası ve --dataset.eval_split ile ayrılmış bölümler, böylece değerlendirme kaybının bir anlamı olur.
  3. 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.
  4. Sahne değişikliğine dayanıyor mu? Değilse: politika yalnızca tek bir kurulumda çalışıyor.
  5. 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.
  6. 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çın
SmolVLA'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.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started