
SmolVLA is 'n 450 M parameter VLA wat fyninstel op 'n enkele 24 GB kaart. Werklike lerobot 0.6.1 opdragte, die werklike verstekwaardes, die slaggate wat 'n dag gekos het, en wat 'n uitvoering kos.
SmolVLA op een skerm
- •450 M parameters, waarvan ongeveer 100 M 'n vloeipas-aksie-ekspert is. lerobot lei slegs daardie ekspert op en hou die VLM gevries, daarom pas dit op een kaart.
- •LeRobot se rekenaargids plaas die smolvla-groep op ongeveer 10 tot 16 GB piek VRAM by bondel 8 met AdamW. Vandaar 24 GB.
- •Die toegangspunt is lerobot-train. Die Junie 2025 SmolVLA blogpos druk steeds python lerobot/scripts/train.py, 'n pad wat nie meer bestaan nie. Alles hieronder is lerobot 0.6.1.
- •Die kosinus-skedule is vooraf ingestel om oor 30000 stappe te verval. lerobot 0.6.1 skaal dit af vir 'n korter loop en teken dit aan, maar nooit op nie: die standaard 100000 stap loop eindig op die 2.5e-6 vloer vir 70000 stappe.
- •Dertig episodes is die AY-Robots minimum, op 'n 24 GB vlak wat 1 tot 3 USD per loop kos teenoor 4 tot 12 vir die 80 GB modelle.
Die meeste mense wat 'n visie-taal-aksie-model op 'n regte arm wil hê, stop by die hardewarelyn. GR00T N1.7 en Pi0.5 is elk ongeveer drie miljard parameters en benodig 'n A100 80 GB of 'n H100. As wat jy besit 'n speletjie-rekenaar met 'n RTX 4090 is, is dit die einde van die pad. SmolVLA is die uitsondering: 450 M parameters, binne LeRobot, gebou om op een verbruikerskaart te verfyn en vanaf 'n SVE te bedien.
Die handmatige roete eers: installeer lerobot, trek die lerobot/smolvla_base kontrolepunt, voer die regte opdrag uit, lees die loop terwyl dit gebeur. Dan die platformroete, en waar dit nie help nie.
Wat SmolVLA is, in syfers wat jy kan nagaan
SmolVLA is 'n vloeipas beleid wat aan 'n klein visie-taalmodel vasgebout is. Die ruggraat is SmolVLM2-500M-Video-Instruct; die referaat behou slegs die eerste 16 lae van sy taalmodel, beperk elke kamera-raam tot 64 visuele tekens met 'n pixel-skuifel in plaas van beeldteëls, en wissel kruis-aandag af met 'n selfaandaglaag elke tweede blok. Afleidingskoste was 'n ontwerpsbeperking, nie 'n nagedagte nie.
| Eiendom | Waarde | Bron |
|---|---|---|
| Totale parameters | ongeveer 450 M | referaat |
| Aksie-kenner | ongeveer 100 M, vloeipas | referaat |
| VLM-ruggraat | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| Gebruikte VLM-lae | eerste 16 van die taalmodel | num_vlm_layers = 16 |
| Visuele tekens per raam | 64, pixel-skuifel, geen teëlwerk | referaat |
| Vooropleiding | 481 gemeenskapsdataskemas, 22.9 K episodes, 10.6 M rame; 200000 stappe by globale bondel 256 op 4 GPU's | referaat |
Die maatstawwe is hoekom mense die moeite doen met 'n 450 M model. Op LIBERO behaal dit gemiddeld 87.3 persent teenoor 76.5 vir OpenVLA teen 7 B en 86.0 vir 'n robotika-vooropgeleide Pi0 teen 3.3 B; op Meta-World, 57.3 teenoor 47.9. Op regte SO-100 hardeware, lewer multi-taak opleiding 75 persent op optel en plaas, 90 op stapel, 70 op sortering, met 'n gemiddeld van 78.3, waar ACT per taak opgelei gemiddeld 48.3 behaal het. Dieselfde rye staan langs elke gepubliseerde VLA in die SmolVLA arena-inskrywing en die ACT teen SmolVLA vergelyking.
SmolVLA is nie beter as 'n 3 B model in alles nie. Die referaat se eie SO-101 tabel is die bewys: 90 persent sukses in verspreiding, 50 persent daarbuite, op 'n platform waarop dit nooit vooropgelei is nie. Wat dit wel beweer, en ondersteun, is dat dit teenoor Pi0 ongeveer 40 persent vinniger oplei op 6 keer minder geheue.
Waarom 'n 24 GB kaart die regte eerste lopie is
LeRobot verskaf 'n rekenaar-groottegids, die nuttigste bladsy in die repo hiervoor. Dit groepeer beleide volgens ruggraatgrootte en gee een VRAM-omhulsel per groep, gemeet teen bondelgrootte 8 met AdamW, die lerobot-verstek. Optimaliseerderstatus alleen voeg 30 tot 100 persent by oor 'n kaal vorentoe- en agtertoe-pas, so dit is nie slegs-gewigte-syfers nie.
| Groep | Beleide | Piek VRAM (bondel 8, AdamW) | Beginner GPU's |
|---|---|---|---|
| Ligte BC | act, vqbet, tdmpc | about 2 to 6 GB | RTX 3060, L4 |
| Diffusie | diffusion, multi_task_dit | about 8 to 14 GB | RTX 4070+, L4 |
| Klein VLA | smolvla | about 10 to 16 GB | RTX 4080+, L4, A10G |
| Groot VLA | pi0, pi0_fast, pi05, xvla, wall_x | about 24 to 40 GB | A100 40 GB+ |
| Multimodaal | groot, eo1 | about 24 to 40 GB | A100 40 GB+ |
Tien tot sestien gigagrepe teen bondel 8 is die argument: 'n 24 GB kaart pas dit plus die datalaaiër. AY-Robots plaas SmolVLA op die RTX 4090 of enige 24 GB kaart, minimum 30 episodes, LeRobot v3.0 data, 245 ms per aksiestap. Gehuur, dit is 2 tot 5 uur teen 0.30 tot 0.60 USD per uur, ongeveer 1 tot 3 USD vir 'n fyninstelling lopie, teenoor 4 tot 12 USD op die 80 GB vlak wat GR00T en Pi0.5 benodig (pryse). 'n Mislukte SmolVLA-lopie is 'n koffie; 'n mislukte GR00T-lopie, middagete.

- Pas by hardeware wat jy dalk reeds besit: ongeveer 10 tot 16 GB by bondel 8.
- 'n Vermorste loop kos ure en enkelsyfer dollars, so jy kan bekostig om verkeerd te wees oor die datastel.
- Vooraf opgelei op gemeenskapsdatastelle gedeel onder die lerobot-etiket, met werklike SO-100 en SO-101 resultate.
- Dit woon in lerobot self: geen verskaffer-repo, en smolvla_base is nie afgesper nie.
- 450 M is steeds 450 M: buite-verspreiding sukses daal van 90 tot 50 persent in die referaat se SO-101 tabel.
- Dit benodig LeRobot v3.0 data; 'n v2.1 opname moet omgeskakel word (datastel verwerp v3).
- 245 ms per aksiestap is 'n bekwame optel-en-plaas beheerder, nie 'n reaktiewe een nie.
- Die dokumentasie voorbeeld loop bondel 64 op 'n A100; op 24 GB ruil jy bondel vir werklike tyd.
Stap 0: die datastel besluit die loop, nie die vlae nie
Niks hieronder maak saak as die opname sleg is nie. Die LeRobot SmolVLA bladsy is stomp: die verwysingsdatastel was 50 episodes oor 5 kubusposisies, 10 per posisie, en dieselfde taak by 25 episodes het swak presteer. Herhaling per variasie veralgemeen, rou episode telling doen nie. Nog nooit een opgeneem nie? Begin by neem jou eerste datastel op met die rekenaarkliënt, wat LeRobot-formaat skryf uit 'n tele-operasie sessie, of leen een uit die datastelgids.
- Minstens 30 episodes op AY-Robots, ongeveer 50 vir die LeRobot verwysingsresep.
- Elke variasie wat jy by ontplooiing verwag, verskeie kere herhaal.
- Een taakstring, identies gespel tydens opname en ontplooiing. Die model is gekondisioneer op daardie teks.
- Vaste kameras. 'n Kamera wat tussen opname en ontplooiing verskuif is die mees algemene rede waarom 'n skoon verlieskurwe 'n beweginglose arm gee.
- 'n Uitgehoue variasie waarop jy nooit opgelei het nie, sodat jy iets eerlik het om teen te toets.
SmolVLA, Pi0.5 en ACT benodig LeRobot v3.0. GR00T N1.7 en N1.5 benodig v2.0 of v2.1 en hul laaier val ineen op v3.0. Neem een keer op, beplan om modelle later te vergelyk, en jy sal op een of ander manier omskakel: datastel verwerp v3.
# 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_placeMeer hieroor in hoe om hoë-gehalte VLA-opleidingsdata te versamel. Die kort weergawe: 30 tot 50 skoon episodes van een taak met doelbewuste variasie klop 200 slordige episodes van drie, met 'n marge wat geen hiperparameter kan oorbrug nie.
Installeer lerobot 0.6.1
# 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-infoDie basis lerobot installasie is skraal en sluit swaar afhanklikhede agter ekstras in: smolvla voeg transformers, num2words en accelerate by, training die datastelstapel en wandb, core_scripts die hardeware- en visualisering-afhanklikhede. Op Linux bepaal die installasiepad ook jou CUDA-wiel: die PyPI-verstek is 'n cu130-wiel met 'n drywervloer van 580.65, so op 'n ouer drywer installeer eers torch vanaf die cu128-indeks, dan lerobot.
--policy.path=lerobot/smolvla_base laai die voorafopgeleide 450 M kontrolepunt en verfyn dit. --policy.type=smolvla bou 'n vars SmolVLA, en die konfigurasie-verstek load_vlm_weights = False beteken dit trek nie eers die SmolVLM2-rugsteungewigte af nie, tensy jy vra. Kry dit verkeerd en die loop oefen gelukkig, kos dieselfde, en leer niks oordraagbaars nie.
Die opleidingslopie, opdrag vir opdrag
- 1Verifieer teen die Hub
Die basiskontrolepunt kom van die Hub, en jou datastel waarskynlik ook.
bashhf auth login - 2Lees die opsies een keer
Elke veld van die pyplyn- en beleidskonfigurasie is 'n vlag. Skim dit voordat jy in die bron delf.
bashlerobot-train --help - 3Begin die fyninstelling
Die dokumentasievoorbeeld loop bondel 64 op 'n enkele A100; die rekenaargids se eie A100 40 GB anker is bondel 16, en 8 is die 24 GB ekwivalent. Geen skeduleerder-vlag hier met opset nie, sien hieronder.
bashlerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/so100_pick_place \ --batch_size=8 \ --steps=20000 \ --save_freq=2000 \ --log_freq=200 \ --seed=1000 \ --output_dir=outputs/train/smolvla_pick_place \ --job_name=smolvla_pick_place \ --policy.device=cuda \ --wandb.enable=true - 4Lees die logreël, nie net die verlies nie
Elke --log_freq stappe druk lerobot verlies, grdn, lr, updt_s, data_s, smp/s en, op CUDA, mem_gb. mem_gb sê of die bondel pas, lr of die skedule verval, en data_s wat updt_s nader, beteken die datalaai is die knelpunt, nie die GPU nie.
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5Versamel kontrolepunte wat jy kan vergelyk
save_freq verstek na 20000, so 'n 20000 stap-lopie laat een kontrolepunt en niks om dit mee te vergelyk nie. Stel 2000. Om na die Hub te stoot benodig --policy.repo_id.
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6Hervat as die masjien sterf
Wys --config_path na die train_config.json langs die kontrolepunt. lerobot weier om in 'n bestaande output_dir te begin tensy jy hervat, so jy kan nie 'n lopie per ongeluk oorskryf nie.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Die vlae wat werklik die uitkoms verander
| Vlag | Wat dit doen | Op 24 GB |
|---|---|---|
| --batch_size | Monsters per stap, rofweg lineêr in VRAM | 4 to 8 |
| --steps | Totale optimiseerder stappe | 20000 first pass |
| --policy.scheduler_decay_steps | Kosinus vervallengte, vooraf ingestel 30000 | Werk slegs bo 30000 |
| --policy.use_amp | Gemengde presisie; SmolVLA het geen dtype-veld nie | waar wanneer geheue beperk is |
| --num_workers | Datalaaierprosesse, verstek 4 | Verhoog totdat data_s ophou klim |
| --dataset.eval_split | Fraksie van episodes wat per taak uitgehou word | 0.1, with --eval_steps |
| --policy.freeze_vision_encoder | Hou die visietoring gevries | waar op 24 GB |
| --policy.train_expert_only | Slegs die ~100 M deskundige kry gradiënte | waar eerste |
SmolVLA stel 'n kosinus-skedule voor: `scheduler_warmup_steps = 1000`, `scheduler_decay_steps = 30000`, `scheduler_decay_lr = 2.5e-6`. Ouer advies sê 'n 20000-stap-lopie stagneer dus halfpad deur die verval. In 0.6.1 gebeur dit nie: `CosineDecayWithWarmupSchedulerConfig.build()` word `--steps` gegee, en onder `num_decay_steps` herskaal dit beide, opwarming 1000 na 666 en verval 30000 na 20000, en druk Auto-scaling LR scheduler soos dit doen. Dit herskaal nooit opwaarts nie: die verval word vasgeklem met `min(current_step, decay_steps)`, so die standaard `--steps=100000` sit op die vloer van stap 30000 tot die einde, 70 persent van die lopie. Slegs daardie lang kant benodig steeds `--policy.scheduler_decay_steps`. Die `lr`-kolom is waar jy kyk.
Die verstekwaardes wat jy erf as jy niks aanraak nie
'n beleid konfigurasie in lerobot dra sy eie optimiseerder en skeduleerder voorafinstelling, en tensy jy use_policy_training_preset=false stel, wen daardie voorafinstellings. Die helfte van die vrae wat mense oor SmolVLA-opleiding vra, word beantwoord deur 'n verstekwaarde waarvan hulle nie geweet het bestaan nie.
| Instelling | Verstek in lerobot 0.6.1 | Gedefinieer in |
|---|---|---|
| chunk_size / n_action_steps | 50 / 50 | SmolVLAConfig |
| num_steps (vloeipas-ontruising) | 10 | SmolVLAConfig |
| optimizer_lr | 1e-4 | SmolVLAConfig |
| scheduler_warmup_steps | 1000 | SmolVLAConfig |
| scheduler_decay_steps | 30000 | SmolVLAConfig |
| scheduler_decay_lr | 2.5e-6 | SmolVLAConfig |
| vries_visie_enkodeerder | true | SmolVLAConfig |
| lei_slegs_deskundige_op | true | SmolVLAConfig |
| batch_size / stappe | 8 / 100000 | TrainPipelineConfig |
| saad / stoor_frekwensie / aantal_werkers | 1000 / 20000 / 4 | TrainPipelineConfig |
Die twee reëls wat mense verras is freeze_vision_encoder en train_expert_only, albei waar. Uit die boks oefen jy ongeveer 100 M parameters, nie 450 M nie, en daarom pas dit op 24 GB. LeRobot se eie verwysingslopie op 'n vier-GPU H100-groep stel albei op onwaar; op een 24 GB-kaart verander dit 'n werkende lopie in .
Die gids se raad wanneer jy geheue-gebonde is, is om die bondelgrootte te verminder en gradiëntakkumulasie te gebruik om die effektiewe bondel te herstel. Daar is geen gradiëntakkumulasie in lerobot 0.6.1 nie: TrainPipelineConfig het geen sodanige veld nie en die string verskyn nêrens in die vrygestelde pakket nie. Die AY-Robots-vorm toon 'n gradiëntakkumulasiewaarde van 8 vir SmolVLA en pas dit ook nie toe nie. Jou hefbome op 24 GB is --batch_size, die twee vries-standaarde, en --policy.use_amp.
Hoe lank die lopie duur, en hoeveel stappe genoeg is
LeRobot publiseer werklike tydankers vir vyf epogte oor 'n ongeveer 50 episode-datastel, ongeveer 45000 rame teen 30 fps. Orde van grootte syfers, sê die dokumente, maar dit is die verskil tussen om 'n uur en 'n dag te verwag.
| Opstelling | Beleid | Bondel | Werklike tyd |
|---|---|---|---|
| Single L4 / A10G (24 GB) | smolvla | 4 | about 3 to 6 h |
| Single A100 40 GB | smolvla | 16 | about 1 to 2 h |
| 4 x H100 80 GB with accelerate | smolvla | 32 | about 1 to 2 h |
| Single RTX 4090 / RTX 3090 (24 GB) | act | 8 | about 30 to 60 min |
Die reël is 5 tot 10 epoge oor die datastel, nie 'n vaste stap-telling nie: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Op die verwysingsdatastel waarna die dokumentasie verwys, lerobot/svla_so100_pickplace, rapporteer die metadata 50 episodes en 19631 rame: bondel 8 gee ongeveer 2454 stappe per epog, so 20000 stappe is rofweg 8 epoge. Halveer die bondel en dieselfde begroting koop die helfte van die epoge, so herhaal dit wanneer jy ook al aan --batch_size raak.
Die uitvoering van die fyn-ingestelde beleid terug op die arm
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_placeDie 245 ms per aksiestap is maklik om verkeerd te lees: die beleid gee chunk_size = 50 aksies per vorentoe-pas uit en voer n_action_steps = 50 daarvan uit, so hoe gereeld jy daardie koste betaal, word deur daardie instellings bepaal, nie deur hoe gereeld die servos 'n opdrag kry nie. Dit is wat aksie-segmentering koop, en hoekom 'n 245 ms model 'n 30 Hz arm kan aandryf. Wat oorbly is inferensie-latensie aan die einde van die segment.
| Meting (SmolVLA, regte SO-100) | Sinchronies | Asinchronies |
|---|---|---|
| Voltooiingstyd, optel en plaas, 10 proewe | 13.75 s | 9.70 s |
| Optel- en plaas-siklusse in 'n vaste tydvenster | 9 | 19 |
| Sukseskoers gemiddeld oor die drie take | 78.3 % | 73.3 % |
Daardie derde ry is wat die meeste verslae oorslaan. Asinchroniese inferensie is ongeveer 30 persent vinniger en verdubbel rofweg die deurset in 'n vaste tydvenster, en die referaat noem die sukseskoerse vergelykbaar, wat hulle gemiddeld is. Daaronder het sortering van 70 tot 50 persent gedaal terwyl optel en plaas 5 bygekry het. lerobot 0.6.1 dra die ander hefboom in dieselfde binêre lêer: --inference.type=rtc skakel die uitrol oor na intydse segmentering, wat die skrip se eie gebruiksblok aanbeveel vir die stadige VLA's, Pi0, Pi0.5 en SmolVLA.
Die beheerlus is 20 tot 485 ms per aksiestap afhangende van die model, en openbare-internet heen-en-weer reise bo-op verander 'n werkende beleid in 'n huiwerige een. Afgeleë inferensie is lewensvatbaar vir stadige optel en plaas, nie vinnige reaktiewe beweging nie: as die taak vinnige korreksies benodig, behoort die GPU op dieselfde LAN as die arm te wees.
Buite die onderwerp vir 'n opleidingsessie, maar dit beëindig meer SO-100 projekte as enige hiperparameter. Die Feetech STS3215 servos in die SO-100 en SO-101 loop op 7.4 V; 12 V vernietig hulle. Die LeKiwi meng 'n 7.4 V arm met 'n 12 V basis, wat is hoe die verkeerde loopaansluiting die verkeerde sok vind.
Twee roetes na dieselfde kontrolepunt
Jy besit die masjien, die omgewing en die ontfouting. Die enigste wolk-afhanklikheid is die Hub-aflaai van die basis-kontrolepunt. Die regte roete as jy die beleid wil wysig, as die data nie jou netwerk kan verlaat nie, of as die kaart ledig is.
- Jy beheer die CUDA-wiel, die drywer, die ffmpeg-bou en die datalaai.
- Jy kan configuration_smolvla.py patch en dieselfde middag heroplei.
- Jy betaal in elektrisiteit en tyd, nie per lopie nie, en ontfout TorchCodec self.
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=trueDieselfde lopie agter 'n vorm: jy kies model en datastel, die agterkant huur 'n GPU volgens vereiste VRAM, voer die opleier uit en skryf kontrolepunte na objekberging. Die datastel kan van 'n Hugging Face repo id, die publieke gids, of jou masjien kom. Begin by SmolVLA op SO-100, of die matriks op die opleidingsbladsy.
| Veld | Standaard wat die platform vir SmolVLA stuur | Nota |
|---|---|---|
| batch size | 2 | Konserwatief vir die 24 GB-vlak |
| learning rate | 1e-4 | Die lerobot-voorinstelling |
| max steps | 20000 | Die verwysingslopie in die LeRobot-dokumente |
| gradient accumulation | 8 | Getoon in die vorm, nie toegepas nie |
| extra knobs | seed, logFreq | Saad maak die lopie herhaalbaar |
- 2 tot 5 uur op die 24 GB-vlak, ongeveer 1 tot 3 USD per lopie.
- Dieselfde bewerkings vanaf 'n terminaal by /cli en vanaf KI-agente by /mcp.
- Afleidingskapsules dra 'n ledige waghond, so 'n vergete kapsule vernietig homself in plaas daarvan om stilweg te faktureer.
- Nog geen arm nie? /live stroom 'n fisiese SO-100 wat jy kan bestuur sonder om aan te meld.
'n Taak wat in die tou vassteek, is 'n simptoom van die spotmark, nie 'n fout nie: opleidingstaak vas in tou. Stap vir stap: lei jou eerste beleid op en die opleidingsdokumente.
Wanneer SmolVLA die verkeerde keuse is
Die toets of SmolVLA die regte eerste lopie was, is nie of dit gewerk het nie, maar of die mislukking jou iets geleer het. Bereik 60 of 70 persent en 'n groter model is 'n redelike volgende uitgawe: die data dra 'n sein. Bereik 10 persent en 'n 3 B model sal heel waarskynlik ook 10 persent bereik, wat jy pas vir drie dollar in plaas van twaalf geleer het.

Die moeite werd om te lees voordat jy meer spandeer: Pi0.5 teen SmolVLA vir meer kapasiteit op dieselfde idee, en GR00T N1.7 teen SmolVLA vir die NVIDIA-roete, beide 80 GB-vlak teen 4 tot 12 USD per lopie. Die ander manier, ACT is die goedkoper basislyn: 80 M parameters, 20 ms per aksiestap, geen taalkondisionering nie. Al vyf is op die beleidsbladsy; die arena het 85 modelle en 332 maatstafresultate.

Die kontrolelys voordat jy enigiets skaal
- Het die
lrsy 2.5e-6 vloer bereik? Onder 30000 stappe herskaal lerobot die verval en meld dit by opstart; bo dit, stel--policy.scheduler_decay_stepsself in. - Meer as een kontrolepunt, en episodes wat uitgehou is met
--dataset.eval_splitsodat die eval-verlies iets beteken. - Beweeg die beleid enigsins? 'n Dalende verlies met 'n roerlose arm het spesifieke oorsake: verlies daal, beleid doen niks.
- Oorleef dit 'n verandering van toneel? Indien nie: beleid werk net in een opstelling.
- Het jy die saad neergeskryf? lerobot stel by verstek op 1000, so twee onveranderde lopies bly vergelykbaar.
- Eers dan: meer episodes, meer variasie, of 'n groter model. In daardie volgorde.
Vir hoekom hierdie modelle bestaan en wat hulle met die taal-invoer doen, is die agtergrond; loop montering deur na die eerste lopie. Vir die voltooide kontrolepunt, ; as die arm nooit verskyn nie, .
Lei SmolVLA op jou eie arm op
Kies die model en die arm en die gids gee jou die presiese verstekwaardes, die datastelformaat en wat die lopie kos. SmolVLA is op die 24 GB-vlak teen 1 tot 3 USD per lopie.
Maak die opleidingsgidse oopKan ek regtig SmolVLA op 'n RTX 4090 fyninstel?▾
Ja. LeRobot se rekenaargids plaas SmolVLA op ongeveer 10 tot 16 GB piek VRAM by batch 8 met AdamW en lys 24 GB verbruikerskaarte as gemaklik daarvoor. Die batch 64 in die dokumentasievoorbeeld is gepaar met 'n enkele A100. Geheue skaal ongeveer lineêr met batch, so gebruik 4 of 8 en hou mem_gb dop.
Hoeveel episodes het ek werklik nodig?▾
AY-Robots stel die minimum op 30. Die LeRobot-dokumentasie beveel ongeveer 50 aan en rapporteer dat 25 episodes van dieselfde taak swak presteer het. Struktuur is belangriker as getal: die verwysingsstel was 5 kubusposisies met 10 episodes elk, en daardie herhaling is wat veralgemeen.
Die dokumentasie sê batch 64, die platform stuur batch 2. Watter een is reg?▾
Albei, vir verskillende hardeware. Die dokumentasievoorbeeld gebruik batch 64 en noem ongeveer 4 uur vir 20000 stappe op 'n enkele A100; die rekenaargids se A100 40 GB anker is batch 16. Batch 2 is wat AY-Robots op die 24 GB-vlak stuur. Plaaslik is 4 tot 8 die middel, en die epog-rekenkunde verander daarmee.
SmolVLA of ACT vir 'n eerste lopie op 'n SO-100?▾
ACT as die taak een herhalende beweging is en jy die vinnigste lus wil hê: 20 ms per aksiestap, 80 M parameters, geen taalversorging nie. SmolVLA as jy taalversorging, verskeie taakstringe in een kontrolepunt, en 'n vooraf-opgeleide basis wil hê. Albei pas op die 24 GB-vlak, so die keuse is die taak, nie die begroting nie.
Moet ek --policy.scheduler_decay_steps instel?▾
Slegs wanneer --steps bo 30000 is. SmolVLA stel die kosinusverval vooraf op 30000 stappe, en lerobot 0.6.1 skaal dit self af vir 'n korter lopie, en log "Auto-scaling LR scheduler" wanneer dit gebeur. Dit skaal nooit op nie, so die standaard --steps=100000 laat die laaste 70000 stappe op die 2.5e-6 vloer.
Sources
- SmolVLA: 'n Visie-Taal-Aksie Model vir Bekostigbare en Doeltreffende Robotika
- SmolVLA: Doeltreffende Visie-Taal-Aksie Model (Hugging Face blog)
- lerobot/smolvla_base modelkaart
- LeRobot dokumentasie: SmolVLA
- LeRobot dokumentasie: Rekenaar HW Gids vir LeRobot Opleiding
- LeRobot dokumentasie: Installasie
- LeRobot dokumentasie: LeRobotDataset v3.0 en die v2.1 omskakelaar
- LeRobot dokumentasie: Asinchroniese Inferensie
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategieë en RTC inferensie)
- lerobot v0.6.1: pyproject.toml (ekstras en konsole-toegangspunte)
- lerobot op PyPI
- lerobot/svla_so100_pickplace datastel (50 episodes, 19631 rame, v3.0)
Sources
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot/smolvla_base model card
- LeRobot docs: SmolVLA
- LeRobot docs: Compute HW Guide for LeRobot Training
- LeRobot docs: Installation
- LeRobot docs: LeRobotDataset v3.0 and the v2.1 converter
- LeRobot docs: Asynchronous Inference
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategies and RTC inference)
- lerobot v0.6.1: pyproject.toml (extras and console entry points)
- lerobot on PyPI
- lerobot/svla_so100_pickplace dataset (50 episodes, 19631 frames, v3.0)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started