
TinyVLA și SmolVLA aduc un VLA funcțional sub 1 miliard de parametri. Numere reale din ambele lucrări, setările implicite lerobot, latența măsurată și costul unei rulări pe o placă de 24 GB.
Aproape fiecare model de viziune-limbaj-acțiune despre care se scrie presupune o placă de centru de date. OpenVLA are 7 miliarde de parametri. GR00T N1.7 și Pi0.5 au în jur de 3 miliarde de parametri și necesită un A100 de 80 GB pentru reglaj fin. Dacă placa de pe biroul dumneavoastră este un 4090, acea clasă de modele este inaccesibilă.
Două lucrări susțin că nu aveți nevoie de el. TinyVLA (arXiv 2409.12514, acceptat de IEEE Robotics and Automation Letters în februarie 2025) construiește un VLA dintr-o arhitectură de bază de la 400 de milioane la 1,3 miliarde de parametri, plus un cap de acțiune de difuzie. SmolVLA (arXiv 2506.01844, trimis pe 2 iunie 2025) livrează 450 de milioane de parametri cu ponderi deschise, date deschise și un script care rulează pe o singură placă de consumator. Iată ce au măsurat ambele, și unde argumentul sub 1 miliard de parametri nu mai este valabil.
Ce trebuie să știți
- •TinyVLA este disponibil în trei dimensiuni: 422 de milioane în total cu 101 milioane antrenabili, 740 de milioane cu 138 de milioane, 1,3 miliarde cu 143 de milioane. Doar primele două se încadrează sub 1 miliard.
- •Tabelul său IV măsoară 14 ms per predicție de acțiune pentru TinyVLA-1B pe un A6000, comparativ cu 292 ms pentru OpenVLA-7B și 140 ms pentru un OpenVLA-1B redus.
- •Capul menține acea viteză, nu arhitectura de bază: schimbați capul de difuzie al TinyVLA-H cu un cap ACT și cele cinci sarcini reale de robot scad de la o medie de 94.0 la cifre unice. Un cap MLP obține 0 peste tot.
- •SmolVLA are 450 de milioane de parametri, aproximativ 100 de milioane dintre aceștia fiind expertul de acțiune, preantrenat pe 481 de seturi de date LeRobot din comunitate și 10,6 milioane de cadre. Raportează 87.3 pe LIBERO comparativ cu 86.0 pentru un Pi0 preantrenat în robotică la 3.3 miliarde, și 78.3 pe trei sarcini reale SO-100 comparativ cu 61.7 pentru Pi0 la 3.5 miliarde.
- •Antrenat pe o singură sarcină fără acea preantrenare, SmolVLA scade la 40.0 pe acele sarcini, sub 48.3 al ACT. Mic nu înseamnă automat ușor.
- •TinyVLA nu are integrare LeRobot și necesită un stack CUDA 11.7. SmolVLA este în lerobot și costă aproximativ 1 până la 3 USD per rulare pe nivelul de 24 GB aici.
Ce se consideră de fapt un VLA mic
Numărul de parametri de pe un card de model nu este un singur număr. Poate însemna greutăți totale, greutăți încărcate la inferență sau greutăți care primesc gradienți în timpul . TinyVLA raportează ambele, iar diferența este mare: TinyVLA-H are 1,3 B total, dar 143 M antrenabili, deoarece turnul de viziune și cea mai mare parte a modelului lingvistic rămân înghețate în timp ce adaptoarele LoRA și capul de acțiune se mișcă. Lucrarea estimează ponderea antrenabilă la aproximativ 5 procente.
| Model | Parametri | Backbone | Cap de acțiune | Sursă |
|---|---|---|---|---|
| TinyVLA-S | 422 M total, 101 M antrenabili | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 M total, 138 M antrenabili | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1.3 B total, 143 M antrenabili | Llava-Pythia ~1.3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 M, ~100 M expert de acțiune | SmolVLM2-500M-Video-Instruct | Flow matching expert | arXiv 2506.01844 |
| Octo-Small | 27 M | ViT-S scale, codificator de text T5-Base | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, fără model lingvistic | Regresie directă pe fragmente | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, codificatoare DINOv2 și SigLIP | Tokenuri de acțiune autoregresive | arXiv 2406.09246 |
Două rânduri merită discutate. la aproximativ 80 M este mai mic decât orice altceva de aici, dar nu are un model lingvistic, deci nu este un VLA: învață o singură sarcină și nu i se poate cere să facă alta. la 27 M este condiționat printr-un codificator de text T5-Base, nu un backbone LLM. Baze bune, niciunul nu oferă urmărirea instrucțiunilor pe care o implică eticheta.
TinyVLA-H, varianta care prezintă rezultatele principale, are 1,3 B și se situează deasupra liniei. Întrebarea mai bună este dacă un model încape în 24 GB în timpul antrenării și atinge rata de control dorită la inferență. Cele cinci politici pe care le puteți antrena aici se găsesc pe pagina de politici; TinyVLA are o intrare în arenă dacă doriți să-i vedeți numerele alături de ale celorlalți.
TinyVLA: viteza vine de la cap, nu de la coloana vertebrală
Interpretarea evidentă este că au redus dimensiunea modelului lingvistic, astfel încât a devenit mai rapid. Ablația din lucrare spune altceva. Înlocuirea coloanei vertebrale de 7 B a OpenVLA cu una de aproximativ 1 B a redus predicția per-acțiune de la 292 ms la 140 ms, un câștig de 2x. TinyVLA-H, cu un număr comparabil de parametri, rulează la 14 ms pe aceeași placă. Celălalt 10x este capul de acțiune.
| Model | Predicție per-acțiune | Măsurat pe |
|---|---|---|
| OpenVLA-7B | 292 ms | single A6000 |
| OpenVLA-1B, backbone swapped for TinyVLA's | 140 ms | single A6000 |
| TinyVLA-1B (TinyVLA-H) | 14 ms | single A6000 |
OpenVLA emite acțiuni ca token-uri discretizate prin capul modelului lingvistic, câte unul per dimensiune de acțiune, autoregresiv. TinyVLA atașează un decodor de difuzie care produce întregul segment dintr-o singură mișcare. Tabelul V prezintă arhitectura la TinyVLA-H și schimbă doar capul, pe aceleași cinci sarcini de robot real. Este cea mai clară dovadă din ambele lucrări pentru argumentul potrivire a fluxului pe care îl fac politicile, și motivul pentru care Pi0 s-a îndepărtat de decodarea token-urilor.
| Performanță pe TinyVLA-H | Plasare Minge Tenis | Răstoarnă Cana | Stivuiește Cuburi | Închide Sertar | Deschide Cutie |
|---|---|---|---|---|---|
| Difuzie (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| Transformator de Fragmentare a Acțiunilor | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| Perceptron multi-strat | 0 | 0 | 0 | 0 | 0 |
Cifrele de 292 / 140 / 14 ms sunt din Tabelul IV, toate pe un singur A6000. Acestea reprezintă predicția per acțiune și exclud capturarea camerei, preprocesarea și scrierea serială către servomecanisme. Tratați latența publicată ca o limită inferioară, niciodată ca rata de control. Propriile noastre cifre au aceeași limită: vezi latența de inferență.
Ce scor a obținut TinyVLA
| Benchmark | Protocol | TinyVLA-H | Linii de bază |
|---|---|---|---|
| MetaWorld, 50 sarcini, simulare | Multi-sarcină, 50 demo-uri, 3 seed-uri | 77.6 / 21.5 / 11.4 / 15.8 pe dificultate, medie 31.6 | Diffusion Policy medie 10.5 |
| Franka Panda real, 5 sarcini | 100 traiectorii per sarcină, 20 încercări | 94.0 medie | OpenVLA 68.3, Diffusion Policy 35.3 |
| UR5 bimanual, 3 sarcini | Multi-sarcină, 10 încercări per sarcină | 76.7 / 36.7 / 30.0 | OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0 |
Rândul bimanual are o explicație plictisitoare pe care lucrarea o oferă singură: OpenVLA este preantrenat pe Open X-Embodiment, care constă în întregime din date cu un singur braț, astfel încât un spațiu de acțiune cu două brațe este în afara distribuției și obține zero. Linia de bază a politicii de difuzie depășește TinyVLA-H la două dintre cele trei sarcini. Context în prezentarea Open X-Embodiment.

Depozitul TinyVLA, la data de august 2026
Lucrarea este bună. Codul este o versiune de cercetare. Depozitul este github.com/liyaxuanliyaxuan/TinyVLA; fișierul său README datează lansarea codului la 17 februarie 2025, iar ultima modificare este din 11 martie 2025. Este în regulă pentru reproducerea unei lucrări, dar o problemă dacă doriți o bibliotecă întreținută.
git clone https://github.com/liyaxuanliyaxuan/TinyVLA
conda create -n tinyvla python=3.10 -y
conda activate tinyvla
pip install --upgrade pip
pip install -r requirements.txt
cd policy_heads && pip install -e .
cd ../llava-pythia && pip install -e .requirements.txt fixează torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4 și stiva CUDA la versiunile 11.x: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. README-ul solicită Python 3.10; lerobot 0.6.1 necesită 3.12 sau o versiune mai nouă, deci cele două nu pot partaja un mediu. Confirmați mai întâi că există o versiune torch 2.0.1 pentru generația dvs. de GPU. Dacă o rulare eșuează din cauza VRAM, lista de verificare pentru lipsa de memorie este mai rapidă decât ghicitul.
TinyVLA, de asemenea, nu citește seturi de date LeRobot. Formatul său este HDF5 în stil ACT: acțiune, language_raw și un grup de observații cu imagini multi-vedere, joint_positions, qpos și qvel. Depozitul include data_utils/rlds_to_h5py.py pentru intrarea RLDS, iar fiecare sarcină este înregistrată manual în aloha_scripts/constants.py cu dataset_dir, episode_len și camera_names. Dacă episoadele au venit de la lerobot sau de la clientul desktop, conversia vă aparține.
# scripts/train.sh, the real flags from the repository
ACTION_HEAD=droid_diffusion
deepspeed --master_port 29600 --num_gpus=8 --num_nodes=1 ./train_tinyvla.py \
--deepspeed scripts/zero2.json \
--lora_enable True \
--lora_module 'vit llm' \
--lora_r 64 \
--lora_alpha 256 \
--non_lora_lr 2e-5 \
--task_name "example_task_config" \
--model_name_or_path /path/to/pretrained_vlm \
--freeze_vision_tower True \
--freeze_backbone True \
--bf16 True \
--max_steps 10000 \
--per_device_train_batch_size 32 \
--gradient_accumulation_steps 1 \
--learning_rate 2e-4 \
--lr_scheduler_type "cosine" \
--warmup_ratio 0.005 \
--save_steps 1000 \
--action_head_type $ACTION_HEAD \
--use_state True \
--window_size 6- --num_gpus=8 presupune un nod cu opt plăci. Setați-l la 1 și reduceți dimensiunea lotului mult sub 32. Nicio variantă cu un singur GPU nu este livrată upstream, deci comanda nu poate fi rulată verbatim pe un 4090.
- --deepspeed scripts/zero2.json indică un fișier care nu se află în directorul scripts de nivel superior. Configurațiile DeepSpeed sunt livrate la llava-pythia/scripts/zero2.json. Corectați calea înainte de prima rulare.
- README-ul cere ca numele directorului de ieșire să conțină llava_pythia, plus lora dacă LoRA este activat.
- Backbone-ul este o descărcare separată: lesjie/Llava-Pythia-400M, -700M sau -1.3B. Nu există un singur checkpoint de bază către care să îndreptați o politică așa cum o îndreptați către lerobot/smolvla_base.
SmolVLA: modelul sub-1 B pe care îl puteți rula în această după-amiază
SmolVLA susține același argument într-o bibliotecă întreținută. Are 450 M parametri pe un backbone SmolVLM2-500M-Video-Instruct, iar eficiența provine din setările pe care le puteți citi din configuration_smolvla.py, mai degrabă decât dintr-o afirmație despre a fi mic.
| Setare în configuration_smolvla.py | Implicit | Ce oferă |
|---|---|---|
| num_vlm_layers | 16 | Doar primele 16 straturi ale modelului lingvistic rulează |
| expert_width_multiplier | 0.75 | Dimensiunea ascunsă a expertului de acțiune este 75 la sută din cea a VLM-ului |
| self_attn_every_n_layers | 2 | Auto-atenție intercalată cu atenție încrucișată |
| chunk_size / n_action_steps | 50 / 50 | O singură trecere emite 50 de acțiuni și toate cele 50 sunt executate |
| num_steps | 10 | Denoising-ul prin potrivirea fluxului fixat la 10 pași |
| tokenizer_max_length | 48 | Instrucțiunea este trunchiată la 48 de token-uri |
| freeze_vision_encoder / train_expert_only | True / True | Fine-tuning-ul mișcă expertul, nu turnul de viziune |
| optimizer_lr, warmup, decay | 1e-4, 1000 steps, to 2.5e-6 over 30000 | Nu este rețeta din lucrare: pre-antrenarea sa a folosit o încălzire de 100 de pași pe parcursul a 200000 de pași |
Preantrenarea a utilizat 481 de seturi de date LeRobot din comunitate, 22.9 K episoade și 10.6 M cadre pe 4 GPU-uri, 200000 de pași la un lot global de 256; lucrarea estimează întregul proiect la aproximativ 30 K ore GPU. Un număr de urmărit: blogul de lansare Hugging Face menționează 487 de seturi de date curatate, în timp ce tabelul lucrării indică 481. Utilizăm cifra din lucrare și semnalăm discrepanța.
| Benchmark | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| Media LIBERO, multi-task | 87.3 | 88.75 | 86.0 (3.3 B, preantrenat pentru robotică) | - |
| Media Meta-World, multi-task | 57.3 | 68.24 | 47.9 (3.5 B, preantrenat pentru robotică) | - |
| SO-100 real, 3 sarcini, antrenament multi-task | 78.3 | - | 61.7 (3.5 B) | - |
| SO-100 real, 3 sarcini, single-task, fără preantrenare robotică | 40.0 | - | - | 48.3 |
| SO-101 lego pick-place, single-task, în distribuție | 90 | - | - | 70 |
| SO-101 lego pick-place, single-task, în afara distribuției | 50 | - | - | 40 |
LIBERO este simulare și tot ce este competent obține acum scoruri în jurul valorii de optzeci. Rândul SO-100 real, unde un model de 450 M depășește unul de 3.5 B cu 16.6 puncte, este cel interesant; rândul de sub el este contraponderea. Eliminați preantrenarea comunitară și antrenamentul multi-task și același model scade la 40.0, sub ACT. Afirmația defensibilă este că un model mic nu este automat mai rău, nu că este mai bun.
Un accident ajută: tabelul Meta-World din lucrarea SmolVLA conține propriile numere publicate ale TinyVLA ca linie de bază, astfel încât, pentru o dată, ambele modele se află într-un singur tabel, SmolVLA-0.45B la 57.3 față de TinyVLA-H la 31.6. De asemenea, raportează că antrenamentul SmolVLA este cu aproximativ 40 la sută mai rapid decât Pi0, utilizând de 6 ori mai puțină memorie. Toate acestea provin de la autorii SmolVLA; intrarea în arenă leagă fiecare valoare de sursa sa.
Unde își petrece SmolVLA timpul
AY-Robots listează SmolVLA la 245 ms per pas de acțiune și ACT la 20 ms în catalogul de politici. TinyVLA raportează 14 ms per predicție de acțiune. Aceste numere nu sunt comparabile, iar tratarea lor ca atare este cea mai comună greșeală în acest subiect: unii cronometrează o singură trecere înainte, alții împart acea trecere pe un fragment odată ce fragmentarea acțiunilor o amortizează.
- SmolVLA emite 50 de acțiuni per trecere înainte și le execută pe toate cele 50. La cele 30 fps pe care lucrarea le utilizează pe roboți reali, o inferență acoperă aproximativ 1.7 secunde de mișcare.
- Inferența asincronă calculează următorul fragment în timp ce cel curent încă se execută: 9.7 s timp mediu de finalizare a sarcinii față de 13.75 s sincron, aproximativ 30 la sută mai rapid, și 19 cicluri de pick-and-place într-o fereastră fixă de 60 de secunde față de 9.
- Ratele de succes au fost comparabile, nu mai bune, 78.3 sincron față de 73.3 asincron. Asincronul cumpără debit, nu precizie.
- Fragmentarea ascunde latența de calcul, nu latența rețelei, și face politica mai puțin reactivă deoarece este angajată la 50 de acțiuni.
AY-Robots poate auto-provisiona un pod GPU cloud care servește politica dumneavoastră în timp ce clientul robot local comunică cu acel endpoint, iar pod-ul include un watchdog inactiv, astfel încât se autodistruge în loc să factureze în tăcere. Ceea ce nu face este să elimine drumul dus-întors prin internetul public. Bucla de control pentru cele cinci politici de aici este de 20 până la 485 ms per pas de acțiune înainte de orice rețea, deci inferența la distanță este viabilă pentru operațiuni lente de tip pick-and-place, nu pentru mișcări reactive rapide.

Reglarea fină a SmolVLA pe o singură placă de consumator
Calea manuală, pe lerobot 0.6.1, versiunea curentă PyPI începând cu 23 august 2026. Tot ce urmează provine din documentația Hugging Face lerobot SmolVLA, preluată în aceeași zi; versiunea ghidată este mai blândă.
- 1Instalează lerobot cu extra-ul smolvla
Dependințele SmolVLA sunt un extra opțional, nu fac parte din instalarea de bază. Instalarea fără ele și apoi întrebarea de ce tipul de politică este necunoscut este o jumătate de oră pierdută frecvent.
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2Obține un set de date cu suficiente episoade
Documentația recomandă aproximativ 50 de episoade și afirmă că aceeași sarcină cu 25 nu a fost suficientă. AY-Robots stabilește minimul la 30. Înregistrează-ți propriile, sau începe din directorul de seturi de date.
bash# any LeRobotDataset on the Hub works as --dataset.repo_id # lerobot/svla_so100_pickplace is the paper's own 50-episode set: # 5 cube positions, 10 episodes each - 3Începe ajustarea fină
Comanda din ghidul lerobot, nemodificată. Documentația estimează 20000 de pași la aproximativ 4 ore pe un A100. Pe o placă de 24 GB, așteaptă-te la mai mult și măsoară timpul.
bashcd lerobot && lerobot-train \ --policy.path=lerobot/smolvla_base \ --dataset.repo_id=${HF_USER}/mydataset \ --batch_size=64 \ --steps=20000 \ --output_dir=outputs/train/my_smolvla \ --job_name=my_smolvla_training \ --policy.device=cuda \ --wandb.enable=true - 4Scade dimensiunea lotului până se potrivește
batch_size=64 este un exemplu documentat, nu o promisiune legată de placa ta. Documentația sfătuiește să începi cu o valoare mică și să o crești atâta timp cât timpii de încărcare rămân scurți.
bashlerobot-train --help - 5Rulează punctul de control pe braț
Aceeași bibliotecă, o singură comandă. Flag-urile de chunking în timp real sunt comentate în documentație și sunt cele la care să apelezi pe hardware cu putere redusă.
bashlerobot-rollout \ --strategy.type=base \ --robot.type=so101_follower \ --robot.port=/dev/ttyACM0 \ --robot.id=my_blue_follower_arm \ --robot.cameras="{ front: {type: opencv, index_or_path: 8, width: 640, height: 480, fps: 30}}" \ --task="Grasp a lego block and put it in the bin." \ --policy.path=HF_USER/FINETUNE_MODEL_NAME
Indiferent de calea pe care o urmezi, vei ajunge cu un punct de control plus configurația care l-a produs. Păstrează revizia setului de date, numărul de pași și seed-ul alături de el. lerobot folosește implicit seed 1000; punctul de intrare pentru ajustarea fină al GR00T nu expune niciun seed, deci acele rulări nu sunt reproductibile bit-cu-bit. Mecanica în documentația de antrenament.
Două moduri de a pune un VLA mic pe un braț
Tu deții mașina și modurile de eșec. Pentru SmolVLA acest lucru este rezonabil: un extra pip, o comandă de antrenament, o comandă de rulare. Pentru TinyVLA este o reproducere de cercetare cu pin-uri blocate, o cale DeepSpeed defectă și o conversie de date pe care o scrii tu însuți.
- Obține o placă de 24 GB, înregistrează 30 până la 50 de episoade, verifică fluxurile camerei cadru cu cadru.
- pip install -e ".[smolvla]", antrenează lerobot împotriva lerobot/smolvla_base, apoi servește punctul de control pe mașina la care este conectat brațul.
- Pentru TinyVLA: mediu conda separat, convertește datele în HDF5, înregistrează sarcina în constants.py, repară calea zero2.json, taie train.sh de la opt GPU-uri la unul.
- Fără facturare pe oră odată ce placa este plătită.
- Inferența stă lângă servomotoare, singura modalitate de a obține o buclă de control rapidă.
- Poți patch-ui codul politicii, iar TinyVLA este disponibil doar în acest mod.
- Un 4090 exclude orice politică de ~3 B, deci nu există o comparație locală cu GR00T N1.7 sau Pi0.5.
- Configurarea mediului este munca reală. Doar pin-urile TinyVLA pot costa o zi.
- Fără coadă, fără reîncercare, fără stocare de puncte de control. O repornire la pasul 14000 înseamnă să începi din nou.
SmolVLA este una dintre cele cinci politici de aici. Alegi modelul și setul de date într-un formular, backend-ul închiriază un GPU în funcție de VRAM-ul necesar, rulează antrenorul și scrie puncte de control în stocarea de obiecte. Pas cu pas: SmolVLA pe SO-100, sau matricea completă pe pagina de antrenament.
| Ce trimite platforma pentru SmolVLA | Valoare |
|---|---|
| dimensiunea lotului | 2 |
| rata de învățare | 1e-4 |
| pași maximi | 20000 |
| acumulare de gradient | 8, și nu ajunge la antrenor |
| opțiuni suplimentare în formular | seed, logFreq |
| nivel GPU | RTX 4090 sau orice placă de 24 GB |
| format set de date | LeRobot v3.0 |
| episoade minime | 30 |
În primul rând, dimensiunea implicită a lotului aici este 2, nu 64 ca în exemplul din documentația lerobot, iar setarea acumulării de gradient este trimisă, dar nu are niciun efect pentru SmolVLA, deci lotul efectiv este într-adevăr 2. Mărește-o în mod deliberat, în loc să presupui că valoarea implicită se potrivește cu cea din amonte. În al doilea rând, TinyVLA nu poate fi antrenat deloc aici.
O rulare pe nivelul de 24 GB durează 2 până la 5 ore la 0.30 până la 0.60 USD pe oră, aproximativ 1 până la 3 USD. Pe nivelul A100, o politică de ~3 B durează 3 până la 6 ore la 1.20 până la 2.00 USD pe oră, aproximativ 4 până la 12 USD. Vezi prețuri, și aceleași operațiuni din CLI și serverul MCP.
Când un model mic este alegerea greșită
Ambele lucrări sunt mai atente aici decât sunt rezumatele. Analiza eșecurilor TinyVLA este specifică: varianta de 0,4 B a eșuat de trei ori prin interpretarea greșită a instrucțiunii, ceea ce autorii atribuie înțelegerii lingvistice limitate în VLM-ul mai mic, iar acel mod a dispărut la 1,3 B. SmolVLA arată aceeași curbă de la celălalt capăt: versiunea de 2,25 B a arhitecturii identice obține 88,75 la LIBERO și 68,24 la Meta-World, față de 87,3 și 57,3 pentru modelul de 0,45 B.
- Se potrivește pe o placă de 24 GB, ceea ce reduce costul unui experiment de la zeci de dolari la câțiva.
- Suficient de rapid pentru a rula lângă braț, deci fără salt de rețea în bucla de control.
- Se ajustează fin pe datele pe care o singură persoană le poate înregistra, zeci de episoade în loc de mii.
- Ponderile, lista de date și codul SmolVLA sunt publice, astfel încât un rezultat slab poate fi depanat.
- Urmărire mai slabă a instrucțiunilor: mai puțini parametri lingvistici, capacitate redusă de a separa expresii de referință similare.
- Generalizare spațială și vizuală mai redusă la configurații pe care nu le-ați înregistrat.
- Mai sensibil la defectele setului de date, cu mai puțină pre-antrenare la care să se poată apela.
- Lucrul multi-task și pe termen lung favorizează în continuare modelele mai mari, inclusiv varianta de 2,25 B a SmolVLA.
Comparația care merită făcută nu este TinyVLA versus SmolVLA. Este SmolVLA versus ACT pe propria sarcină, iar lucrarea SmolVLA este argumentul pentru aceasta. Antrenat pe o singură sarcină, fără pre-antrenare robotică, SmolVLA a obținut o medie de 40,0 pe trei sarcini SO-100, unde ACT pe o singură sarcină a reușit 48,3. Ceea ce îl ridică la 78,3 este pre-antrenarea comunitară plus antrenamentul multi-task, nu doar arhitectura. Pe sarcina lego SO-101, ambele single-task, SmolVLA câștigă: 90 față de 70 în distribuție. Apoi SmolVLA versus Pi0.5 dacă bugetul permite.
Există mai puțină preantrenare prealabilă pentru a acoperi datele proaste, astfel încât o curbă de pierdere curată pe un set de date defectuos vă oferă o politică care reproduce defectul cu încredere. Documentația lerobot este directă în privința structurii: 50 de episoade pe 5 poziții de cub, 10 pe poziție, au funcționat; 25 nu. Dacă pierderea pare în regulă și brațul nu face nimic util, începeți de la pierderea scade, politica nu face nimic, politica funcționează doar într-o singură configurație sau colectarea de date de antrenament VLA care sunt de fapt utilizabile.
Cinci politici, un tabel comparativ
GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA și ACT cu număr real de parametri, latență de inferență per pas de acțiune, nivelul GPU necesar fiecăruia și numărul minim de episoade înainte de a face ceva util.
Comparați politicileUn tabel decizional pe care îl puteți utiliza
| Situația dumneavoastră | Începeți cu | De ce |
|---|---|---|
| O singură sarcină, demonstrații bune, fără limbaj | ACT | ~80 M, 20 ms, 24 GB card, fără model de bază de descărcat |
| Câteva sarcini conexe, o singură instrucțiune pentru fiecare | SmolVLA | 450 M, in lerobot, 30 episode minimum, 1 to 3 USD per run |
| Reproducerea specifică a rezultatului TinyVLA | TinyVLA-B or TinyVLA-H | Repo-ul este singura cale: mediu izolat, date convertite |
| Multi-sarcină, instrucțiuni variate, buget A100 | GR00T N1.7 or Pi0.5 | ~3 B, 152 ms și 485 ms per pas, 4 până la 12 USD per rulare |
| Încă nu aveți un robot | Controlați un braț real | Brațul live bazat pe coadă nu necesită înregistrare și nici hardware |
Pentru ultimul rând, brațul live transmite un SO-100 fizic pe care îl poți controla din browser fără cont, iar cele trei moduri de a începe acoperă restul. SO-100 este brațul de referință aici, aproximativ 110 până la 150 EUR în piese, cu un ghid complet de configurare.
Ce urmează după modelele sub 1 miliard
Reducerea numărului de parametri este o modalitate de a face un VLA ieftin și nu este neapărat cea câștigătoare. OpenVLA-OFT (arXiv 2502.19645) păstrează arhitectura de bază de 7 miliarde de parametri și modifică doar modul în care sunt decodificate acțiunile, raportând o creștere de 26x a debitului de generare a acțiunilor și o creștere a LIBERO de la 76.5 la 97.1 procente. BitVLA (arXiv 2506.07530) transformă fiecare pondere a unei arhitecturi de bază BitNet b1.58 2B4T de 1 bit în una ternară, raportând o memorie cu 11.0x mai mică și o latență end-to-end cu 4.4x mai redusă, egalând în același timp OpenVLA-OFT de precizie completă. X-VLA-0.9B (arXiv 2510.10274) se încadrează în linia de 1 miliard de parametri cu potrivire de flux.
Firul comun: decodorul de acțiuni, nu modelul de limbaj, este locul unde se manifestă latența. Întrebați cum o politică emite acțiuni înainte de a întreba câți parametri are. arena are 85 de modele și 332 de rezultate, fiecare legat de sursa sa; există o prezentare mai amplă în introducerea noastră VLA.
Pot să ajustez fin SmolVLA pe un RTX 4090?▾
Da. SmolVLA are 450 M parametri, iar AY-Robots îl rulează pe nivelul RTX 4090 / 24 GB. Exemplul lerobot folosește --batch_size=64, ceea ce este un exemplu, nu o garanție pentru placa dumneavoastră; documentația recomandă să începeți cu o valoare mică și să o creșteți atâta timp cât timpii de încărcare rămân scurți. Așteptați-vă la un timp mai lung decât cele aproximativ 4 ore citate în documentație pentru 20000 de pași pe un A100.
Este TinyVLA disponibil în lerobot sau pe AY-Robots?▾
Nu la ambele. TinyVLA există doar în depozitul său de cercetare, ultima modificare 11 martie 2025, iar formatul său este HDF5 în stil ACT, nu LeRobot. AY-Robots antrenează GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA și ACT. Dacă doriți TinyVLA, trebuie să-l construiți singur și va trebui să remediați mai întâi calea de configurare DeepSpeed în scripts/train.sh.
Este un model de 450 M cu adevărat competitiv cu unul de 3 B?▾
Conform propriilor benchmark-uri ale autorilor, da: 87.3 față de 86.0 pe LIBERO versus un Pi0 preantrenat pentru robotică la 3.3 B, și 78.3 față de 61.7 pe trei sarcini reale SO-100 unde aceeași lucrare etichetează Pi0 la 3.5 B. Limita este în aceeași lucrare: pentru o singură sarcină fără preantrenare robotică, SmolVLA scade la 40.0, sub 48.3 al ACT.
Câte episoade am nevoie înainte ca un VLA mic să facă ceva?▾
AY-Robots stabilește minimul SmolVLA la 30 de episoade și minimul ACT la 50. Documentația lerobot recomandă în jur de 50 și raportează că 25 nu au fost suficiente pentru aceeași sarcină. Structura contează la fel de mult ca și numărul: setul din lucrare a folosit 5 poziții de cub cu câte 10 episoade fiecare.
De ce numerele de latență publicate diferă atât de mult?▾
Măsoară lucruri diferite. TinyVLA raportează 14 ms per predicție de acțiune pe un A6000; AY-Robots listează SmolVLA la 245 ms și ACT la 20 ms per pas de acțiune. Unele cifre acoperă o singură trecere înainte, altele împart o trecere pe un bloc de 50 de acțiuni, și aproape niciuna nu include capturarea camerei sau scrierea către servomecanisme.
Rezolvă inferența în cloud problema GPU?▾
Parțial. AY-Robots provizionează automat un pod care servește politica în timp ce clientul local comunică cu acel endpoint, cu un watchdog de inactivitate, astfel încât se distruge singur în loc să factureze în tăcere. Nu poate elimina timpul de răspuns al internetului public, iar bucla de control este deja de 20 până la 485 ms per pas de acțiune. Bun pentru operațiuni lente de tip pick-and-place, nu pentru mișcări reactive rapide.
Sources
- TinyVLA: Spre modele de viziune-limbaj-acțiune rapide și eficiente din punct de vedere al datelor pentru manipularea robotică
- Depozitul oficial de cod TinyVLA (README, requirements.txt, scripts/train.sh)
- Pagina proiectului TinyVLA
- lesjie/Llava-Pythia-1.3B, ponderile backbone TinyVLA-H
- SmolVLA: Un model de viziune-limbaj-acțiune pentru robotică accesibilă și eficientă
- Documentația lerobot: ajustarea fină a SmolVLA
- lerobot: configuration_smolvla.py, setările implicite SmolVLA
- Fișa modelului lerobot/smolvla_base
- SmolVLA: Model eficient de viziune-limbaj-acțiune (blog Hugging Face)
- lerobot pe PyPI (0.6.1, necesită Python 3.12 sau mai nou)
- OpenVLA: Un model open-source de viziune-limbaj-acțiune
- Ajustarea fină a modelelor de viziune-limbaj-acțiune: optimizarea vitezei și succesului (OpenVLA-OFT)
- BitVLA: Modele de viziune-limbaj-acțiune de 1 bit pentru manipularea robotică
- X-VLA: Transformer cu prompt moale ca model scalabil de viziune-limbaj-acțiune pentru diverse corpuri
- Fișa modelului rail-berkeley/octo-small-1.5 (27 M parametri)
Sources
- TinyVLA: Towards Fast, Data-Efficient Vision-Language-Action Models for Robotic Manipulation
- TinyVLA official code repository (README, requirements.txt, scripts/train.sh)
- TinyVLA project page
- lesjie/Llava-Pythia-1.3B, the TinyVLA-H backbone weights
- SmolVLA: A Vision-Language-Action Model for Affordable and Efficient Robotics
- lerobot documentation: fine-tuning SmolVLA
- lerobot: configuration_smolvla.py, the SmolVLA defaults
- lerobot/smolvla_base model card
- SmolVLA: Efficient Vision-Language-Action Model (Hugging Face blog)
- lerobot on PyPI (0.6.1, requires Python 3.12 or newer)
- OpenVLA: An Open-Source Vision-Language-Action Model
- Fine-Tuning Vision-Language-Action Models: Optimizing Speed and Success (OpenVLA-OFT)
- BitVLA: 1-bit Vision-Language-Action Models for Robotics Manipulation
- X-VLA: Soft-Prompted Transformer as Scalable Cross-Embodiment Vision-Language-Action Model
- rail-berkeley/octo-small-1.5 model card (27 M parameters)
Ready for high-quality robotics data?
AY-Robots connects your robots to skilled operators worldwide.
Get Started