
A SmolVLA egy 450 millió paraméteres VLA, amely egyetlen 24 GB-os kártyán finomhangolható. Valós lerobot 0.6.1 parancsok, a tényleges alapértelmezések, az egy napba kerülő csapdák, és mennyibe kerül egy futtatás.
SmolVLA egy képernyőn
- •450 millió paraméter, ebből körülbelül 100 millió egy áramlásillesztő akció szakértő. A lerobot csak ezt a szakértőt képzi, és a VLM-et befagyasztva tartja, ezért fér el egy kártyán.
- •A LeRobot számítási útmutatója szerint a smolvla csoport körülbelül 10-16 GB csúcs VRAM-ot igényel 8-as kötegmérettel és AdamW-vel. Ezért 24 GB.
- •A belépési pont a lerobot-train. A 2025. júniusi SmolVLA blogbejegyzés még mindig a python lerobot/scripts/train.py parancsot írja ki, ami egy már nem létező útvonal. Minden alábbi a lerobot 0.6.1-es verziója.
- •A koszinuszos ütemezés előre be van állítva, hogy 30000 lépésen keresztül csökkenjen. A lerobot 0.6.1 ezt lefelé skálázza egy rövidebb futtatáshoz és naplózza, de soha nem felfelé: a gyári 100000 lépéses futtatás 70000 lépésen keresztül a 2.5e-6-os alsó határon végződik.
- •Harminc epizód az AY-Robots minimuma, egy 24 GB-os szinten, ami 1-3 USD-be kerül futtatásonként, szemben a 80 GB-os modellek 4-12 USD-jével.
A legtöbb ember, aki látás-nyelv-akció modellt szeretne egy valódi karon, a hardveres korlátoknál megáll. GR00T N1.7 és Pi0.5 körülbelül hárommilliárd paramétert tartalmaznak, és A100 80 GB-os vagy H100-as kártyát igényelnek. Ha egy RTX 4090-es gamer PC-d van, akkor ez az út vége. SmolVLA a kivétel: 450 millió paraméter, a LeRobot keretében, úgy építve, hogy egyetlen fogyasztói kártyán finomhangolható és CPU-ról kiszolgálható legyen.
Először a manuális útvonal: telepítsd a lerobotot, húzd le a lerobot/smolvla_base ellenőrzőpontot, futtasd a valódi parancsot, olvasd a futtatást, amíg tart. Aztán a platform útvonal, és ahol az nem segít.
Mi az a SmolVLA, ellenőrizhető számokban
A SmolVLA egy áramlásillesztés alapú irányelv, amely egy kis látás-nyelvi modellre épül. A gerincmodell a SmolVLM2-500M-Video-Instruct; a tanulmány csak a nyelvi modelljének első 16 rétegét tartja meg, minden kamera képkockát 64 vizuális tokenre korlátoz pixelkeveréssel képkocka csempézés helyett, és minden második blokkban kereszt-figyelmet önfigyelmi réteggel váltogat. A következtetési költség tervezési korlát volt, nem utólagos gondolat.
| Tulajdonság | Érték | Forrás |
|---|---|---|
| Összes paraméter | körülbelül 450 M | paper |
| Akció szakértő | körülbelül 100 M, áramlásillesztés | paper |
| VLM gerincmodell | HuggingFaceTB/SmolVLM2-500M-Video-Instruct | vlm_model_name |
| Használt VLM rétegek | a nyelvi modell első 16 rétege | num_vlm_layers = 16 |
| Vizuális tokenek képkockánként | 64, pixelkeverés, csempézés nélkül | paper |
| Előtanítás | 481 közösségi adatkészlet, 22.9 K epizód, 10.6 M képkocka; 200000 lépés globális 256-os köteggel 4 GPU-n | paper |
A benchmarkok miatt foglalkoznak az emberek egy 450 M-es modellel. A LIBERO-n átlagosan 87.3 százalékot ér el, szemben az OpenVLA 7 B-s 76.5-ével és egy robotikára előtanított Pi0 3.3 B-s 86.0-jával; a Meta-World-ön 57.3-at 47.9 ellenében. Valódi SO-100 hardveren a többfeladatos tanítás 75 százalékot ad a felvétel és elhelyezés, 90-et a rakásolás, 70-et a válogatás terén, átlagosan 78.3-at, ahol ACT feladatonként tanítva átlagosan 48.3-at ért el. Ugyanezek a sorok minden publikált VLA mellett megtalálhatók a SmolVLA aréna bejegyzésben és az ACT és SmolVLA összehasonlításban.
A SmolVLA nem mindenben jobb, mint egy 3 B-s modell. A tanulmány saját SO-101 táblázata árulkodó: 90 százalékos siker a disztribúción belül, 50 százalék azon kívül, egy olyan platformon, amelyen soha nem volt előtanítva. Amit állít, és alátámaszt, az az, hogy a Pi0-hoz képest körülbelül 40 százalékkal gyorsabban tanítható 6-szor kevesebb memóriával.
Miért a 24 GB-os kártya a megfelelő első futtatáshoz
A LeRobot mellékel egy számítási méretezési útmutatót, ami a repó leghasznosabb oldala ehhez. A házirendeket a gerinchálózat mérete szerint csoportosítja, és minden csoporthoz egy VRAM-borítékot ad, amelyet 8-as kötegmérettel, AdamW-vel, a lerobot alapértelmezett beállításával mértek. Az optimalizáló állapota önmagában 30-100 százalékot ad hozzá egy puszta előre- és hátrafelé haladó lépéshez képest, így ezek nem csak súlyokra vonatkozó adatok.
| Csoport | Házirendek | Csúcs VRAM (8-as köteg, AdamW) | Kezdő GPU-k |
|---|---|---|---|
| Könnyű BC | act, vqbet, tdmpc | körülbelül 2-6 GB | RTX 3060, L4 |
| Diffúzió | diffusion, multi_task_dit | körülbelül 8-14 GB | RTX 4070+, L4 |
| Kis VLA | smolvla | körülbelül 10-16 GB | RTX 4080+, L4, A10G |
| Nagy VLA | pi0, pi0_fast, pi05, xvla, wall_x | körülbelül 24-40 GB | A100 40 GB+ |
| Multimodális | groot, eo1 | körülbelül 24-40 GB | A100 40 GB+ |
Tíz-tizenhat gigabájt 8-as kötegmérettel – ez az érv: egy 24 GB-os kártya ehhez, plusz az adatbetöltőhöz is elegendő. Az AY-Robots a SmolVLA-t az RTX 4090-re vagy bármely 24 GB-os kártyára helyezi, minimum 30 epizód, LeRobot v3.0 adat, 245 ms akció lépésenként. Bérelve ez 2-5 óra, óránként 0.30-0.60 USD-ért, körülbelül 1-3 USD egy finomhangolási futtatás, szemben a 4-12 USD-vel a 80 GB-os szinten, amit a GR00T és a Pi0.5 igényel (árazás). Egy sikertelen SmolVLA futtatás egy kávé; egy sikertelen GR00T futtatás egy ebéd.

- Illeszkedik a már meglévő hardverhez: nagyjából 10-16 GB 8-as batch-nél.
- Egy elpazarolt futás órákba és egyjegyű dollárokba kerül, így megengedheti magának, hogy tévedjen az adatkészlettel kapcsolatban.
- Közösségi adatkészleteken előképzett, a lerobot címke alatt megosztva, valós SO-100 és SO-101 eredményekkel.
- Magában a lerobotban él: nincs gyártói tároló, és a smolvla_base nincs korlátozva.
- 450 M még mindig 450 M: a disztribúción kívüli siker 90-ről 50 százalékra esik a tanulmány SO-101 táblázatában.
- LeRobot v3.0 adatokat igényel; egy v2.1 felvételt konvertálni kell (adatkészlet elutasítva v3).
- 245 ms műveleti lépésenként egy kompetens pick and place vezérlő, nem reaktív.
- A dokumentáció példája 64-es batch-et futtat egy A100-on; 24 GB-on a batch-et a valós időre cseréli.
0. lépés: az adatkészlet dönti el a futást, nem a flag-ek
Semmi sem számít az alábbiakból, ha a felvétel rossz. A LeRobot SmolVLA oldala nyersen fogalmaz: a referencia adatkészlet 50 epizód volt 5 kockapozícióban, 10 pozíciónként, és ugyanaz a feladat 25 epizóddal rosszul teljesített. A variációnkénti ismétlés általánosít, a nyers epizódszám nem. Soha nem rögzített még ilyet? Kezdje a első adatkészlet rögzítésével a asztali klienssel, amely LeRobot formátumot ír ki egy teleoperációs munkamenetből, vagy kölcsönözzön egyet az adatkészlet-könyvtárból.
- Legalább 30 epizód AY-Robots-on, körülbelül 50 a LeRobot referencia recepthez.
- Minden variáció, amit a bevezetéskor elvár, többször megismételve.
- Egy feladatkarakterlánc, amelyet azonos módon írtak le a rögzítés és a bevezetés idején. A modell erre a szövegre van kondicionálva.
- Rögzített kamerák. A rögzítés és a bevezetés között elmozdított kamera a leggyakoribb oka annak, hogy egy tiszta veszteséggörbe mozdulatlan kart eredményez.
- Egy félretett variáció, amire soha nem képzett, így van valami őszinte, amivel tesztelhet.
SmolVLA, Pi0.5 és ACT LeRobot v3.0-t igényelnek. GR00T N1.7 és N1.5 v2.0 vagy v2.1-et igényelnek, és a betöltőjük összeomlik v3.0-n. Rögzítsen egyszer, tervezze meg a modellek későbbi összehasonlítását, és konvertálni fogja az egyik vagy másik módon: adathalmaz elutasítva 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_placeTovábbi információ erről itt: hogyan gyűjtsünk kiváló minőségű VLA képzési adatokat robotmanipulációhoz. A rövid változat: 30-50 tiszta epizód egy feladatról, szándékos variációval, felülmúlja a három feladat 200 hanyag epizódját, olyan különbséggel, amit egyetlen hiperparaméter sem tud áthidalni.
A lerobot 0.6.1 telepítése
# 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-infoAz alap lerobot telepítés vékony, és az extra csomagok mögé rejti a nagy függőségeket: smolvla hozzáadja a transzformereket, a num2words-t és az accelerate-et, training az adathalmaz-vermet és a wandb-t, core_scripts a hardver- és vizualizációs függőségeket. Linuxon a telepítési útvonal dönti el a CUDA wheel-t is: a PyPI alapértelmezettje egy cu130 wheel, 580.65-ös illesztőprogram-minimummal, így régebbi illesztőprogram esetén először a torch-ot telepítse a cu128 indexről, majd a lerobot-ot.
A --policy.path=lerobot/smolvla_base betölti az előre betanított 450 M ellenőrzőpontot és finomhangolja azt. A --policy.type=smolvla egy friss SmolVLA-t épít, és a konfiguráció alapértelmezett load_vlm_weights = False értéke azt jelenti, hogy még a SmolVLM2 gerinc súlyait sem húzza le, hacsak nem kéri. Ha rosszul csinálja, a futtatás boldogan betanul, ugyanannyiba kerül, és semmi átvihetőt nem tanul.
A betanítási futtatás, parancsról parancsra
- 1Hitelesítés a Hubbal szemben
Az alap ellenőrzőpont a Hubból származik, és valószínűleg az adatkészleted is.
bashhf auth login - 2Olvasd át az opciókat egyszer
A pipeline és a policy konfiguráció minden mezője egy flag. Olvasd át gyorsan, mielőtt beleásnád magad a forráskódba.
bashlerobot-train --help - 3Indítsd el a finomhangolást
A dokumentáció példája 64-es batch mérettel fut egyetlen A100-on; a számítási útmutató saját A100 40 GB-os horgonya 16-os batch méret, és a 8 a 24 GB-os megfelelője. Itt szándékosan nincs scheduler flag, lásd alább.
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 - 4Olvasd a log sort, ne csak a veszteséget
Minden --log_freq lépésenként a lerobot kiírja a loss, grdn, lr, updt_s, data_s, smp/s értékeket, és CUDA esetén a mem_gb-t. A mem_gb megmondja, hogy a batch elfér-e, az lr, hogy a schedule csökken-e, és a data_s közeledése az updt_s-hez azt jelenti, hogy az adatbetöltő a szűk keresztmetszet, nem a GPU.
bash# if data_s creeps toward updt_s lerobot-train ... --num_workers=8 - 5Gyűjts össze összehasonlítható ellenőrzőpontokat
A save_freq alapértelmezett értéke 20000, így egy 20000 lépéses futtatás egyetlen ellenőrzőpontot hagy, és semmit, amivel összehasonlíthatnánk. Állítsd 2000-re. A Hubra való feltöltéshez szükség van a --policy.repo_id-ra.
bash--save_freq=2000 \ --policy.repo_id=${HF_USER}/smolvla_pick_place \ --save_checkpoint_to_hub=true - 6Folytatás, ha a gép leáll
Mutass a --config_path-tal a train_config.json fájlra az ellenőrzőpont mellett. A lerobot nem hajlandó elindulni egy már létező output_dir-be, hacsak nem folytatod a futtatást, így véletlenül sem írhatsz felül egy futtatást.
bashlerobot-train \ --config_path=<path to the saved train_config.json> \ --resume=true
Azok a flag-ek, amelyek ténylegesen megváltoztatják az eredményt
| Flag | Mit csinál | 24 GB-on |
|---|---|---|
| --batch_size | Minták lépésenként, nagyjából lineárisan a VRAM-ban | 4 to 8 |
| --steps | Összes optimalizáló lépés | 20000 first pass |
| --policy.scheduler_decay_steps | Koszinuszos csökkenés hossza, előre beállított 30000 | Csak 30000 felett érvényesül |
| --policy.use_amp | Vegyes pontosság; a SmolVLA-nak nincs dtype mezője | true, ha szűkös a memória |
| --num_workers | Adatbetöltő folyamatok, alapértelmezett 4 | Emeld, amíg a data_s nem áll meg a növekedésben |
| --dataset.eval_split | Feladatonként visszatartott epizódok aránya | 0.1, with --eval_steps |
| --policy.freeze_vision_encoder | A látás-enkódert befagyasztva tartja | true on 24 GB |
| --policy.train_expert_only | Csak a ~100 M expert kap gradienseket | true first |
A SmolVLA egy koszinuszos ütemezést állít be: scheduler_warmup_steps = 1000, scheduler_decay_steps = 30000, scheduler_decay_lr = 2.5e-6. Régebbi tanácsok szerint egy 20000 lépéses futás emiatt megakad a lecsengés közepén. A 0.6.1-ben ez nem történik meg: a CosineDecayWithWarmupSchedulerConfig.build() megkapja a --steps paramétert, és a num_decay_steps alatt mindkettőt átméretezi, a 1000-es felmelegedést 666-ra, a 30000-es lecsengést 20000-re, miközben kiírja az Auto-scaling LR scheduler üzenetet. Soha nem méretezi felülre: a lecsengés a min(current_step, decay_steps) értékkel van korlátozva, így az alapértelmezett --steps=100000 a 30000. lépéstől a végéig, a futás 70 százalékában a minimumon marad. Csak ez a hosszú oldal igényli továbbra is a --policy.scheduler_decay_steps paramétert. Az lr oszlopban ellenőrizheti.
Az alapértelmezések, amiket örököl, ha semmihez sem nyúl
A konfiguráció a lerobotban saját optimalizáló és ütemező előbeállítást tartalmaz, és hacsak nem állítja be a use_policy_training_preset=false értéket, ezek az előbeállítások érvényesülnek. A SmolVLA tréninggel kapcsolatos kérdések felére egy olyan alapértelmezés ad választ, amiről nem is tudtak.
| Beállítás | Alapértelmezett a lerobot 0.6.1-ben | Definiálva itt |
|---|---|---|
| chunk_size / n_action_steps | 50 / 50 | SmolVLAConfig |
| num_steps (flow matching denoise) | 10 | SmolVLAConfig |
| optimizer_lr | 1e-4 | SmolVLAConfig |
| scheduler_warmup_steps | 1000 | SmolVLAConfig |
| scheduler_decay_steps | 30000 | SmolVLAConfig |
| scheduler_decay_lr | 2.5e-6 | SmolVLAConfig |
| freeze_vision_encoder | true | SmolVLAConfig |
| train_expert_only | true | SmolVLAConfig |
| batch_size / steps | 8 / 100000 | TrainPipelineConfig |
| seed / save_freq / num_workers | 1000 / 20000 / 4 | TrainPipelineConfig |
A két sor, ami meglepi az embereket, a freeze_vision_encoder és train_expert_only, mindkettő igaz. Alapértelmezetten körülbelül 100 M paramétert tanít, nem 450 M-et, ezért fér el 24 GB-on. A LeRobot saját referencia futtatása egy négy-GPU-s H100 klaszteren mindkettőt hamisra állítja; egy 24 GB-os kártyán ez egy működő futtatásból memórián kívüli összeomlást.
A útmutató tanácsa, ha memóriakorlátba ütközik, hogy csökkentse a kötegméretet (batch size) és használjon gradiens akkumulációt (gradient accumulation) a hatékony köteg visszaállításához. Nincs gradiens akkumuláció a lerobot 0.6.1-ben: TrainPipelineConfig nem tartalmaz ilyen mezőt, és a karakterlánc sehol sem jelenik meg a kiadott csomagban. Az AY-Robots űrlapja 8-as gradiens akkumulációs értéket mutat a SmolVLA számára, és azt sem alkalmazza. A 24 GB-os kártyán a karjai a --batch_size, a két freeze alapértelmezés, és a --policy.use_amp.
Mennyi ideig tart a futtatás, és hány lépés elegendő
A LeRobot öt epoch-ra vonatkozó valós idejű horgonyokat tesz közzé egy körülbelül 50 epizódos adathalmaz felett, ami körülbelül 45000 képkockát jelent 30 fps sebességgel. Nagyságrendi adatok, mondják a dokumentumok, de ezek jelentik a különbséget egy óra és egy nap elvárása között.
| Beállítás | Szabályzat | Köteg | Teljes idő |
|---|---|---|---|
| Egyetlen L4 / A10G (24 GB) | smolvla | 4 | körülbelül 3-6 óra |
| Egyetlen A100 40 GB | smolvla | 16 | körülbelül 1-2 óra |
| 4 x H100 80 GB gyorsítással | smolvla | 32 | körülbelül 1-2 óra |
| Egyetlen RTX 4090 / RTX 3090 (24 GB) | act | 8 | körülbelül 30-60 perc |
A szabály 5-10 epoch a adathalmazon, nem pedig fix lépésszám: steps_per_epoch = ceil(total_frames / (num_gpus x batch_size)). Azon a referencia adathalmazon, amelyre a dokumentáció hivatkozik, lerobot/svla_so100_pickplace, a metaadatok 50 epizódot és 19631 képkockát jelentenek: a 8-as köteg körülbelül 2454 lépést ad epochonként, így 20000 lépés nagyjából 8 epoch. Felezze meg a köteget, és ugyanaz a költségvetés fele annyi epochot eredményez, ezért ismételje meg ezt, valahányszor módosítja a --batch_size értéket.
A finomhangolt szabályzat futtatása a karon
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_placeA 245 ms-os műveleti lépésenkénti idő könnyen félreérthető: a házirend chunk_size = 50 műveletet bocsát ki előremenő lépésenként, és végrehajt n_action_steps = 50 közülük, így az, hogy milyen gyakran fizeti ezt a költséget, ezek a beállítások határozzák meg, nem pedig az, hogy milyen gyakran kapnak parancsot a szervók. Ez az, amit az vásárol, és amiért egy 245 ms-os modell képes meghajtani egy 30 Hz-es kart. Ami marad, az az a darab végén.
| Mérés (SmolVLA, valós SO-100) | Szinkron | Aszinkron |
|---|---|---|
| Befejezési idő, felvétel és elhelyezés, 10 próba | 13.75 s | 9.70 s |
| Felvétel és elhelyezés ciklusok rögzített időablakban | 9 | 19 |
| Sikerességi arány a három feladat átlagában | 78.3 % | 73.3 % |
A harmadik sor az, amit a legtöbb írás kihagy. Az aszinkron következtetés körülbelül 30 százalékkal gyorsabb, és nagyjából megduplázza az átviteli sebességet egy rögzített időablakban, és a tanulmány összehasonlíthatónak nevezi a sikerességi arányokat, ami átlagosan igaz is. Ez alatt a rendezés 70-ről 50 százalékra esett, míg a felvétel és elhelyezés 5-öt javult. A lerobot 0.6.1 a másik kart ugyanabban a binárisban hordozza: --inference.type=rtc átkapcsolja a kigördítést valós idejű darabolásra, amit a szkript saját használati blokkja ajánl a lassú VLA-khoz, Pi0-hoz, Pi0.5-höz és SmolVLA-hoz.
A vezérlőhurok 20 és 485 ms között van műveleti lépésenként, modelltől függően, és a nyilvános internetes oda-vissza utak egy működő házirendet habozóvá tesznek. A távoli következtetés lassú felvétel és elhelyezés esetén életképes, nem gyors reaktív mozgásnál: ha a feladat gyors korrekciókat igényel, a GPU-nak ugyanazon a LAN-on kell lennie, mint a karnak.
Ez a téma nem kapcsolódik közvetlenül a tréning futtatásához, de több SO-100 projektet tesz tönkre, mint bármely hiperparaméter. Az SO-100 és az SO-101 Feetech STS3215 szervói 7.4 V-on működnek; 12 V tönkreteszi őket. A LeKiwi egy 7.4 V-os kart kever egy 12 V-os alappal, így találja meg a rossz tápcsatlakozó a rossz aljzatot.
Két út ugyanahhoz a mentési ponthoz
Ön birtokolja a gépet, a környezetet és a hibakeresést. Az egyetlen felhőfüggőség az alap mentési pont Hubról való letöltése. Ez a megfelelő út, ha módosítani szeretné a szabályzatot, ha az adatok nem hagyhatják el a hálózatát, vagy ha a kártya tétlen.
- Ön irányítja a CUDA kerék, a meghajtó, az ffmpeg build és az adatbetöltő működését.
- Módosíthatja a configuration_smolvla.py fájlt, és még aznap délután újra betaníthatja.
- Villamos energiában és időben fizet, nem futtatásonként, és maga végzi a TorchCodec hibakeresését.
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=trueUgyanaz a futtatás egy űrlap mögött: kiválasztja a modellt és az adatkészletet, a backend a szükséges VRAM alapján bérel egy GPU-t, futtatja a trénert és mentési pontokat ír az objektumtárolóba. Az adatkészlet származhat egy Hugging Face repo azonosítóból, a nyilvános könyvtárból, vagy az Ön gépéről. Kezdje a SmolVLA az SO-100-on oldalon, vagy a mátrixnál a tréning oldalon.
| Mező | Alapértelmezett érték, amit a platform küld a SmolVLA számára | Megjegyzés |
|---|---|---|
| batch size | 2 | Konzervatív a 24 GB-os szinthez |
| learning rate | 1e-4 | A lerobot előbeállítása |
| max steps | 20000 | A referencia futtatás a LeRobot dokumentációjában |
| gradient accumulation | 8 | Megjelenik az űrlapon, de nincs alkalmazva |
| extra knobs | seed, logFreq | A seed teszi a futtatást megismételhetővé |
- 2-5 óra a 24 GB-os szinten, körülbelül 1-3 USD futtatásonként.
- Ugyanezek a műveletek terminálból a /cli címen és AI ügynököktől a /mcp címen.
- Az inferencia podok tétlen figyelővel rendelkeznek, így egy elfelejtett pod magától megsemmisül ahelyett, hogy csendben számlázna.
- Még nincs karja? A /live egy fizikai SO-100-at streamel, amit regisztráció nélkül is vezethet.
A sorban ragadt feladat a spot piac tünete, nem hiba: tréning feladat beragadt a sorba. Lépésről lépésre: tanítsa be első szabályzatát és a tréning dokumentáció.
Amikor a SmolVLA a rossz választás
Az, hogy a SmolVLA volt-e a megfelelő első futtatás, nem azon múlik, hogy működött-e, hanem azon, hogy a hiba mondott-e valamit. Érjen el 60 vagy 70 százalékot, és egy nagyobb modell ésszerű következő befektetés: az adatok jelet hordoznak. Érjen el 10 százalékot, és egy 3 B modell valószínűleg szintén 10 százalékot ér el, amit most tanult meg három dollárért tizenkettő helyett.

Érdemes elolvasni, mielőtt többet költene: Pi0.5 a SmolVLA ellen a nagyobb kapacitásért ugyanazon az ötleten alapulva, és GR00T N1.7 a SmolVLA ellen az NVIDIA útvonalhoz, mindkettő 80 GB-os szinten, 4-12 USD futtatásonként. A másik irány, ACT az olcsóbb alapvonal: 80 M paraméter, 20 ms akció lépésenként, nyelvi kondicionálás nélkül. Mind az öt megtalálható a házirendek oldalán; arénában 85 modellt és 332 benchmark eredményt tartalmaz.

Ellenőrzőlista, mielőtt bármit is skálázna
- Elérte az
lra 2.5e-6-os alsó határát? 30000 lépés alatt a lerobot átméretezi a csökkenést, és ezt jelzi indításkor; e fölött állítsa be a--policy.scheduler_decay_stepsparamétert saját maga. - Több ellenőrzőpont, és epizódok elkülönítve a
--dataset.eval_splitparaméterrel, hogy az értékelési veszteségnek legyen értelme. - Mozog egyáltalán a policy? A csökkenő veszteség mozdulatlan karral specifikus okokra vezethető vissza: a veszteség csökken, a policy nem csinál semmit.
- Túléli a környezetváltozást? Ha nem: a policy csak egy beállításban működik.
- Leírta a seed-et? A lerobot alapértelmezés szerint 1000-et használ, így két érintetlen futtatás összehasonlítható marad.
- Csak ezután: több epizód, több variáció, vagy nagyobb modell. Ebben a sorrendben.
Arról, hogy miért léteznek ezek a modellek és mit csinálnak a nyelvi bemenettel, adják a hátteret; végigvezet az összeszerelésen a keresztül az első futtatásig. A kész ellenőrzőponthoz ; ha a kar soha nem jelenik meg, .
Képezze a SmolVLA-t saját karján
Válassza ki a modellt és a kart, és az útmutató megadja a pontos alapértelmezéseket, az adatkészlet formátumát és a futtatás költségeit. A SmolVLA a 24 GB-os szinten található, futtatásonként 1-3 USD áron.
Nyissa meg a képzési útmutatókatValóban finomhangolhatom a SmolVLA-t egy RTX 4090-en?▾
Igen. A LeRobot számítási útmutatója szerint a SmolVLA nagyjából 10-16 GB csúcs VRAM-ot igényel batch 8 mellett AdamW-vel, és a 24 GB-os fogyasztói kártyákat kényelmesnek tartja ehhez. A dokumentációban szereplő batch 64 példa egyetlen A100-zal van párosítva. A memória nagyjából lineárisan skálázódik a batch méretével, ezért használjon 4-et vagy 8-at, és figyelje a mem_gb-t.
Valójában hány epizódra van szükségem?▾
Az AY-Robots a minimumot 30-ban határozza meg. A LeRobot dokumentációja körülbelül 50-et ajánl, és arról számol be, hogy ugyanazon feladat 25 epizódja rosszul teljesített. A struktúra fontosabb, mint a szám: a referenciahalmaz 5 kockapozícióból állt, mindegyikhez 10 epizóddal, és ez az ismétlés az, ami általánosítható.
A dokumentáció batch 64-et ír, a platform batch 2-t küld. Melyik a helyes?▾
Mindkettő, különböző hardverekhez. A dokumentációban szereplő példa batch 64-et használ, és körülbelül 4 órát említ 20000 lépéshez egyetlen A100-on; a számítási útmutató A100 40 GB-os horgonya batch 16. A batch 2 az, amit az AY-Robots küld a 24 GB-os szinten. Helyileg a 4-8 a középút, és az epoch számítás ezzel változik.
SmolVLA vagy ACT egy első futtatáshoz egy SO-100-on?▾
ACT, ha a feladat egy ismétlődő mozgás, és a leggyorsabb ciklust szeretné: 20 ms akció lépésenként, 80 M paraméter, nyelvi kondicionálás nélkül. SmolVLA, ha nyelvi kondicionálást, több feladat stringet szeretne egy checkpointban, és egy előre betanított alapot. Mindkettő a 24 GB-os szinten van, így a választás a feladaton múlik, nem a költségvetésen.
Be kell állítanom a --policy.scheduler_decay_steps-t?▾
Csak akkor, ha a --steps értéke 30000 felett van. A SmolVLA 30000 lépésnél előre beállítja a koszinuszos lecsengést, és a lerobot 0.6.1 maga skálázza le egy rövidebb futtatáshoz, naplózva az „Auto-scaling LR scheduler” üzenetet, amikor ezt teszi. Soha nem skáláz fel, így a gyári --steps=100000 az utolsó 70000 lépést a 2.5e-6-os alsó határon hagyja.
Sources
- SmolVLA: Egy látás-nyelv-akció modell megfizethető és hatékony robotikához
- SmolVLA: Hatékony látás-nyelv-akció modell (Hugging Face blog)
- lerobot/smolvla_base modellkártya
- LeRobot dokumentáció: SmolVLA
- LeRobot dokumentáció: Számítási hardver útmutató LeRobot képzéshez
- LeRobot dokumentáció: Telepítés
- LeRobot dokumentáció: LeRobotDataset v3.0 és a v2.1 konverter
- LeRobot dokumentáció: Aszinkron következtetés
- lerobot v0.6.1: configuration_smolvla.py
- lerobot v0.6.1: TrainPipelineConfig
- lerobot v0.6.1: CosineDecayWithWarmupSchedulerConfig
- lerobot v0.6.1: lerobot_rollout.py (stratégiák és RTC következtetés)
- lerobot v0.6.1: pyproject.toml (extrák és konzol belépési pontok)
- lerobot a PyPI-n
- lerobot/svla_so100_pickplace adathalmaz (50 epizód, 19631 képkocka, 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