
SmolVLA yra 450 M parametrų VLA, kuris tiksliai derinamas su viena 24 GB plokšte. Tikros lerobot 0.6.1 komandos, tikrosios numatytosios reikšmės, spąstai, kainuojantys dieną, ir kiek kainuoja paleidimas.
SmolVLA viename ekrane
- •450 M parametrų, apie 100 M iš jų yra srauto atitikimo veiksmų ekspertas. lerobot apmoko tik tą ekspertą ir palieka VLM užšaldytą, todėl jis telpa į vieną kortelę.
- •LeRobot skaičiavimo vadovas nurodo, kad smolvla grupė naudoja maždaug 10–16 GB didžiausios VRAM atminties su 8 partija ir AdamW. Todėl 24 GB.
- •Įvesties taškas yra lerobot-train. 2025 m. birželio mėn. SmolVLA tinklaraščio įraše vis dar spausdinama python lerobot/scripts/train.py, kelias, kuris nebeegzistuoja. Viskas toliau yra lerobot 0.6.1.
- •Kosinusinis grafikas iš anksto nustatytas mažėti per 30000 žingsnių. lerobot 0.6.1 sumažina tai trumpesniam vykdymui ir registruoja, bet niekada nepadidina: standartinis 100000 žingsnių vykdymas baigiasi ties 2.5e-6 riba 70000 žingsnių.
- •Trisdešimt epizodų yra AY-Robots minimumas, 24 GB lygyje, kainuojančiame nuo 1 iki 3 USD už paleidimą, palyginti su 4–12 USD už 80 GB modelius.
Dauguma žmonių, norinčių regos-kalbos-veiksmų modelio ant tikros rankos sustoja ties techninės įrangos riba. GR00T N1.7 ir Pi0.5 yra maždaug po tris milijardus parametrų ir reikalauja A100 80 GB arba H100. Jei turite žaidimų kompiuterį su RTX 4090, tai yra kelio pabaiga. SmolVLA yra išimtis: 450 M parametrų, LeRobot viduje, sukurta smulkiam derinimui vienoje vartotojo kortelėje ir aptarnavimui iš CPU.
Pirmiausia rankinis būdas: įdiekite lerobot, atsisiųskite lerobot/smolvla_base kontrolinį tašką, paleiskite tikrąją komandą, skaitykite vykdymą, kol jis vyksta. Tada platformos kelias ir kur jis nepadeda.
Kas yra SmolVLA, skaičiais, kuriuos galite patikrinti
SmolVLA yra srauto derinimas politika, prijungta prie mažo vizualinio kalbos modelio. Pagrindas yra SmolVLM2-500M-Video-Instruct; straipsnyje paliekami tik pirmieji 16 jo kalbos modelio sluoksnių, kiekvienas kameros kadras apribojamas iki 64 vizualinių žetonų naudojant pikselių maišymą vietoj vaizdo plytelių ir kas antrame bloke kryžminis dėmesys persipina su savidėmesio sluoksniu. Išvadų kaina buvo projektavimo apribojimas, o ne papildoma mintis.
| Savybė | Vertė | Šaltinis |
|---|---|---|
| Bendras parametrų skaičius | about 450 M | paper |
| Veiksmų ekspertas | about 100 M, flow matching | paper |
| VLM pagrindas | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| Naudojami VLM sluoksniai | first 16 of the language model | num_vlm_layers = 16 |
| Vizualiniai žetonai vienam kadrui | 64, pixel shuffle, no tiling | paper |
| Išankstinis apmokymas | 481 community datasets, 22.9 K episodes, 10.6 M frames; 200000 steps at global batch 256 on 4 GPUs | paper |
Lyginamieji testai yra priežastis, kodėl žmonės domisi 450 M modeliu. LIBERO teste jis vidutiniškai pasiekia 87.3 procento, palyginti su 76.5 OpenVLA (7 B) ir 86.0 robotikos iš anksto apmokyto Pi0 (3.3 B); Meta-World teste – 57.3, palyginti su 47.9. Ant realios SO-100 aparatinės įrangos, daugiatikslis apmokymas duoda 75 procentus paėmimo ir padėjimo, 90 – krovimo, 70 – rūšiavimo, vidutiniškai 78.3, kur ACT apmokytas kiekvienai užduočiai vidutiniškai pasiekė 48.3. Tos pačios eilutės yra šalia kiekvieno publikuoto VLA SmolVLA arenos įraše ir ACT palyginime su SmolVLA.
SmolVLA nėra geresnis už 3 B modelį visais atžvilgiais. Paties straipsnio SO-101 lentelė tai atskleidžia: 90 procentų sėkmės pasiskirstyme, 50 procentų už jo ribų, platformoje, kurioje jis niekada nebuvo iš anksto apmokytas. Tai, ką jis teigia ir pagrindžia, yra tai, kad, palyginti su Pi0, jis apmokomas maždaug 40 procentų greičiau, naudojant 6 kartus mažiau atminties.
Kodėl 24 GB kortelė yra tinkamas pirmasis paleidimas
LeRobot pateikia skaičiavimo dydžio nustatymo vadovą, naudingiausią puslapį repozitorijoje šiam tikslui. Jame politikos grupuojamos pagal pagrindinės struktūros dydį ir kiekvienai grupei nurodomas vienas VRAM apvalkalas, išmatuotas esant 8 partijos dydžiui su AdamW, numatytuoju lerobot nustatymu. Vien optimizatoriaus būsena prideda nuo 30 iki 100 procentų, palyginti su paprastu tiesioginiu ir atgaliniu praleidimu, todėl tai nėra tik svorių skaičiai.
| Grupė | Politikos | Didžiausias VRAM (partija 8, AdamW) | Pradiniai GPU |
|---|---|---|---|
| Lengvas BC | act, vqbet, tdmpc | apie 2–6 GB | RTX 3060, L4 |
| Difuzija | diffusion, multi_task_dit | apie 8–14 GB | RTX 4070+, L4 |
| Mažas VLA | smolvla | apie 10–16 GB | RTX 4080+, L4, A10G |
| Didelis VLA | pi0, pi0_fast, pi05, xvla, wall_x | apie 24–40 GB | A100 40 GB+ |
| Daugiarūšis | groot, eo1 | apie 24–40 GB | A100 40 GB+ |
Dešimt iki šešiolikos gigabaitų esant 8 partijos dydžiui yra argumentas: 24 GB kortelė tinka tam ir duomenų įkėlimo moduliui. AY-Robots diegia SmolVLA ant RTX 4090 arba bet kurios 24 GB kortelės, mažiausiai 30 epizodų, LeRobot v3.0 duomenų, 245 ms vienam veiksmo žingsniui. Nuomojant, tai yra nuo 2 iki 5 valandų po 0.30 iki 0.60 USD už valandą, apie 1 iki 3 USD už derinimo paleidimą, palyginti su 4–12 USD už 80 GB lygio GR00T ir Pi0.5 reikalingą (kainodarą). Nepavykęs SmolVLA paleidimas yra kava; nepavykęs GR00T paleidimas – pietūs.

- Tinka aparatūrai, kurią galbūt jau turite: maždaug 10–16 GB su 8 partija.
- Nepavykęs vykdymas kainuoja valandas ir vienženklius dolerius, todėl galite sau leisti klysti dėl duomenų rinkinio.
- Išmokytas su bendruomenės duomenų rinkiniais, pažymėtais lerobot žyma, su realiais SO-100 ir SO-101 rezultatais.
- Jis gyvena pačiame lerobot: nėra tiekėjo saugyklos, o smolvla_base nėra uždarytas.
- 450 M vis dar yra 450 M: sėkmė už pasiskirstymo ribų sumažėja nuo 90 iki 50 procentų dokumento SO-101 lentelėje.
- Jam reikia LeRobot v3.0 duomenų; v2.1 įrašas turi būti konvertuotas (atmestas duomenų rinkinys v3).
- 245 ms vienam veiksmo žingsniui yra kompetentingas paėmimo ir padėjimo valdiklis, o ne reaktyvus.
- Dokumentacijos pavyzdys vykdo 64 partiją A100; su 24 GB keičiate partiją į realų laiką.
0 žingsnis: duomenų rinkinys lemia vykdymą, o ne vėliavėlės
Niekas toliau nėra svarbu, jei įrašas yra blogas. LeRobot SmolVLA puslapis yra tiesmukas: etaloninis duomenų rinkinys buvo 50 epizodų per 5 kubo pozicijas, po 10 kiekvienai pozicijai, o ta pati užduotis su 25 epizodais buvo atlikta prastai. Pakartojimas pagal variaciją apibendrina, o neapdorotas epizodų skaičius – ne. Niekada neįrašėte? Pradėkite nuo įrašykite savo pirmąjį duomenų rinkinį su darbalaukio klientu, kuris įrašo LeRobot formatą iš teleoperacijos sesijos, arba pasiskolinkite iš duomenų rinkinių katalogo.
- Mažiausiai 30 epizodų AY-Robots, apie 50 LeRobot etaloniniam receptui.
- Kiekvienas variantas, kurio tikitės diegimo metu, pakartotas kelis kartus.
- Viena užduoties eilutė, parašyta identiškai įrašymo ir diegimo metu. Modelis yra sąlygotas šiuo tekstu.
- Fiksuotos kameros. Kamera, perkelta tarp įrašymo ir diegimo, yra dažniausia priežastis, kodėl švari nuostolių kreivė rodo nejudančią ranką.
- Nepanaudotas variantas, kurio niekada netreniravote, kad turėtumėte ką sąžiningai išbandyti.
SmolVLA, Pi0.5 ir ACT nori LeRobot v3.0. GR00T N1.7 ir N1.5 nori v2.0 arba v2.1, o jų įkėliklis sugenda su v3.0. Įrašykite vieną kartą, planuokite palyginti modelius vėliau, ir konvertuosite vienaip ar kitaip: duomenų rinkinys atmestas 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_placeDaugiau apie tai rasite kaip surinkti aukštos kokybės VLA mokymo duomenis. Trumpai: 30–50 švarių vienos užduoties epizodų su apgalvota variacija pranoksta 200 aplaidžių trijų užduočių epizodų, su skirtumu, kurio joks hiperparametras neužpildo.
Įdiegti 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-infoBazinė lerobot diegimas yra minimalistinis ir paslepia sunkias priklausomybes už papildomų paketų: smolvla prideda transformers, num2words ir accelerate, training duomenų rinkinio paketą ir wandb, core_scripts aparatinės įrangos ir vizualizacijos priklausomybes. „Linux“ sistemoje diegimo kelias taip pat nulemia jūsų CUDA ratą: numatytasis PyPI yra cu130 ratas su minimalia tvarkyklės versija 580.65, todėl, jei naudojate senesnę tvarkyklę, pirmiausia įdiekite torch iš cu128 indekso, tada lerobot.
--policy.path=lerobot/smolvla_base įkelia iš anksto apmokytą 450 M kontrolinį tašką ir jį tikslina. --policy.type=smolvla sukuria naują SmolVLA, o numatytasis konfigūracijos parametras load_vlm_weights = False reiškia, kad jis net neįkelia SmolVLM2 pagrindinių svorių, nebent to paprašysite. Jei suklysite, vykdymas sėkmingai treniruosis, kainuos tiek pat ir neišmoks nieko, kas būtų pritaikoma.
Mokymo vykdymas, komanda po komandos
- 1Autentifikuotis prie Hub
Bazinis kontrolinis taškas gaunamas iš Hub, ir jūsų duomenų rinkinys tikriausiai taip pat.
bashhf auth login - 2Perskaitykite parinktis vieną kartą
Kiekvienas dujotiekio ir politikos konfigūracijos laukas yra vėliavėlė. Peržvelkite jį prieš gilinantis į šaltinio kodą.
bashlerobot-train --help - 3Pradėti tikslinimą
Dokumentacijos pavyzdys paleidžia 64 partiją viename A100; skaičiavimo vadovo A100 40 GB etalonas yra 16 partija, o 8 yra 24 GB ekvivalentas. Čia tyčia nėra planuoklio vėliavėlės, žr. žemiau.
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 - 4Skaitykite žurnalo eilutę, ne tik nuostolius
Kas --log_freq žingsnių lerobot spausdina loss, grdn, lr, updt_s, data_s, smp/s ir, naudojant CUDA, mem_gb. mem_gb rodo, ar partija telpa, lr – ar tvarkaraštis mažėja, o data_s artėjant prie updt_s reiškia, kad duomenų įkėlimo programa yra kliūtis, o ne GPU.
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5Surinkite kontrolinius taškus, kuriuos galite palyginti
save_freq numatytoji reikšmė yra 20000, todėl 20000 žingsnių vykdymas palieka vieną kontrolinį tašką ir nieko, su kuo jį palyginti. Nustatykite 2000. Norint įkelti į Hub, reikia --policy.repo_id.
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6Tęsti, jei mašina sugenda
Nurodykite --config_path į train_config.json šalia kontrolinio taško. lerobot atsisako pradėti į esamą output_dir, nebent tęsiate, todėl negalite netyčia perrašyti vykdymo.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Vėliavėlės, kurios iš tikrųjų keičia rezultatą
| Flag | Ką ji daro | Su 24 GB |
|---|---|---|
| --batch_size | Pavyzdžiai per žingsnį, apytiksliai tiesiškai priklausomi nuo VRAM | Nuo 4 iki 8 |
| --steps | Bendras optimizatoriaus žingsnių skaičius | 20000 pirmasis praėjimas |
| --policy.scheduler_decay_steps | Kosinusinio mažėjimo ilgis, iš anksto nustatytas 30000 | Veikia tik virš 30000 |
| --policy.use_amp | Mišrus tikslumas; SmolVLA neturi dtype lauko | true, kai trūksta atminties |
| --num_workers | Duomenų įkėlimo procesai, numatytasis 4 | Didinkite, kol data_s nustos kilti |
| --dataset.eval_split | Epizodų dalis, atidėta kiekvienai užduočiai | 0.1, su --eval_steps |
| --policy.freeze_vision_encoder | Palaiko vizijos bokštą užšaldytą | true su 24 GB |
| --policy.train_expert_only | Tik ~100 M ekspertas gauna gradientus | true pirmiausia |
SmolVLA iš anksto nustato kosinuso tvarkaraštį: scheduler_warmup_steps = 1000, scheduler_decay_steps = 30000, scheduler_decay_lr = 2.5e-6. Senesni patarimai teigia, kad 20000 žingsnių vykdymas sustoja viduryje nuosmukio. 0.6.1 versijoje taip nėra: CosineDecayWithWarmupSchedulerConfig.build() perduodamas --steps, ir žemiau num_decay_steps jis perskaičiuoja abu – įšilimą nuo 1000 iki 666 ir nuosmukį nuo 30000 iki 20000, spausdindamas Auto-scaling LR scheduler. Jis niekada neperskaičiuoja aukštyn: nuosmukis yra apribotas min(current_step, decay_steps), todėl standartinis --steps=100000 lieka ant dugno nuo 30000 žingsnio iki pabaigos, 70 procentų vykdymo laiko. Tik tai ilgajai pusei vis dar reikia --policy.scheduler_decay_steps. lr stulpelis yra vieta, kurioje galite patikrinti.
Numatytosios reikšmės, kurias paveldite, jei nieko neliečiate
A konfigūracija lerobot sistemoje turi savo optimizatoriaus ir tvarkaraščio nustatymus, ir nebent nustatysite use_policy_training_preset=false tie nustatymai laimi. Pusė klausimų, kuriuos žmonės užduoda apie SmolVLA mokymą, atsakoma numatytąja reikšme, apie kurią jie nežinojo.
| Nustatymas | Numatytoji reikšmė lerobot 0.6.1 | Apibrėžta |
|---|---|---|
| gabalėlio dydis / veiksmų žingsnių skaičius | 50 / 50 | SmolVLAConfig |
| žingsnių skaičius (srauto atitikimo triukšmo šalinimas) | 10 | SmolVLAConfig |
| optimizatoriaus mokymosi greitis | 1e-4 | SmolVLAConfig |
| tvarkaraščio įšilimo žingsniai | 1000 | SmolVLAConfig |
| tvarkaraščio nuosmukio žingsniai | 30000 | SmolVLAConfig |
| tvarkaraščio nuosmukio mokymosi greitis | 2.5e-6 | SmolVLAConfig |
| užšaldyti vaizdo kodavimo įrenginį | true | SmolVLAConfig |
| mokyti tik ekspertą | true | SmolVLAConfig |
| paketo dydis / žingsniai | 8 / 100000 | TrainPipelineConfig |
| sėkla / išsaugojimo dažnis / darbuotojų skaičius | 1000 / 20000 / 4 | TrainPipelineConfig |
Dvi eilutės, kurios stebina žmones, yra freeze_vision_encoder ir train_expert_only, abi teisingos. Iš karto treniruojate maždaug 100 M parametrų, o ne 450 M, todėl tai telpa į 24 GB. LeRobot nuorodos vykdymas keturių GPU H100 klasteryje abi nustato į „false“; vienoje 24 GB kortelėje tai veikiantį vykdymą paverčia atminties trūkumo klaida.
Vadovo patarimas, kai esate apriboti atminties, yra sumažinti paketo dydį ir naudoti gradiento kaupimą, kad atkurtumėte efektyvų paketą. lerobot 0.6.1 nėra gradiento kaupimo: TrainPipelineConfig neturi tokio lauko ir eilutė niekur nepasirodo išleistame pakete. AY-Robots forma rodo gradiento kaupimo vertę 8 SmolVLA ir jos taip pat netaiko. Jūsų svertas 24 GB yra --batch_size, du numatytieji užšaldymo nustatymai ir --policy.use_amp.
Kiek laiko trunka vykdymas ir kiek žingsnių pakanka
LeRobot skelbia realaus laiko atskaitos taškus penkioms epochoms maždaug 50 epizodų duomenų rinkinyje, apie 45000 kadrų per 30 fps. Eilės dydžio skaičiai, teigiama dokumentacijoje, tačiau jie yra skirtumas tarp tikėjimosi valandos ir dienos.
| Sąranka | Politika | Paketas | Realus laikas |
|---|---|---|---|
| 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 |
Taisyklė yra 5–10 epochų per duomenų rinkinį, o ne fiksuotas žingsnių skaičius: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Nurodytame etaloniniame duomenų rinkinyje, į kurį nukreipia dokumentacija, lerobot/svla_so100_pickplace, metaduomenys rodo 50 epizodų ir 19631 kadrą: 8 paketų dydis duoda apie 2454 žingsnius per epochą, taigi 20000 žingsnių yra maždaug 8 epochos. Sumažinus paketą perpus, tas pats biudžetas nupirks perpus mažiau epochų, todėl pakartokite tai kiekvieną kartą, kai keičiate --batch_size.
Pritaikytos politikos paleidimas atgal ant roboto rankos
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_place245 ms vienam veiksmo žingsniui lengva klaidingai interpretuoti: politika išleidžia chunk_size = 50 veiksmų per vieną tiesioginį praleidimą ir įvykdo n_action_steps = 50 iš jų, todėl tai, kaip dažnai mokate tą kainą, nustatoma šiais parametrais, o ne tuo, kaip dažnai servovarikliai gauna komandą. Tai yra tai, ką veiksmų skaidymas į dalis suteikia, ir kodėl 245 ms modelis gali valdyti 30 Hz ranką. Kas lieka, tai išvadų vėlavimas dalies pabaigoje.
| Matavimas (SmolVLA, realus SO-100) | Sinchroninis | Asinchroninis |
|---|---|---|
| Užbaigimo laikas, paėmimas ir padėjimas, 10 bandymų | 13.75 s | 9.70 s |
| Paėmimo ir padėjimo ciklai per fiksuotą laiko langą | 9 | 19 |
| Sėkmės rodiklis, vidutiniškai per tris užduotis | 78.3 % | 73.3 % |
Šią trečią eilutę dauguma aprašymų praleidžia. Asinchroninis išvadų darymas yra maždaug 30 procentų greitesnis ir apytiksliai padvigubina pralaidumą per fiksuotą laiko langą, o straipsnyje sėkmės rodikliai vadinami panašiais, ir vidutiniškai jie tokie ir yra. Po juo, rūšiavimas sumažėjo nuo 70 iki 50 procentų, o paėmimas ir padėjimas padidėjo 5. lerobot 0.6.1 turi kitą svertą tame pačiame dvejetainyje: --inference.type=rtc perjungia vykdymą į realaus laiko skaidymą į dalis, kurį scenarijaus naudojimo blokas rekomenduoja lėtiems VLA, Pi0, Pi0.5 ir SmolVLA.
Valdymo ciklas yra nuo 20 iki 485 ms vienam veiksmo žingsniui, priklausomai nuo modelio, o viešojo interneto kelionės pirmyn ir atgal paverčia veikiančią politiką nedrąsia. Nuotolinis išvadų darymas yra tinkamas lėtam paėmimui ir padėjimui, bet ne greitam reaktyviam judesiui: jei užduočiai reikia greitų korekcijų, GPU turi būti tame pačiame LAN tinkle kaip ir ranka.
Nors ir ne susiję su mokymo paleidimu, tai nutraukia daugiau SO-100 projektų nei bet kuris hiperparametras. Feetech STS3215 servovarikliai SO-100 ir SO-101 veikia su 7.4 V; 12 V juos sugadina. LeKiwi maišo 7.4 V ranką su 12 V baze, todėl netinkamas maitinimo lizdas randa netinkamą jungtį.
Du keliai į tą patį kontrolinį tašką
Jūs valdote mašiną, aplinką ir derinimą. Vienintelė priklausomybė nuo debesies yra bazinio kontrolinio taško atsisiuntimas iš Hub. Tai tinkamas kelias, jei norite modifikuoti politiką, jei duomenys negali palikti jūsų tinklo arba jei kortelė nenaudojama.
- Jūs kontroliuojate CUDA ratą, tvarkyklę, ffmpeg kūrimą ir duomenų įkėlimo modulį.
- Galite pataisyti configuration_smolvla.py ir persimokyti tą pačią popietę.
- Mokate už elektrą ir laiką, ne už paleidimą, ir patys derinate TorchCodec.
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=trueTas pats paleidimas per formą: jūs pasirenkate modelį ir duomenų rinkinį, galinė sistema išnuomoja GPU pagal reikiamą VRAM, paleidžia treniruoklį ir įrašo kontrolinius taškus į objektų saugyklą. Duomenų rinkinys gali būti iš Hugging Face repo id, viešojo katalogo, arba iš jūsų mašinos. Pradėkite nuo SmolVLA ant SO-100, arba matricos mokymo puslapyje.
| Laukas | Numatytasis, kurį platforma siunčia SmolVLA | Pastaba |
|---|---|---|
| paketo dydis | 2 | Konservatyvus 24 GB lygiui |
| mokymosi greitis | 1e-4 | lerobot numatytasis nustatymas |
| maksimalūs žingsniai | 20000 | Nuorodos paleidimas LeRobot dokumentacijoje |
| gradiento kaupimas | 8 | Parodyta formoje, bet netaikoma |
| papildomi nustatymai | seed, logFreq | Seed padaro paleidimą pakartojamą |
- Nuo 2 iki 5 valandų 24 GB lygiu, apie 1–3 USD už paleidimą.
- Tos pačios operacijos iš terminalo adresu /cli ir iš AI agentų adresu /mcp.
- Išvadų podai turi tuščiosios eigos sargą, todėl pamirštas podas sunaikina save, užuot tyliai skaičiavęs sąskaitas.
- Dar neturite rankos? /live transliuoja fizinį SO-100, kurį galite valdyti be registracijos.
Užduotis, įstrigusi eilėje, yra momentinės rinkos simptomas, o ne klaida: mokymo užduotis įstrigo eilėje. Žingsnis po žingsnio: apmokykite savo pirmąją politiką ir mokymo dokumentacija.
Kai SmolVLA yra netinkamas pasirinkimas
Ar SmolVLA buvo tinkamas pirmasis paleidimas, rodo ne tai, ar jis veikė, o tai, ar gedimas jums ką nors pasakė. Pasiekus 60 ar 70 procentų, didesnis modelis yra pagrįsta kita investicija: duomenys turi signalą. Pasiekus 10 procentų, 3 B modelis greičiausiai taip pat pasieks 10 procentų, ką ką tik sužinojote už tris dolerius vietoj dvylikos.

Verta perskaityti prieš išleidžiant daugiau: Pi0.5 prieš SmolVLA dėl didesnio pajėgumo, remiantis ta pačia idėja, ir GR00T N1.7 prieš SmolVLA NVIDIA keliui, abu 80 GB lygio, kainuojantys nuo 4 iki 12 USD už paleidimą. Kitu būdu, ACT yra pigesnė bazinė linija: 80 M parametrų, 20 ms per veiksmo žingsnį, be kalbos sąlygojimo. Visi penki yra politikų puslapyje; arena turi 85 modelius ir 332 etaloninius rezultatus.

Kontrolinis sąrašas prieš bet kokį mastelio didinimą
- Ar
lrpasiekė savo 2.5e-6 ribą? Žemiau 30000 žingsnių lerobot perskaičiuoja nuosmukį ir praneša apie tai paleidžiant; viršijus, nustatykite--policy.scheduler_decay_stepspatys. - Daugiau nei vienas kontrolinis taškas ir epizodai, atidėti naudojant
--dataset.eval_split, kad vertinimo nuostolis ką nors reikštų. - Ar politika apskritai juda? Krintantis nuostolis su nejudančia ranka turi specifinių priežasčių: nuostolis krenta, politika nieko nedaro.
- Ar ji išgyvena scenos pasikeitimą? Jei ne: politika veikia tik vienoje sąrankoje.
- Ar užsirašėte sėklą? lerobot numatytoji reikšmė yra 1000, todėl du nepaliesti paleidimai išlieka palyginami.
- Tik tada: daugiau epizodų, daugiau variacijų arba didesnis modelis. Tokia tvarka.
Apie tai, kodėl šie modeliai egzistuoja ir ką jie daro su kalbos įvestimi, , yra pagrindas; apima surinkimą nuo iki pirmojo paleidimo. Norėdami gauti baigtą kontrolinį tašką, ; jei ranka niekada neatsiranda, .
Mokykite SmolVLA su savo ranka
Pasirinkite modelį ir ranką, o vadovas pateiks tikslias numatytąsias reikšmes, duomenų rinkinio formatą ir paleidimo kainą. SmolVLA veikia 24 GB lygyje, kainuodamas nuo 1 iki 3 USD už paleidimą.
Atidaryti mokymo vadovusAr tikrai galiu tikslinti SmolVLA modelį su RTX 4090?▾
Taip. LeRobot skaičiavimo vadovas nurodo, kad SmolVLA naudoja maždaug nuo 10 iki 16 GB didžiausios VRAM esant 8 partijai (batch 8) su AdamW ir teigia, kad 24 GB vartotojų kortos tam yra patogios. Dokumentacijos pavyzdyje 64 partija (batch 64) yra suporuota su vienu A100. Atmintis didėja apytiksliai tiesiškai su partija, todėl naudokite 4 arba 8 ir stebėkite mem_gb.
Kiek epizodų man iš tikrųjų reikia?▾
AY-Robots nustato minimumą ties 30. LeRobot dokumentacija rekomenduoja apie 50 ir praneša, kad 25 tos pačios užduoties epizodai pasirodė prastai. Struktūra yra svarbiau už skaičių: etaloninis rinkinys buvo 5 kubo pozicijos su 10 epizodų kiekviena, ir būtent tas pasikartojimas leidžia apibendrinti.
Dokumentacijoje rašoma 64 partija (batch 64), platforma siunčia 2 partiją (batch 2). Kuri yra teisinga?▾
Abi, skirtingai aparatinei įrangai. Dokumentacijos pavyzdyje naudojama 64 partija (batch 64) ir nurodoma apie 4 valandas 20000 žingsnių su vienu A100; skaičiavimo vadovo A100 40 GB atskaitos taškas yra 16 partija (batch 16). 2 partija (batch 2) yra tai, ką AY-Robots siunčia 24 GB lygiu. Lokaliai 4–8 yra vidurys, ir epochos aritmetika keičiasi kartu su ja.
SmolVLA ar ACT pirmajam paleidimui su SO-100?▾
ACT, jei užduotis yra vienas pasikartojantis judesys ir norite greičiausio ciklo: 20 ms vienam veiksmo žingsniui, 80 M parametrų, be kalbos sąlygojimo. SmolVLA, jei norite kalbos sąlygojimo, kelias užduočių eilutes viename kontroliniame taške ir iš anksto apmokytą bazę. Abu modeliai veikia 24 GB lygiu, todėl pasirinkimas priklauso nuo užduoties, o ne nuo biudžeto.
Ar turiu nustatyti --policy.scheduler_decay_steps?▾
Tik tada, kai --steps yra didesnis nei 30000. SmolVLA iš anksto nustato kosinusinį mažėjimą ties 30000 žingsnių, o lerobot 0.6.1 pats jį sumažina trumpesniam vykdymui, registruodamas „Auto-scaling LR scheduler“. Jis niekada nedidina, todėl numatytasis --steps=100000 palieka paskutinius 70000 žingsnių ties 2.5e-6 riba.
Sources
- SmolVLA: vizijos-kalbos-veiksmo modelis prieinamai ir efektyviai robotikai
- SmolVLA: efektyvus vizijos-kalbos-veiksmo modelis (Hugging Face tinklaraštis)
- lerobot/smolvla_base modelio kortelė
- LeRobot dokumentacija: SmolVLA
- LeRobot dokumentacija: skaičiavimo aparatinės įrangos vadovas LeRobot apmokymui
- LeRobot dokumentacija: diegimas
- LeRobot dokumentacija: LeRobotDataset v3.0 ir v2.1 konverteris
- LeRobot dokumentacija: asinchroninis išvados darymas
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (strategijos ir RTC išvados darymas)
- lerobot v0.6.1: pyproject.toml (papildiniai ir konsolės įvesties taškai)
- lerobot PyPI platformoje
- lerobot/svla_so100_pickplace duomenų rinkinys (50 epizodų, 19631 kadras, 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