SmolVLA-modellens side på AY-Robots som viser antall parametere, GPU-nivå, inferensforsinkelse per handlingstrinn og minimum antall episoder
SmolVLALeRobotVLA-treningFinjusteringSO-100

Hvordan trene SmolVLA på en 24 GB GPU (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 min lesetid

SmolVLA er en VLA med 450 M parametere som finjusteres på et enkelt 24 GB kort. Ekte lerobot 0.6.1-kommandoer, de faktiske standardinnstillingene, fellene som kostet en dag, og hva en kjøring koster.

SmolVLA på én skjerm

  • 450 M parametere, hvorav omtrent 100 M er en flow matching action-ekspert. lerobot trener kun denne eksperten og holder VLM frosset, noe som er grunnen til at den passer på ett kort.
  • LeRobots beregningsguide anslår smolvla-gruppen til å kreve omtrent 10 til 16 GB topp VRAM ved batch 8 med AdamW. Derfor 24 GB.
  • Inngangspunktet er lerobot-train. SmolVLA-blogginnlegget fra juni 2025 skriver fortsatt ut python lerobot/scripts/train.py, en sti som ikke lenger eksisterer. Alt nedenfor er lerobot 0.6.1.
  • Kosinusplanen er forhåndsinnstilt til å avta over 30000 trinn. lerobot 0.6.1 skalerer dette ned for en kortere kjøring og logger det, men aldri opp: standardkjøringen på 100000 trinn ender på 2.5e-6-gulvet i 70000 trinn.
  • Tretti episoder er AY-Robots minimum, på et 24 GB-nivå som koster 1 til 3 USD per kjøring mot 4 til 12 for 80 GB-modellene.

De fleste som ønsker en visuell språk- og handlingsmodell på en ekte arm stopper ved maskinvaregrensen. GR00T N1.7 og Pi0.5 er rundt tre milliarder parametere hver og krever en A100 80 GB eller en H100. Hvis det du eier er en gaming-PC med et RTX 4090, er det slutten på veien. SmolVLA er unntaket: 450 M parametere, inne i LeRobot, bygget for å finjusteres på ett forbrukerkort og serveres fra en CPU.

Den manuelle ruten først: installer lerobot, hent lerobot/smolvla_base sjekkpunktet, kjør den virkelige kommandoen, les kjøringen mens den pågår. Deretter plattformruten, og hvor den ikke hjelper.

Hva SmolVLA er, i tall du kan sjekke

SmolVLA er en flytmatching policy festet til en liten visuell språkmodell. Ryggraden er SmolVLM2-500M-Video-Instruct; artikkelen beholder bare de første 16 lagene av språkmodellen, begrenser hver kameraramme til 64 visuelle tokens med en pikselblanding i stedet for bildeflislegging, og fletter kryss-oppmerksomhet med et selv-oppmerksomhetslag annenhver blokk. Inferenskostnad var en designbegrensning, ikke en ettertanke.

EgenskapVerdiKilde
Totale parametereabout 450 Mpaper
Handlingsekspertabout 100 M, flytmatchingpaper
VLM ryggradHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
VLM-lag bruktførste 16 av språkmodellennum_vlm_layers = 16
Visuelle tokens per ramme64, pikselblanding, ingen flisleggingpaper
Førtrening481 fellesskapsdatasett, 22.9 K episoder, 10.6 M rammer; 200000 trinn ved global batch 256 på 4 GPUerpaper

Benchmarkene er grunnen til at folk bryr seg med en 450 M modell. På LIBERO oppnår den et gjennomsnitt på 87.3 prosent mot 76.5 for OpenVLA på 7 B og 86.0 for en robotikk-førtrent Pi0 på 3.3 B; på Meta-World, 57.3 mot 47.9. På ekte SO-100 maskinvare gir multi-task trening 75 prosent på plukk og plasser, 90 på stabling, 70 på sortering, med et gjennomsnitt på 78.3, der ACT trent per oppgave gjennomsnittlig 48.3. De samme radene står ved siden av hver publiserte VLA i SmolVLA arenaoppføring og ACT mot SmolVLA sammenligning.

Den ærlige versjonen av størrelsespåstanden

SmolVLA er ikke bedre enn en 3 B modell på alt. Artikkelens egen SO-101 tabell er avslørende: 90 prosent suksess i distribusjon, 50 prosent utenfor, på en plattform den aldri ble førtrent på. Det den hevder, og støtter, er at mot Pi0 trener den rundt 40 prosent raskere på 6 ganger mindre minne.

Hvorfor et 24 GB-kort er det rette førstevalget

LeRobot leverer en veiledning for beregningsstørrelse, den mest nyttige siden i repoet for dette. Den grupperer retningslinjer etter ryggrads-størrelse og angir én VRAM-ramme per gruppe, målt med batchstørrelse 8 med AdamW, som er standarden i lerobot. Optimaliseringstilstanden alene legger til 30 til 100 prosent utover en ren fremover- og bakoverpassering, så dette er ikke tall basert kun på vekter.

GruppeRetningslinjerMaksimal VRAM (batch 8, AdamW)Anbefalte GPU-er
Lett BCact, vqbet, tdmpcabout 2 to 6 GBRTX 3060, L4
Diffusjondiffusion, multi_task_ditabout 8 to 14 GBRTX 4070+, L4
Liten VLAsmolvlaabout 10 to 16 GBRTX 4080+, L4, A10G
Stor VLApi0, pi0_fast, pi05, xvla, wall_xabout 24 to 40 GBA100 40 GB+
Multimodalgroot, eo1about 24 to 40 GBA100 40 GB+

Ti til seksten gigabyte ved batchstørrelse 8 er argumentet: et 24 GB-kort passer til det pluss datalasteren. AY-Robots plasserer SmolVLA på RTX 4090 eller et hvilket som helst 24 GB-kort, minimum 30 episoder, LeRobot v3.0 data, 245 ms per handlingstrinn. Leid, det er 2 til 5 timer til 0.30 til 0.60 USD per time, omtrent 1 til 3 USD per finjustering kjøring, mot 4 til 12 USD på 80 GB-nivået GR00T og Pi0.5 trenger (priser). En mislykket SmolVLA-kjøring er en kaffe; en mislykket GR00T-kjøring, lunsj.

AY-Robots kostnadstabell: kort per policy, kjøretid, pris per kjøring, nødvendige episoder
SmolVLA og ACT sitter på 24 GB-raden, de tre 3 B-modellene på 80 GB-raden.
Starte med SmolVLA i stedet for en 3 B-modell
Hva du får
  • Passer maskinvare du kanskje allerede eier: omtrent 10 til 16 GB ved batch 8.
  • En bortkastet kjøring koster timer og ensifrede dollar, så du har råd til å ta feil om datasettet.
  • Forhåndstrent på fellesskapsdatasett delt under lerobot-taggen, med reelle SO-100 og SO-101 resultater.
  • Den lever i lerobot selv: ingen leverandørrepo, og smolvla_base er ikke lukket.
Hva du gir opp
  • 450 M er fortsatt 450 M: suksess utenfor distribusjon faller fra 90 til 50 prosent i artikkelens SO-101-tabell.
  • Den krever LeRobot v3.0-data; et v2.1-opptak må konverteres (datasett avvist v3).
  • 245 ms per handlingstrinn er en kompetent plukk-og-plasser-kontroller, ikke en reaktiv.
  • Dokumentasjonseksemplet kjører batch 64 på en A100; på 24 GB bytter du batch mot veggklokke.

Trinn 0: datasettet bestemmer kjøringen, ikke flaggene

Ingenting nedenfor betyr noe hvis opptaket er dårlig. LeRobot SmolVLA-siden er direkte: referansedatasettet var 50 episoder fordelt på 5 kube-posisjoner, 10 per posisjon, og den samme oppgaven med 25 episoder presterte dårlig. Repetisjon per variasjon generaliserer, rått episodeantall gjør det ikke. Har du aldri tatt opp en? Start med ta opp ditt første datasett med skrivebordsklienten, som skriver LeRobot-format ut av en teleoperasjon-sesjon, eller lån en fra datasettkatalogen.

  • Minst 30 episoder på AY-Robots, omtrent 50 for LeRobot referanseoppskriften.
  • Hver variasjon du forventer ved utrulling, gjentatt flere ganger.
  • Én oppgavestreng, stavet identisk ved opptak og utrulling. Modellen er betinget av den teksten.
  • Faste kameraer. Et kamera flyttet mellom opptak og utrulling er den vanligste årsaken til at en ren tapskurve gir en ubevegelig arm.
  • En holdt-ut variasjon du aldri trente på, slik at du har noe ærlig å teste mot.
Datasettfellen som koster en dag

SmolVLA, Pi0.5 og ACT krever LeRobot v3.0. GR00T N1.7 og N1.5 krever v2.0 eller v2.1, og deres laster krasjer på v3.0. Ta opp én gang, planlegg å sammenligne modeller senere, og du vil konvertere den ene eller den andre veien: datasett avvist 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
Konverteren følger med lerobot, så det er ingenting ekstra å installere. Det er ingen konverter i den andre retningen i pakken.

Mer om dette i hvordan samle inn høykvalitets VLA-treningsdata for robotmanipulasjon. Den korte versjonen: 30 til 50 rene episoder av én oppgave med bevisst variasjon slår 200 slurvete episoder av tre, med en margin ingen hyperparameter lukker.

Installer 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
PyPI-stien. For å patche treneren, klon repoet og bruk pip install -e ".[smolvla,training]" i stedet.

Grunnleggende lerobot installasjonen er tynn og gjerder tunge avhengigheter bak tilleggspakker (extras): smolvla legger til transformers, num2words og accelerate, training dataset-stakken og wandb, core_scripts maskinvare- og visualiseringsavhengighetene. På Linux bestemmer installasjonsstien også ditt CUDA-hjul: PyPI-standard er et cu130-hjul med et drivergulv på 580.65, så på en eldre driver installerer du torch fra cu128-indeksen først, deretter lerobot.

policy.path og policy.type er ikke samme flagg

--policy.path=lerobot/smolvla_base laster det forhåndstrente 450 M sjekkpunktet og finjusterer det. --policy.type=smolvla bygger en fersk SmolVLA, og konfigurasjonsstandarden load_vlm_weights = False betyr at den ikke engang henter SmolVLM2-ryggradvektene med mindre du ber om det. Gjør du feil, vil kjøringen trene lykkelig, koste det samme, og ikke lære noe overførbart.

Treningskjøringen, kommando for kommando

  1. 1
    Autentiser mot Hub-en

    Grunn-sjekkpunktet kommer fra Hub-en, og datasettet ditt gjør sannsynligvis det også.

    bash
    hf auth login
  2. 2
    Les alternativene én gang

    Hvert felt i pipeline- og policykonfigurasjonen er et flagg. Skum gjennom det før du graver i kildekoden.

    bash
    lerobot-train --help
  3. 3
    Start finjusteringen

    Eksemplet i dokumentasjonen kjører batch 64 på en enkelt A100; beregningsveiledningens egen A100 40 GB-referanse er batch 16, og 8 er 24 GB-ekvivalenten. Ingen scheduler-flagg her med vilje, se nedenfor.

    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
    Les logglinjen, ikke bare tapet

    Hvert --log_freq trinn skriver lerobot ut loss, grdn, lr, updt_s, data_s, smp/s og, på CUDA, mem_gb. mem_gb sier om batchen passer, lr om tidsplanen avtar, og data_s som nærmer seg updt_s betyr at datalasteren er flaskehalsen, ikke GPU-en.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Samle sjekkpunkter du kan sammenligne

    save_freq er som standard 20000, så en kjøring på 20000 trinn etterlater ett sjekkpunkt og ingenting å sammenligne det med. Sett 2000. For å pushe til Hub-en kreves --policy.repo_id.

    bash
    --save_freq=2000 \
    --policy.repo_id=${HF_USER}/smolvla_pick_place \
    --save_checkpoint_to_hub=true
  6. 6
    Gjenoppta hvis maskinen dør

    Pek --config_path til train_config.json ved siden av sjekkpunktet. lerobot nekter å starte i en eksisterende output_dir med mindre du gjenopptar, slik at du ikke kan overskrive en kjøring ved et uhell.

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

Flaggene som faktisk endrer resultatet

FlaggHva det gjørPå 24 GB
--batch_sizePrøver per trinn, omtrent lineært med VRAM4 til 8
--stepsTotalt antall optimaliseringstrinn20000 første pass
--policy.scheduler_decay_stepsCosinus-nedbrytningslengde, forhåndsinnstilt 30000Påvirker kun over 30000
--policy.use_ampBlandet presisjon; SmolVLA har ingen dtype-felttrue når minnet er knapt
--num_workersDatalasterprosesser, standard 4Øk til data_s slutter å stige
--dataset.eval_splitAndel episoder holdt tilbake per oppgave0.1, med --eval_steps
--policy.freeze_vision_encoderHolder visjonstårnet frossettrue på 24 GB
--policy.train_expert_onlyKun den ~100 M eksperten får gradientertrue først
Planen: hva 0.6.1 håndterer, og hva den ikke gjør

SmolVLA forhåndsinnstiller en cosinus-plan: scheduler_warmup_steps = 1000, scheduler_decay_steps = 30000, scheduler_decay_lr = 2.5e-6. Eldre råd sier at en kjøring på 20000 trinn derfor stopper midt i nedgangen. I 0.6.1 gjør den ikke det: CosineDecayWithWarmupSchedulerConfig.build() får --steps, og under num_decay_steps skalerer den begge, oppvarming 1000 til 666 og nedgang 30000 til 20000, og skriver ut Auto-scaling LR scheduler mens den gjør det. Den skalerer aldri oppover: nedgangen er begrenset med min(current_step, decay_steps), så standard --steps=100000 ligger på bunnen fra trinn 30000 til slutten, 70 prosent av kjøringen. Bare den lange siden trenger fortsatt --policy.scheduler_decay_steps. Kolonnen lr er der du sjekker.

Standardinnstillingene du arver hvis du ikke rører noe

En konfigurasjon i lerobot har sin egen optimalisator og planlegger forhåndsinnstilt, og med mindre du setter use_policy_training_preset=false vinner disse forhåndsinnstillingene. Halvparten av spørsmålene folk stiller om SmolVLA-trening besvares av en standardinnstilling de ikke visste eksisterte.

InnstillingStandard i lerobot 0.6.1Definert i
chunk_size / n_action_steps50 / 50SmolVLAConfig
num_steps (flytmatching støyfjerning)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 to linjene som overrasker folk er freeze_vision_encoder og train_expert_only, begge sanne. Ut av boksen trener du omtrent 100 M parametere, ikke 450 M, noe som er grunnen til at det passer på 24 GB. LeRobots egen referansekjøring på et fire-GPU H100-klyngesystem setter begge til usant; på ett 24 GB-kort gjør det en fungerende kjøring om til .

Minnejusteringen som ikke finnes

Veiledningens råd når du er minnebegrenset er å redusere batchstørrelsen og bruke gradientakkumulering for å gjenopprette den effektive batchen. Det er ingen gradientakkumulering i lerobot 0.6.1: TrainPipelineConfig har ikke et slikt felt, og strengen vises ingen steder i den utgitte pakken. AY-Robots-skjemaet viser en gradientakkumuleringsverdi på 8 for SmolVLA og bruker den heller ikke. Dine spaker på 24 GB er --batch_size, de to fryse-standardinnstillingene, og --policy.use_amp.

Hvor lang tid kjøringen tar, og hvor mange trinn som er nok

LeRobot publiserer veggklokke-ankere for five epochs over a roughly 50 episode dataset, about 45000 frames at 30 fps. Størrelsesordens tall, sier dokumentasjonen, men de utgjør forskjellen mellom å forvente en time og en dag.

OppsettPolicyBatchKlokketid
Enkel L4 / A10G (24 GB)smolvla4omtrent 3 til 6 t
Enkel A100 40 GBsmolvla16omtrent 1 til 2 t
4 x H100 80 GB med acceleratesmolvla32omtrent 1 til 2 t
Enkel RTX 4090 / RTX 3090 (24 GB)act8omtrent 30 til 60 min
Gjør epokearitmetikken før du velger --steps

Regelen er 5 til 10 epoker over datasettet, ikke et fast antall trinn: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). På referansedatasettet dokumentasjonen peker på, lerobot/svla_so100_pickplace, rapporterer metadata 50 episoder og 19631 rammer: batch 8 gir omtrent 2454 trinn per epoke, så 20000 trinn er omtrent 8 epoker. Halver batchen og det samme budsjettet kjøper halvparten av epokene, så gjør dette på nytt hver gang du endrer --batch_size.

Kjører den finjusterte policyen tilbake på armen

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
Oppgavestrengen må samsvare med den du spilte inn med. Modellen er betinget av den teksten, så en parafrase er en annen instruksjon.

De 245 ms per handlingstrinn er lett å misforstå: policyen sender ut chunk_size = 50 handlinger per fremoverpass og utfører n_action_steps = 50 av dem, så hvor ofte du betaler den kostnaden er satt av disse innstillingene, ikke av hvor ofte servoene får en kommando. Det er hva handlingssegmentering kjøper, og hvorfor en 245 ms modell kan drive en 30 Hz arm. Det som gjenstår er inferensforsinkelse på slutten av segmentet.

Måling (SmolVLA, ekte SO-100)SynkronAsynkron
Fullføringstid, plukk og plasser, 10 forsøk13.75 s9.70 s
Plukk- og plasseringssykluser i et fast tidsvindu919
Suksessrate gjennomsnittlig over de tre oppgavene78.3 %73.3 %

Den tredje raden er det de fleste rapporter hopper over. Asynkron inferens er omtrent 30 prosent raskere og dobler omtrent gjennomstrømningen i et fast vindu, og artikkelen kaller suksessratene sammenlignbare, noe de i gjennomsnitt er. Under overflaten falt sortering fra 70 til 50 prosent mens plukk og plasser økte med 5. lerobot 0.6.1 bærer den andre spaken i samme binærfil: --inference.type=rtc bytter utrullingen til sanntidssegmentering, noe skriptets egen bruksblokk anbefaler for de trege VLA-ene, Pi0, Pi0.5 og SmolVLA.

Inferens må sitte ved siden av servoene

Kontrollsløyfen er 20 til 485 ms per handlingstrinn avhengig av modellen, og offentlige internett-tur-retur-tider på toppen gjør en fungerende policy om til en nølende. Fjerninferens er levedyktig for sakte plukk og plasser, ikke rask reaktiv bevegelse: hvis oppgaven krever raske korreksjoner, hører GPU-en hjemme på samme LAN som armen.

7.4 V, ikke 12 V

Utenfor tema for en treningskjøring, men det avslutter flere SO-100-prosjekter enn noen hyperparameter. Feetech STS3215-servoene i SO-100 og SO-101 kjører på 7.4 V; 12 V ødelegger dem. LeKiwi blander en 7.4 V arm med en 12 V base, noe som er grunnen til at feil tønnekontakt finner feil stikkontakt.

To veier til samme sjekkpunkt

Du eier maskinen, miljøet og feilsøkingen. Den eneste skytjenesteavhengigheten er Hub-nedlastingen av basesjekkpunktet. Den rette veien hvis du vil endre policyen, hvis dataene ikke kan forlate nettverket ditt, eller hvis kortet er inaktivt.

  • Du kontrollerer CUDA-hjulet, driveren, ffmpeg-bygget og datalasteren.
  • Du kan patche configuration_smolvla.py og trene på nytt samme ettermiddag.
  • Du betaler i strøm og tid, ikke per kjøring, og feilsøker TorchCodec selv.
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
Hele den manuelle ruten i én blokk, lerobot 0.6.1.

Når SmolVLA er feil valg

Testen for om SmolVLA var det rette første forsøket er ikke om det fungerte, men om feilen fortalte deg noe. Oppnår du 60 eller 70 prosent, er en større modell en rimelig neste investering: dataene inneholder signal. Oppnår du 10 prosent, vil en 3 B-modell mest sannsynlig også oppnå 10 prosent, noe du nettopp lærte for tre dollar i stedet for tolv.

AY-Robots treningsmatrise: fem policyer som rader, fire robotarmer som kolonner
Hver celle er sin egen guide. SmolVLA har én for hver av de fire armene.

Verdt å lese før du bruker mer: Pi0.5 mot SmolVLA for mer kapasitet på samme idé, og GR00T N1.7 mot SmolVLA for NVIDIA-ruten, begge 80 GB-nivå til 4 til 12 USD per kjøring. Den andre veien, ACT er den billigere grunnlinjen: 80 M parametere, 20 ms per handlingstrinn, ingen språkbetinging. Alle fem ligger på policy-siden; arenaen har 85 modeller og 332 benchmark-resultater.

AY-Robots policy-sammenligning: parametere, GPU-nivå, latens, minimum episoder
De fire tallene som bestemmer en kjøring.

Sjekklisten før du skalerer noe

  1. Nådde lr sitt gulv på 2.5e-6? Under 30000 steg skalerer lerobot ned forfallet og sier ifra ved oppstart; over dette, sett --policy.scheduler_decay_steps selv.
  2. Mer enn ett sjekkpunkt, og episoder holdt tilbake med --dataset.eval_split slik at evalueringsfeilen betyr noe.
  3. Beveger policyen seg i det hele tatt? Et fallende tap med en urørlig arm har spesifikke årsaker: feilen faller, men policyen gjør ingenting.
  4. Overlever den et sceneskifte? Hvis ikke: policyen fungerer bare i ett oppsett.
  5. Skrev du ned frøet (seed)? lerobot bruker 1000 som standard, slik at to uberørte kjøringer forblir sammenlignbare.
  6. Først da: flere episoder, mer variasjon, eller en større modell. I den rekkefølgen.

For hvorfor disse modellene eksisterer og hva de gjør med språkinndata, er bakgrunnen; kjører montering gjennom til den første -kjøringen. For det ferdige sjekkpunktet, ; hvis armen aldri dukker opp, .

Tren SmolVLA på din egen arm

Velg modellen og armen, og guiden gir deg de nøyaktige standardinnstillingene, datasettformatet og hva kjøringen koster. SmolVLA ligger på 24 GB-nivået til 1 til 3 USD per kjøring.

Åpne treningsguidene
Kan jeg virkelig finjustere SmolVLA på et RTX 4090?

Ja. LeRobots beregningsguide anslår SmolVLA til omtrent 10 til 16 GB topp VRAM ved batch 8 med AdamW og lister 24 GB forbrukerkort som komfortable for det. Batch 64 i dokumentasjonseksemplet er paret med en enkelt A100. Minne skalerer omtrent lineært med batch, så bruk 4 eller 8 og følg med på mem_gb.

Hvor mange episoder trenger jeg egentlig?

AY-Robots setter minimumet til 30. LeRobot-dokumentasjonen anbefaler rundt 50 og rapporterer at 25 episoder av samme oppgave presterte dårlig. Struktur slår antall: referansesettet var 5 kube-posisjoner med 10 episoder hver, og den repetisjonen er det som generaliserer.

Dokumentasjonen sier batch 64, plattformen sender batch 2. Hvilken er riktig?

Begge, for forskjellig maskinvare. Dokumentasjonseksemplet bruker batch 64 og oppgir omtrent 4 timer for 20000 steg på en enkelt A100; beregningsguidens A100 40 GB anker er batch 16. Batch 2 er det AY-Robots sender på 24 GB-nivået. Lokalt er 4 til 8 midten, og epokearitmetikken endres med det.

SmolVLA eller ACT for en første kjøring på en SO-100?

ACT hvis oppgaven er en repeterende bevegelse og du ønsker den raskeste loopen: 20 ms per handlingstrinn, 80 M parametere, ingen språkkondisjonering. SmolVLA hvis du ønsker språkkondisjonering, flere oppgavestrenger i ett sjekkpunkt, og en forhåndstrent base. Begge ligger på 24 GB-nivået, så valget er oppgaven, ikke budsjettet.

Må jeg sette --policy.scheduler_decay_steps?

Bare når --steps er over 30000. SmolVLA forhåndsinnstiller cosinus-decay ved 30000 steg, og lerobot 0.6.1 nedskalerer det selv for en kortere kjøring, og logger "Auto-scaling LR scheduler" når det skjer. Det skalerer aldri opp, så standard --steps=100000 etterlater de siste 70000 stegene på 2.5e-6-gulvet.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started