De SmolVLA modelpagina op AY-Robots met daarop het aantal parameters, GPU-tier, inferentielatentie per actiestap en het minimale aantal afleveringen
SmolVLALeRobotVLA TrainingFinetuningSO-100

Hoe SmolVLA te trainen op een 24 GB GPU (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 min leestijd

SmolVLA is een VLA met 450 miljoen parameters die finetunet op één enkele 24 GB kaart. Echte lerobot 0.6.1 commando's, de werkelijke standaardinstellingen, de valkuilen die een dag kosten, en wat een run kost.

SmolVLA in één scherm

  • 450 M parameters, waarvan ongeveer 100 M een flow matching actie-expert is. lerobot traint alleen die expert en houdt de VLM bevroren, daarom past het op één kaart.
  • De compute-gids van LeRobot schat de smolvla-groep op ongeveer 10 tot 16 GB piek VRAM bij batch 8 met AdamW. Vandaar 24 GB.
  • Het startpunt is lerobot-train. De SmolVLA blogpost van juni 2025 print nog steeds python lerobot/scripts/train.py, een pad dat niet langer bestaat. Alles hieronder is lerobot 0.6.1.
  • Het cosinus-schema is vooraf ingesteld om af te nemen over 30000 stappen. lerobot 0.6.1 schaalt dat omlaag voor een kortere run en logt het, maar nooit omhoog: de standaard 100000 stappen run eindigt op de 2.5e-6 bodem voor 70000 stappen.
  • Dertig afleveringen is het AY-Robots minimum, op een 24 GB tier die 1 tot 3 USD per run kost, tegenover 4 tot 12 voor de 80 GB modellen.

De meeste mensen die een visie-taal-actie-model op een echte arm willen, stoppen bij de hardwaregrens. GR00T N1.7 en Pi0.5 hebben elk ongeveer drie miljard parameters en vereisen een A100 80 GB of een H100. Als je een gaming-pc met een RTX 4090 bezit, is dat het einde van de weg. SmolVLA is de uitzondering: 450 M parameters, binnen LeRobot, gebouwd om te fine-tunen op één consumentenkaart en te serveren vanaf een CPU.

Eerst de handmatige route: installeer lerobot, haal het lerobot/smolvla_base checkpoint op, voer het echte commando uit, lees de run terwijl deze plaatsvindt. Daarna de platformroute, en waar deze niet helpt.

Wat SmolVLA is, in cijfers die je kunt controleren

SmolVLA is een flow matching beleid dat is gekoppeld aan een klein visueel taalmodel. De ruggengraat is SmolVLM2-500M-Video-Instruct; de paper behoudt alleen de eerste 16 lagen van het taalmodel, beperkt elk cameraframe tot 64 visuele tokens met een pixel shuffle in plaats van beeldtegels, en wisselt cross-attention af met een self-attention laag om de tweede blok. Inferencekosten waren een ontwerpbeperking, geen bijzaak.

EigenschapWaardeBron
Totaal aantal parametersabout 450 Mpaper
Actie-expertabout 100 M, flow matchingpaper
VLM-ruggengraatHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Gebruikte VLM-lagenfirst 16 of the language modelnum_vlm_layers = 16
Visuele tokens per frame64, pixel shuffle, no tilingpaper
Pretraining481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

De benchmarks zijn de reden waarom mensen zich bezighouden met een 450 M model. Op LIBERO behaalt het gemiddeld 87,3 procent tegen 76,5 voor OpenVLA op 7 B en 86,0 voor een robotica-voorgetrainde Pi0 op 3,3 B; op Meta-World, 57,3 tegen 47,9. Op echte SO-100 hardware levert multi-task training 75 procent op bij pick and place, 90 bij stapelen, 70 bij sorteren, met een gemiddelde van 78,3, waar ACT per taak getraind gemiddeld 48,3 behaalde. Dezelfde rijen staan naast elke gepubliceerde VLA in de SmolVLA arena-vermelding en de ACT versus SmolVLA vergelijking.

De eerlijke versie van de claim over de grootte

SmolVLA is niet op alle gebieden beter dan een 3 B model. De eigen SO-101 tabel van de paper is veelzeggend: 90 procent succes binnen de distributie, 50 procent daarbuiten, op een platform waarop het nooit is voorgetraind. Wat het wel beweert, en ondersteunt, is dat het ten opzichte van Pi0 ongeveer 40 procent sneller traint met 6 keer minder geheugen.

Waarom een 24 GB kaart de juiste eerste run is

LeRobot levert een rekencapaciteitsgids, de meest nuttige pagina in de repository hiervoor. Het groepeert beleidsregels op basis van backbone-grootte en geeft één VRAM-envelop per groep, gemeten bij batchgrootte 8 met AdamW, de standaard van lerobot. De optimizer-status alleen voegt 30 tot 100 procent toe bovenop een kale forward- en backward-pass, dus dit zijn geen cijfers die alleen op gewichten gebaseerd zijn.

GroepBeleidsregelsPiek VRAM (batch 8, AdamW)Starter GPU's
Lichte BCact, vqbet, tdmpcabout 2 to 6 GBRTX 3060, L4
Diffusiediffusion, multi_task_ditabout 8 to 14 GBRTX 4070+, L4
Kleine VLAsmolvlaabout 10 to 16 GBRTX 4080+, L4, A10G
Grote VLApi0, pi0_fast, pi05, xvla, wall_xabout 24 to 40 GBA100 40 GB+
Multimodaalgroot, eo1about 24 to 40 GBA100 40 GB+

Tien tot zestien gigabytes bij batch 8 is het argument: een 24 GB kaart past daarbij, plus de dataloader. AY-Robots plaatst SmolVLA op de RTX 4090 of elke 24 GB kaart, minimaal 30 afleveringen, LeRobot v3.0 data, 245 ms per actiestap. Gehuurd, dat is 2 tot 5 uur à 0.30 tot 0.60 USD per uur, ongeveer 1 tot 3 USD per een fijnafstemming run, tegen 4 tot 12 USD op de 80 GB tier die GR00T en Pi0.5 nodig hebben (prijzen). Een mislukte SmolVLA run is een kop koffie; een mislukte GR00T run, lunch.

AY-Robots kostentabel: kaart per beleid, looptijd, prijs per run, benodigde afleveringen
SmolVLA en ACT staan op de rij van 24 GB, de drie 3 B-modellen op de rij van 80 GB.
Beginnen met SmolVLA in plaats van een 3 B-model
Wat je krijgt
  • Past op hardware die je mogelijk al bezit: ongeveer 10 tot 16 GB bij batch 8.
  • Een verspilde run kost uren en enkele dollars, dus je kunt het je veroorloven om fout te zitten over de dataset.
  • Voorgetraind op community-datasets gedeeld onder de lerobot-tag, met echte SO-100 en SO-101 resultaten.
  • Het leeft in lerobot zelf: geen vendor repo, en smolvla_base is niet afgeschermd.
Wat je opgeeft
  • 450 M is nog steeds 450 M: het succes buiten de distributie daalt van 90 naar 50 procent in tabel SO-101 van het artikel.
  • Het vereist LeRobot v3.0-gegevens; een v2.1-opname moet worden geconverteerd (dataset rejected v3).
  • 245 ms per actiestap is een competente pick-and-place controller, geen reactieve.
  • Het voorbeeld in de documentatie draait batch 64 op een A100; op 24 GB ruil je batch in voor wandkloktijd.

Stap 0: de dataset bepaalt de run, niet de flags

Niets hieronder is van belang als de opname slecht is. De LeRobot SmolVLA-pagina is duidelijk: de referentiedataset bestond uit 50 afleveringen verdeeld over 5 kubusposities, 10 per positie, en dezelfde taak met 25 afleveringen presteerde slecht. Herhaling per variatie generaliseert, het ruwe aantal afleveringen niet. Nog nooit een opgenomen? Begin bij neem je eerste dataset op, met de desktopclient, die LeRobot-formaat schrijft vanuit een teleoperatie-sessie, of leen er een uit de datasetmap.

  • Minimaal 30 afleveringen op AY-Robots, ongeveer 50 voor het LeRobot referentierecept.
  • Elke variatie die je verwacht bij de uitrol, meerdere keren herhaald.
  • Eén taakstring, identiek gespeld tijdens opname en uitrol. Het model is geconditioneerd op die tekst.
  • Vaste camera's. Een camera die is verplaatst tussen opname en uitrol is de meest voorkomende reden dat een schone verliescurve resulteert in een bewegingloze arm.
  • Een achtergehouden variatie waarop je nooit hebt getraind, zodat je iets eerlijks hebt om tegen te testen.
De datasetval die een dag kost

SmolVLA, Pi0.5 en ACT willen LeRobot v3.0. GR00T N1.7 en N1.5 willen v2.0 of v2.1 en hun loader crasht op v3.0. Neem één keer op, plan om modellen later te vergelijken, en je zult hoe dan ook converteren: dataset rejected v3.

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
De converter wordt meegeleverd met lerobot, dus er is niets extra's te installeren. Er is geen converter in de andere richting in het pakket.

Meer hierover in hoe je hoogwaardige VLA-trainingsdata verzamelt. De korte versie: 30 tot 50 schone afleveringen van één taak met opzettelijke variatie verslaan 200 slordige afleveringen van drie, met een marge die geen enkele hyperparameter dicht.

Installeer lerobot 0.6.1

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
Het PyPI-pad. Om de trainer te patchen, kloon de repository en gebruik in plaats daarvan `pip install -e ".[smolvla,training]"`.

De basis lerobot installatie is licht en plaatst zware afhankelijkheden achter extra's: smolvla voegt transformers, num2words en accelerate toe, training de dataset-stack en wandb, core_scripts de hardware- en visualisatie-afhankelijkheden. Op Linux bepaalt het installatiepad ook je CUDA-wheel: de PyPI-standaard is een cu130-wheel met een driververeiste van minimaal 580.65, dus installeer bij een oudere driver eerst torch vanaf de cu128-index, en daarna lerobot.

policy.path en policy.type zijn niet dezelfde flag

--policy.path=lerobot/smolvla_base laadt het voorgegetrainde 450 M checkpoint en fine-tuned het. --policy.type=smolvla bouwt een nieuwe SmolVLA, en de standaardconfiguratie load_vlm_weights = False betekent dat het de SmolVLM2 backbone-gewichten niet eens ophaalt, tenzij je erom vraagt. Als je dit verkeerd doet, traint de run vrolijk door, kost hetzelfde, en leert niets overdraagbaars.

De trainingsrun, commando voor commando

  1. 1
    Authenticeer tegen de Hub

    Het basischeckpoint komt van de Hub, en je dataset waarschijnlijk ook.

    bash
    hf auth login
  2. 2
    Lees de opties één keer

    Elk veld van de pipeline- en beleidsconfiguratie is een vlag. Scan het voordat je in de bron duikt.

    bash
    lerobot-train --help
  3. 3
    Start de fine-tune

    Het voorbeeld in de documentatie draait batch 64 op een enkele A100; de eigen A100 40 GB anker van de compute-gids is batch 16, en 8 is het 24 GB equivalent. Geen scheduler-vlag hier met opzet, zie hieronder.

    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
    Lees de logregel, niet alleen het verlies

    Elke --log_freq stappen print lerobot loss, grdn, lr, updt_s, data_s, smp/s en, op CUDA, mem_gb. mem_gb geeft aan of de batch past, lr of de scheduler afneemt, en data_s die updt_s nadert betekent dat de dataloader de bottleneck is, niet de GPU.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Verzamel checkpoints die je kunt vergelijken

    save_freq is standaard 20000, dus een run van 20000 stappen laat één checkpoint achter en niets om het mee te vergelijken. Stel 2000 in. Pushen naar de Hub vereist --policy.repo_id.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    Hervat als de machine uitvalt

    Wijs --config_path naar de train_config.json naast het checkpoint. lerobot weigert te starten in een bestaande output_dir tenzij je hervat, zodat je een run niet per ongeluk kunt overschrijven.

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

De vlaggen die het resultaat daadwerkelijk veranderen

VlagWat het doetOp 24 GB
--batch_sizeSamples per stap, ruwweg lineair in VRAM4 tot 8
--stepsTotaal aantal optimizer stappen20000 eerste keer
--policy.scheduler_decay_stepsLengte van cosinus decay, ingesteld op 30000Werkt alleen boven 30000
--policy.use_ampGemengde precisie; SmolVLA heeft geen dtype-veldtrue als geheugen krap is
--num_workersDataloader processen, standaard 4Verhoog tot data_s niet meer stijgt
--dataset.eval_splitFractie van afleveringen per taak achtergehouden0.1, met --eval_steps
--policy.freeze_vision_encoderHoudt de vision tower bevrorentrue op 24 GB
--policy.train_expert_onlyAlleen de ~100 M expert krijgt gradiëntentrue eerst
Het schema: wat 0.6.1 wel en niet afhandelt

SmolVLA stelt een cosinus-schema in: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Ouder advies stelt dat een run van 20000 stappen daardoor halverwege de decay stagneert. In 0.6.1 is dat niet het geval: `CosineDecayWithWarmupSchedulerConfig.build()` krijgt `--steps` overhandigd, en onder `num_decay_steps` schaalt het beide opnieuw, warmup 1000 naar 666 en decay 30000 naar 20000, waarbij het *Auto-scaling LR scheduler* afdrukt. Het schaalt nooit omhoog: de decay wordt begrensd met `min(current_step, decay_steps)`, dus de standaard `--steps=100000` blijft vanaf stap 30000 tot het einde, 70 procent van de run, op de bodem. Alleen die lange zijde heeft nog steeds `--policy.scheduler_decay_steps` nodig. De `lr`-kolom is waar je dit controleert.

De standaardinstellingen die je overneemt als je niets aanraakt

Een beleid configuratie in lerobot heeft zijn eigen optimizer en scheduler preset, en tenzij je use_policy_training_preset=false instelt, winnen die presets. De helft van de vragen die mensen stellen over SmolVLA-training worden beantwoord door een standaardinstelling waarvan ze het bestaan niet wisten.

InstellingStandaard in lerobot 0.6.1Gedefinieerd in
chunk_size / n_action_steps50 / 50SmolVLAConfig
num_steps (flow matching denoise)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

De twee regels die mensen verrassen zijn freeze_vision_encoder en train_expert_only, beide waar. Standaard train je ongeveer 100 M parameters, niet 450 M, daarom past het op 24 GB. LeRobot's eigen referentierun op een vier-GPU H100 cluster zet beide op onwaar; op één 24 GB kaart verandert dat een werkende run in .

De geheugenknop die er niet is

Het advies van de gids wanneer je geheugenbeperkt bent, is om de batchgrootte te verlagen en gradiëntaccumulatie te gebruiken om de effectieve batch te herstellen. Er is geen gradiëntaccumulatie in lerobot 0.6.1: TrainPipelineConfig heeft geen dergelijk veld en de string verschijnt nergens in het uitgebrachte pakket. Het AY-Robots formulier toont een gradiëntaccumulatiewaarde van 8 voor SmolVLA en past deze ook niet toe. Jouw hefbomen op 24 GB zijn --batch_size, de twee freeze-standaardinstellingen, en --policy.use_amp.

Hoe lang de run duurt, en hoeveel stappen voldoende zijn

LeRobot publiceert 'wall-clock' ankers voor vijf epochs over een dataset van ongeveer 50 afleveringen, ongeveer 45000 frames bij 30 fps. Ordegrootte cijfers, zeggen de documenten, maar ze maken het verschil tussen het verwachten van een uur en een dag.

OpstellingBeleidBatchReële tijd
Enkele L4 / A10G (24 GB)smolvla4ongeveer 3 tot 6 uur
Enkele A100 40 GBsmolvla16ongeveer 1 tot 2 uur
4 x H100 80 GB met acceleratesmolvla32ongeveer 1 tot 2 uur
Enkele RTX 4090 / RTX 3090 (24 GB)act8ongeveer 30 tot 60 min
Voer de epoch-berekening uit voordat u --steps kiest

De regel is 5 tot 10 epochs over de dataset, niet een vast aantal stappen: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Op de referentiedataset waarnaar de documentatie verwijst, lerobot/svla_so100_pickplace, rapporteert de metadata 50 episodes en 19631 frames: batch 8 geeft ongeveer 2454 stappen per epoch, dus 20000 stappen is ruwweg 8 epochs. Halveer de batch en hetzelfde budget levert de helft van de epochs op, dus herhaal dit telkens wanneer u --batch_size aanraakt.

Het verfijnde beleid opnieuw uitvoeren op de arm

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
De taakstring moet overeenkomen met degene waarmee u heeft opgenomen. Het model is geconditioneerd op die tekst, dus een parafrase is een andere instructie.

De 245 ms per actiestap is gemakkelijk verkeerd te interpreteren: het beleid zendt chunk_size = 50 acties uit per forward pass en voert er n_action_steps = 50 van uit, dus hoe vaak je die kosten betaalt, wordt bepaald door die instellingen, niet door hoe vaak de servo's een commando krijgen. Dat is wat actie-chunking oplevert, en waarom een model van 245 ms een arm van 30 Hz kan aansturen. Wat overblijft is inferentielatentie aan het einde van de chunk.

Meting (SmolVLA, echte SO-100)SynchroonAsynchroon
Voltooiingstijd, pick-and-place, 10 proeven13.75 s9.70 s
Pick-and-place cycli in een vast tijdsvenster919
Succespercentage gemiddeld over de drie taken78.3 %73.3 %

Die derde rij is wat de meeste verslagen overslaan. Asynchrone inferentie is ongeveer 30 procent sneller en verdubbelt ruwweg de doorvoer in een vast tijdsvenster, en het artikel noemt de succespercentages vergelijkbaar, wat ze gemiddeld ook zijn. Daaronder daalde sorteren van 70 naar 50 procent, terwijl pick-and-place er 5 bij kreeg. lerobot 0.6.1 bevat de andere hendel in dezelfde binary: --inference.type=rtc schakelt de rollout over naar real-time chunking, wat het eigen gebruiksblok van het script aanbeveelt voor de langzame VLA's, Pi0, Pi0.5 en SmolVLA.

Inferentie moet naast de servo's plaatsvinden

De besturingslus is 20 tot 485 ms per actiestap, afhankelijk van het model, en round-trips via het openbare internet maken van een werkend beleid een aarzelend beleid. Inferentie op afstand is haalbaar voor langzame pick-and-place, niet voor snelle reactieve bewegingen: als de taak snelle correcties vereist, hoort de GPU op hetzelfde LAN als de arm.

7.4 V, geen 12 V

Niet direct gerelateerd aan een trainingsrun, maar het beëindigt meer SO-100 projecten dan welke hyperparameter dan ook. De Feetech STS3215 servo's in de SO-100 en SO-101 werken op 7.4 V; 12 V vernietigt ze. De LeKiwi combineert een 7.4 V arm met een 12 V basis, en zo vindt de verkeerde barrel jack de verkeerde aansluiting.

Twee routes naar hetzelfde checkpoint

U bent eigenaar van de machine, de omgeving en het debuggen. De enige cloudafhankelijkheid is de Hub-download van het basischeckpoint. De juiste route als u het beleid wilt aanpassen, als de gegevens uw netwerk niet mogen verlaten, of als de kaart inactief is.

  • U beheert de CUDA-wheel, de driver, de ffmpeg-build en de dataloader.
  • U kunt configuration_smolvla.py patchen en dezelfde middag opnieuw trainen.
  • U betaalt in elektriciteit en tijd, niet per run, en debugt TorchCodec zelf.
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
De volledige handmatige route in één blok, lerobot 0.6.1.

Wanneer SmolVLA de verkeerde keuze is

De test of SmolVLA de juiste eerste run was, is niet of het werkte, maar of de mislukking je iets vertelde. Bereik 60 of 70 procent en een groter model is een redelijke volgende investering: de data bevat een signaal. Bereik 10 procent en een 3 B model bereikt hoogstwaarschijnlijk ook 10 procent, wat je zojuist hebt geleerd voor drie dollar in plaats van twaalf.

De AY-Robots trainingsmatrix: vijf beleidsregels als rijen, vier robotarmen als kolommen
Elke cel is zijn eigen gids. SmolVLA heeft er één voor elk van de vier armen.

Lees dit voordat u meer uitgeeft: Pi0.5 tegen SmolVLA voor meer capaciteit op basis van hetzelfde idee, en GR00T N1.7 tegen SmolVLA voor de NVIDIA-route, beide 80 GB tier voor 4 tot 12 USD per run. De andere optie, ACT is de goedkopere basislijn: 80 M parameters, 20 ms per actiestap, geen taalconditionering. Alle vijf staan op de beleidspagina; de arena heeft 85 modellen en 332 benchmarkresultaten.

De AY-Robots beleidsvergelijking: parameters, GPU tier, latentie, minimale episodes
De vier getallen die een run bepalen.

De checklist voordat je iets opschaalt

  1. Heeft de lr zijn ondergrens van 2.5e-6 bereikt? Onder 30000 stappen herschaalt lerobot de decay en meldt dit bij het opstarten; daarboven stel je --policy.scheduler_decay_steps zelf in.
  2. Meer dan één checkpoint, en episodes apart gehouden met --dataset.eval_split zodat de eval loss iets betekent.
  3. Beweegt het beleid überhaupt? Een dalend verlies met een bewegingloze arm heeft specifieke oorzaken: verlies daalt, beleid doet niets.
  4. Overleeft het een verandering van scène? Zo niet: beleid werkt alleen in één opstelling.
  5. Heb je de seed genoteerd? lerobot gebruikt standaard 1000, zodat twee ongewijzigde runs vergelijkbaar blijven.
  6. Pas dan: meer episodes, meer variatie, of een groter model. In die volgorde.

Voor waarom deze modellen bestaan en wat ze doen met de taalinput, is de achtergrond; leidt de assemblage door naar de eerste run. Voor het voltooide checkpoint, ; als de arm nooit verschijnt, .

Train SmolVLA op je eigen arm

Kies het model en de arm en de gids geeft je de exacte standaardinstellingen, het datasetformaat en wat de run kost. SmolVLA bevindt zich op de 24 GB tier voor 1 tot 3 USD per run.

Open de trainingsgidsen
Kan ik SmolVLA echt fine-tunen op een RTX 4090?

Ja. De compute-gids van LeRobot schat SmolVLA op ongeveer 10 tot 16 GB piek VRAM bij batch 8 met AdamW en vermeldt dat 24 GB consumentenkaarten hier comfortabel voor zijn. De batch 64 in het documentatievoorbeeld is gekoppeld aan een enkele A100. Geheugen schaalt ruwweg lineair met batch, dus gebruik 4 of 8 en let op mem_gb.

Hoeveel afleveringen heb ik eigenlijk nodig?

AY-Robots stelt het minimum in op 30. De LeRobot-documentatie beveelt ongeveer 50 aan en meldt dat 25 afleveringen van dezelfde taak slecht presteerden. Structuur is belangrijker dan aantal: de referentieset bestond uit 5 kubusposities met elk 10 afleveringen, en die herhaling is wat generaliseert.

De documentatie zegt batch 64, het platform stuurt batch 2. Wat is correct?

Beide, voor verschillende hardware. Het documentatievoorbeeld gebruikt batch 64 en noemt ongeveer 4 uur voor 20000 stappen op een enkele A100; de A100 40 GB-anker van de compute-gids is batch 16. Batch 2 is wat AY-Robots verstuurt op de 24 GB-laag. Lokaal is 4 tot 8 het midden, en de epoch-rekenkunde verandert daarmee.

SmolVLA of ACT voor een eerste run op een SO-100?

ACT als de taak één repetitieve beweging is en je de snelste lus wilt: 20 ms per actiestap, 80 M parameters, geen taalconditionering. SmolVLA als je taalconditionering wilt, meerdere taakreeksen in één checkpoint, en een voorgegetrainde basis. Beide passen op de 24 GB-laag, dus de keuze is de taak, niet het budget.

Moet ik --policy.scheduler_decay_steps instellen?

Alleen wanneer --steps boven 30000 is. SmolVLA stelt de cosinus-decay in op 30000 stappen, en lerobot 0.6.1 schaalt deze zelf naar beneden voor een kortere run, waarbij het "Auto-scaling LR scheduler" logt wanneer dit gebeurt. Het schaalt nooit omhoog, dus de standaard --steps=100000 laat de laatste 70000 stappen op de 2.5e-6 bodem.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started