SmolVLA modelsiden på AY-Robots viser antal parametre, GPU-niveau, inferensforsinkelse pr. handlingstrin og det minimale antal episoder
SmolVLALeRobotVLA TræningFinjusteringSO-100

Sådan træner du SmolVLA på en 24 GB GPU (lerobot 0.6.1)

AY-Robots ResearchAugust 23, 202617 min læsetid

SmolVLA er en VLA med 450 M parametre, der finjusteres på et enkelt 24 GB kort. Rigtige lerobot 0.6.1 kommandoer, de faktiske standardindstillinger, faldgruberne, der kostede en dag, og hvad en kørsel koster.

SmolVLA på én skærm

  • 450 M parametre, hvoraf omkring 100 M er en flow-matching action-ekspert. lerobot træner kun denne ekspert og holder VLM'en frossen, hvilket er grunden til, at den passer på ét kort.
  • LeRobots beregningsvejledning placerer smolvla-gruppen på cirka 10 til 16 GB peak VRAM ved batch 8 med AdamW. Derfor 24 GB.
  • Indgangspunktet er lerobot-train. Juni 2025 SmolVLA blogindlægget udskriver stadig python lerobot/scripts/train.py, en sti der ikke længere eksisterer. Alt nedenfor er lerobot 0.6.1.
  • Cosinus-skemaet er forudindstillet til at falde over 30000 trin. lerobot 0.6.1 nedskalerer dette for en kortere kørsel og logger det, men aldrig op: den standard 100000-trins kørsel ender på 2.5e-6 gulvet i 70000 trin.
  • Tredive episoder er AY-Robots minimum, på et 24 GB niveau der koster 1 til 3 USD pr. kørsel mod 4 til 12 for 80 GB modellerne.

De fleste, der ønsker en vision-sprog-handlingsmodel på en rigtig arm, stopper ved hardwaregrænsen. GR00T N1.7 og Pi0.5 er omkring tre milliarder parametre hver og kræver en A100 80 GB eller en H100. Hvis det, du ejer, er en gaming-pc med et RTX 4090, er det enden på vejen. SmolVLA er undtagelsen: 450 M parametre, inden i LeRobot, bygget til at finjustere på ét forbrugerkort og servere fra en CPU.

Den manuelle rute først: installer lerobot, træk lerobot/smolvla_base checkpointet, kør den rigtige kommando, læs kørslen mens den sker. Derefter platformruten, og hvor den ikke hjælper.

Hvad SmolVLA er, i tal du kan tjekke

SmolVLA er en flow matching politik, der er fastgjort til en lille vision-sprogmodel. Rygraden er SmolVLM2-500M-Video-Instruct; artiklen beholder kun de første 16 lag af dens sprogmodel, begrænser hver kameraramme til 64 visuelle tokens med en pixel shuffle i stedet for billedflisebelægning, og fletter krydsopmærksomhed med et selvopmærksomhedslag hver anden blok. Inferenzomkostninger var en designbegrænsning, ikke en eftertanke.

EgenskabVærdiKilde
Samlede parametreca. 450 Mpaper
Handlings-ekspertca. 100 M, flow matchingpaper
VLM-rygradHuggingFaceTB/SmolVLM2-500M-Video-Instructvlm_model_name
Anvendte VLM-lagde første 16 af sprogmodellennum_vlm_layers = 16
Visuelle tokens pr. ramme64, pixel shuffle, ingen flisebelægningpaper
Forudtræning481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUspaper

Benchmark-resultaterne er grunden til, at folk beskæftiger sig med en 450 M model. På LIBERO opnår den i gennemsnit 87,3 procent mod 76,5 for OpenVLA på 7 B og 86,0 for en robotik-forudtrænet Pi0 på 3,3 B; på Meta-World, 57,3 mod 47,9. På ægte SO-100 hardware giver multi-task træning 75 procent på grib og placer, 90 på stabling, 70 på sortering, med et gennemsnit på 78,3, hvor ACT trænet pr. opgave i gennemsnit opnåede 48,3. De samme rækker findes ved siden af hver publiceret VLA i SmolVLA arena-indgangen og ACT mod SmolVLA sammenligningen.

Den ærlige version af størrelsespåstanden

SmolVLA er ikke bedre end en 3 B model til alt. Artiklens egen SO-101 tabel afslører det: 90 procent succes i distribution, 50 procent uden for den, på en platform den aldrig blev forudtrænet på. Hvad den hævder, og understøtter, er, at den i forhold til Pi0 træner omkring 40 procent hurtigere på 6 gange mindre hukommelse.

Hvorfor et 24 GB kort er det rette til den første kørsel

LeRobot leverer en guide til beregningsstørrelse, den mest nyttige side i repoet til dette. Den grupperer politikker efter backbone-størrelse og angiver én VRAM-ramme pr. gruppe, målt ved batchstørrelse 8 med AdamW, som er lerobot-standard. Optimeringsstatus alene tilføjer 30 til 100 procent ud over en ren forward- og backward-pass, så disse er ikke tal, der udelukkende repræsenterer vægte.

GruppePolitikkerPeak VRAM (batch 8, AdamW)Start-GPU'er
Let BCact, vqbet, tdmpcca. 2 til 6 GBRTX 3060, L4
Diffusiondiffusion, multi_task_ditca. 8 til 14 GBRTX 4070+, L4
Lille VLAsmolvlaca. 10 til 16 GBRTX 4080+, L4, A10G
Stor VLApi0, pi0_fast, pi05, xvla, wall_xca. 24 til 40 GBA100 40 GB+
Multimodalgroot, eo1ca. 24 til 40 GBA100 40 GB+

Ti til seksten gigabyte ved batch 8 er argumentet: et 24 GB kort passer til det plus dataloaderen. AY-Robots placerer SmolVLA på RTX 4090 eller ethvert 24 GB kort, minimum 30 episoder, LeRobot v3.0 data, 245 ms pr. handlingstrin. Lejet, det er 2 til 5 timer til 0.30 til 0.60 USD i timen, ca. 1 til 3 USD pr. finjusteringskørsel, mod 4 til 12 USD på 80 GB tier, som GR00T og Pi0.5 kræver (priser). En mislykket SmolVLA-kørsel er en kaffe; en mislykket GR00T-kørsel, frokost.

AY-Robots omkostningstabel: kort pr. politik, køretid, pris pr. kørsel, nødvendige episoder
SmolVLA og ACT sidder på 24 GB-rækken, de tre 3 B-modeller på 80 GB-rækken.
Start med SmolVLA i stedet for en 3 B-model
Hvad du får
  • Passer til hardware, du måske allerede ejer: ca. 10 til 16 GB ved batch 8.
  • Et spildt kørsel koster timer og encifrede dollars, så du har råd til at tage fejl af datasættet.
  • Forudtrænet på fællesskabsdatasæt delt under lerobot-tagget, med reelle SO-100 og SO-101 resultater.
  • Den lever i lerobot selv: ingen leverandør-repo, og smolvla_base er ikke gated.
Hvad du giver afkald på
  • 450 M er stadig 450 M: succes uden for distribution falder fra 90 til 50 procent i papirets SO-101-tabel.
  • Den kræver LeRobot v3.0-data; en v2.1-optagelse skal konverteres (dataset rejected v3).
  • 245 ms pr. handlingstrin er en kompetent pick-and-place-controller, ikke en reaktiv.
  • Dokumentationseksemplet kører batch 64 på en A100; på 24 GB bytter du batch for vægur.

Trin 0: datasættet bestemmer kørslen, ikke flagene

Intet nedenfor betyder noget, hvis optagelsen er dårlig. LeRobot SmolVLA-siden er direkte: referencedatasættet var 50 episoder fordelt på 5 terningpositioner, 10 pr. position, og den samme opgave udført med 25 episoder klarede sig dårligt. Gentagelse pr. variation generaliserer, råt episodeantal gør ikke. Har du aldrig optaget en? Start ved optag dit første datasæt med desktopklienten, som skriver LeRobot-format ud af en teleoperation-session, eller lån en fra datasætmappen.

  • Mindst 30 episoder på AY-Robots, omkring 50 for LeRobot referenceopskriften.
  • Hver variation du forventer ved udrulning, gentaget flere gange.
  • Én opgavestreng, stavet identisk ved optagelse og udrulning. Modellen er betinget af den tekst.
  • Faste kameraer. Et kamera flyttet mellem optagelse og udrulning er den mest almindelige årsag til, at en ren tabskurve giver en ubevægelig arm.
  • En tilbageholdt variation, du aldrig har trænet på, så du har noget ærligt at teste imod.
Datasætfælden der koster en dag

SmolVLA, Pi0.5 og ACT ønsker LeRobot v3.0. GR00T N1.7 og N1.5 ønsker v2.0 eller v2.1, og deres loader crasher på v3.0. Optag én gang, planlæg at sammenligne modeller senere, og du vil konvertere den ene eller den anden vej: datasæt afvist 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å der er intet ekstra at installere. Der er ingen konverter i den anden retning i pakken.

Mere om dette i hvordan man indsamler træningsdata af høj kvalitet til VLA for robotmanipulation. Den korte version: 30 til 50 rene episoder af én opgave med bevidst variation slår 200 sjuskede episoder af 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 at patche træneren, klon repoet og brug pip install -e ".[smolvla,training]" i stedet.

Den grundlæggende lerobot installation er slank og gemmer tunge afhængigheder bag 'extras': smolvla tilføjer transformers, num2words og accelerate, training datasætsstakken og wandb, core_scripts hardware- og visualiseringsafhængighederne. På Linux bestemmer installationsstien også dit CUDA-wheel: PyPI-standard er et cu130-wheel med en drivergrænse på 580.65, så på en ældre driver skal du først installere torch fra cu128-indekset, derefter lerobot.

policy.path og policy.type er ikke det samme flag

--policy.path=lerobot/smolvla_base indlæser det fortrænede 450 M checkpoint og finjusterer det. --policy.type=smolvla bygger en ny SmolVLA, og konfigurationsstandarden load_vlm_weights = False betyder, at den ikke engang henter SmolVLM2 backbone-vægtene, medmindre du beder om det. Gør du det forkert, træner kørslen gladeligt, koster det samme, og lærer intet overførbart.

Træningskørslen, kommando for kommando

  1. 1
    Autentificer mod Hub'en

    Basis-checkpointet kommer fra Hub'en, og dit datasæt gør det sandsynligvis også.

    bash
    hf auth login
  2. 2
    Læs indstillingerne én gang

    Hvert felt i pipeline- og politikkonfigurationen er et flag. Skim det, før du dykker ned i kildekoden.

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

    Dokumentationseksemplet kører batch 64 på en enkelt A100; compute-guidens egen A100 40 GB anker er batch 16, og 8 er ækvivalenten for 24 GB. Intet scheduler-flag 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
    Læs loglinjen, ikke kun tabet

    Hvert --log_freq trin udskriver lerobot loss, grdn, lr, updt_s, data_s, smp/s og, på CUDA, mem_gb. mem_gb fortæller, om batchen passer, lr om skemaet aftager, og data_s, der nærmer sig updt_s, betyder, at dataloaderen er flaskehalsen, ikke GPU'en.

    bash
    # if data_s creeps toward updt_s
    lerobot-train ... --num_workers=8
  5. 5
    Indsaml checkpoints, du kan sammenligne

    save_freq er som standard 20000, så en kørsel på 20000 trin efterlader ét checkpoint og intet at sammenligne det med. Sæt til 2000. For at pushe til Hub'en kræves --policy.repo_id.

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

    Peg --config_path mod train_config.json ved siden af checkpointet. lerobot nægter at starte i en eksisterende output_dir, medmindre du genoptager, så du kan ikke overskrive en kørsel ved et uheld.

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

De flags, der faktisk ændrer resultatet

FlagHvad det gørPå 24 GB
--batch_sizePrøver pr. trin, groft lineært med VRAM4 to 8
--stepsSamlet antal optimeringstrin20000 first pass
--policy.scheduler_decay_stepsCosinus-henfaldslængde, forudindstillet 30000Only bites above 30000
--policy.use_ampBlandet præcision; SmolVLA har intet dtype-felttrue when memory is tight
--num_workersDataloader-processer, standard 4Raise until data_s stops climbing
--dataset.eval_splitAndel af episoder tilbageholdt pr. opgave0.1, with --eval_steps
--policy.freeze_vision_encoderHolder vision-tårnet frossettrue on 24 GB
--policy.train_expert_onlyKun den ~100 M ekspert får gradientertrue first
Skemaet: hvad 0.6.1 håndterer, og hvad det ikke gør

SmolVLA forudindstiller en cosinus-skema: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Ældre råd siger, at et 20000-trins kørsel derfor går i stå midt i nedgangen. I 0.6.1 gør det ikke: `CosineDecayWithWarmupSchedulerConfig.build()` får overført `--steps`, og under `num_decay_steps` omskaleres begge, warmup 1000 til 666 og decay 30000 til 20000, og udskriver Auto-scaling LR scheduler undervejs. Den omskaleres aldrig opad: nedgangen er begrænset med `min(current_step, decay_steps)`, så standard `--steps=100000` ligger på gulvet fra trin 30000 til slutningen, 70 procent af kørslen. Kun den lange side kræver stadig `--policy.scheduler_decay_steps`. `lr`-kolonnen er der, hvor du tjekker.

Standardindstillingerne du arver, hvis du ikke rører noget

En politik konfiguration i lerobot indeholder sin egen optimerings- og skemapresets, og medmindre du indstiller use_policy_training_preset=false vinder disse presets. Halvdelen af de spørgsmål, folk stiller om SmolVLA-træning, besvares af en standardindstilling, de ikke vidste eksisterede.

IndstillingStandard i lerobot 0.6.1Defineret i
chunk_size / n_action_steps50 / 50SmolVLAConfig
num_steps (flow-matching støjreduktion)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 linjer, der overrasker folk, er freeze_vision_encoder og train_expert_only, begge sande. Som standard træner du cirka 100 M parametre, ikke 450 M, hvilket er grunden til, at det passer på 24 GB. LeRobots egen referencetest på et fire-GPU H100-cluster sætter begge til falsk; på et enkelt 24 GB kort forvandler det en fungerende kørsel til .

Hukommelsesknappen, der ikke er der

Vejledningens råd, når du er hukommelsesbegrænset, er at reducere batchstørrelsen og bruge gradientakkumulering til at genoprette den effektive batch. Der er ingen gradientakkumulering i lerobot 0.6.1: TrainPipelineConfig har ikke et sådant felt, og strengen vises ingen steder i den udgivne pakke. AY-Robots-formularen viser en gradientakkumuleringsværdi på 8 for SmolVLA og anvender den heller ikke. Dine håndtag på 24 GB er --batch_size, de to standardindstillinger for frysning og --policy.use_amp.

Hvor lang tid kørslen tager, og hvor mange trin der er nok

LeRobot offentliggør "wall-clock" ankerpunkter for fem epoker over et datasæt på cirka 50 episoder, omkring 45000 billeder ved 30 fps. Størrelsesordens tal, siger dokumentationen, men de er forskellen mellem at forvente en time og en dag.

OpsætningPolicyBatchKøretid
Enkelt L4 / A10G (24 GB)smolvla4about 3 to 6 h
Enkelt A100 40 GBsmolvla16about 1 to 2 h
4 x H100 80 GB med acceleratesmolvla32about 1 to 2 h
Enkelt RTX 4090 / RTX 3090 (24 GB)act8about 30 to 60 min
Udfør epokearitmetikken, før du vælger --steps

Reglen er 5 til 10 epoker over datasættet, ikke et fast antal trin: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). På referencedatasættet, som dokumentationen henviser til, lerobot/svla_so100_pickplace, rapporterer metadataene 50 episoder og 19631 frames: batch 8 giver omkring 2454 trin per epoke, så 20000 trin er cirka 8 epoker. Halver batchen, og det samme budget køber halvdelen af epokerne, så gentag dette, hver gang du ændrer --batch_size.

Kør den finjusterede policy tilbage 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
Opgavestrengen skal matche den, du optog med. Modellen er betinget af den tekst, så en parafrase er en anden instruktion.

De 245 ms per handlingstrin er lette at misforstå: politikken udsender chunk_size = 50 handlinger per forward pass og udfører n_action_steps = 50 af dem, så hvor ofte du betaler den omkostning, bestemmes af disse parametre, ikke af hvor ofte servoerne modtager en kommando. Det er, hvad handlings-chunking køber, og hvorfor en 245 ms model kan drive en 30 Hz arm. Hvad der er tilbage, er inferensforsinkelse ved slutningen af chunken.

Måling (SmolVLA, ægte SO-100)SynkronAsynkron
Gennemførelsestid, pick and place, 10 forsøg13.75 s9.70 s
Pick and place-cyklusser i et fast tidsvindue919
Succesrate gennemsnitligt over de tre opgaver78.3 %73.3 %

Den tredje række er, hvad de fleste rapporter springer over. Asynkron inferens er omkring 30 procent hurtigere og fordobler omtrent gennemløbet i et fast vindue, og artiklen kalder succesraterne sammenlignelige, hvilket de i gennemsnit er. Under overfladen faldt sortering fra 70 til 50 procent, mens pick and place steg med 5. lerobot 0.6.1 indeholder den anden løftestang i samme binære fil: --inference.type=rtc skifter udrulningen til real-time chunking, hvilket scriptets egen brugsblok anbefaler for de langsomme VLA'er, Pi0, Pi0.5 og SmolVLA.

Inferens skal sidde ved siden af servoerne

Kontrolsløjfen er 20 til 485 ms per handlingstrin afhængigt af modellen, og offentlige internet-round trips oveni forvandler en fungerende politik til en tøvende. Fjerninferens er levedygtig for langsom pick and place, ikke hurtig reaktiv bevægelse: hvis opgaven kræver hurtige korrektioner, hører GPU'en hjemme på samme LAN som armen.

7.4 V, ikke 12 V

Uden for emnet for en træningskørsel, men det afslutter flere SO-100-projekter end nogen hyperparameter. Feetech STS3215-servoerne i SO-100 og SO-101 kører ved 7.4 V; 12 V ødelægger dem. LeKiwi blander en 7.4 V arm med en 12 V base, hvilket er sådan, den forkerte tøndestik finder den forkerte fatning.

To veje til det samme checkpoint

Du ejer maskinen, miljøet og fejlfindingen. Den eneste cloud-afhængighed er Hub-download af basis-checkpointet. Den rigtige vej, hvis du vil ændre politikken, hvis dataene ikke kan forlade dit netværk, eller hvis kortet er inaktivt.

  • Du kontrollerer CUDA-hjulet, driveren, ffmpeg-buildet og dataloaderen.
  • Du kan patche configuration_smolvla.py og genoptræne samme eftermiddag.
  • Du betaler i elektricitet og tid, ikke per kørsel, og fejlfinder 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 rute i én blok, lerobot 0.6.1.

Når SmolVLA er det forkerte valg

Testen for, om SmolVLA var det rigtige første forsøg, er ikke, om det virkede, men om fejlen fortalte dig noget. Opnå 60 eller 70 procent, og en større model er en rimelig næste investering: dataene indeholder et signal. Opnå 10 procent, og en 3 B-model vil sandsynligvis også opnå 10 procent, hvilket du lige har lært for tre dollars i stedet for tolv.

AY-Robots træningsmatrix: fem politikker som rækker, fire robotarme som kolonner
Hver celle er sin egen guide. SmolVLA har én for hver af de fire arme.

Værd at læse, før du bruger mere: Pi0.5 against SmolVLA for mere kapacitet på samme idé, og GR00T N1.7 against SmolVLA for NVIDIA-ruten, begge 80 GB tier til 4 til 12 USD pr. kørsel. Den anden vej, ACT er den billigere baseline: 80 M parametre, 20 ms pr. handlingstrin, ingen sprogkonditionering. Alle fem findes på politikksiden; arenaen har 85 modeller og 332 benchmarkresultater.

AY-Robots politiksammenligning: parametre, GPU-tier, latenstid, minimumsepisoder
De fire tal, der afgør en kørsel.

Tjeklisten før du skalerer noget

  1. Nåede lr sit 2.5e-6 gulv? Under 30000 trin omjusterer lerobot henfaldet og meddeler dette ved opstart; derover skal du selv indstille --policy.scheduler_decay_steps.
  2. Mere end ét checkpoint og episoder holdt tilbage med --dataset.eval_split, så evalueringsfejlen betyder noget.
  3. Bevæger politikken sig overhovedet? Et faldende tab med en ubevægelig arm har specifikke årsager: tab falder, politikken gør intet.
  4. Overlever den et sceneskift? Hvis ikke: politikken virker kun i én opsætning.
  5. Skrev du seed'et ned? lerobot bruger som standard 1000, så to uberørte kørsler forbliver sammenlignelige.
  6. Først derefter: flere episoder, mere variation eller en større model. I den rækkefølge.

For at forstå hvorfor disse modeller eksisterer, og hvad de gør med sproginputtet, , er baggrunden; gennemgår samling via til den første kørsel. For det færdige checkpoint, ; hvis armen aldrig dukker op, .

Træn SmolVLA på din egen arm

Vælg modellen og armen, og guiden giver dig de præcise standardindstillinger, datasætformatet og hvad kørslen koster. SmolVLA er på 24 GB-niveauet til 1 til 3 USD per kørsel.

Åbn træningsvejledningerne
Kan jeg virkelig finjustere SmolVLA på et RTX 4090?

Ja. LeRobots compute-guide angiver SmolVLA til cirka 10 til 16 GB peak VRAM ved batch 8 med AdamW og nævner 24 GB forbrugerkort som komfortable til det. Batch 64 i dokumentationseksemplet er parret med en enkelt A100. Hukommelsen skalerer omtrent lineært med batch, så brug 4 eller 8 og hold øje med mem_gb.

Hvor mange episoder har jeg egentlig brug for?

AY-Robots sætter minimum til 30. LeRobot-dokumentationen anbefaler omkring 50 og rapporterer, at 25 episoder af den samme opgave klarede sig dårligt. Struktur slår antal: referencesættet var 5 terningpositioner med 10 episoder hver, og den gentagelse er det, der generaliserer.

Dokumentationen siger batch 64, platformen sender batch 2. Hvilken er korrekt?

Begge, for forskellig hardware. Dokumentationseksemplet bruger batch 64 og angiver cirka 4 timer for 20000 trin på en enkelt A100; compute-guidens A100 40 GB anker er batch 16. Batch 2 er det, AY-Robots sender på 24 GB-niveauet. Lokalt er 4 til 8 midten, og epokearitmetikken ændrer sig med det.

SmolVLA eller ACT til en første kørsel på en SO-100?

ACT hvis opgaven er en gentagen bevægelse, og du ønsker den hurtigste loop: 20 ms per handlingstrin, 80 M parametre, ingen sprogkonditionering. SmolVLA hvis du ønsker sprogkonditionering, flere opgavestrenge i ét checkpoint og en fortrænet base. Begge ligger på 24 GB-niveauet, så valget er opgaven, ikke budgettet.

Skal jeg indstille --policy.scheduler_decay_steps?

Kun når --steps er over 30000. SmolVLA forudindstiller cosinus-decay ved 30000 trin, og lerobot 0.6.1 nedskalerer det selv for en kortere kørsel og logger "Auto-scaling LR scheduler", når det sker. Det skalerer aldrig op, så standard --steps=100000 efterlader de sidste 70000 trin på 2.5e-6 gulvet.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started