
TinyVLA och SmolVLA placerar en fungerande VLA under 1 miljard parametrar. Verkliga siffror från båda artiklarna, lerobot-standardinställningarna, uppmätt latens och vad en körning kostar på ett 24 GB-kort.
Nästan varje syn-språk-handlingsmodell som det skrivs om förutsätter ett datacentrumkort. OpenVLA har 7 B parametrar. GR00T N1.7 och Pi0.5 är runt 3 B och kräver ett A100 80 GB för finjustering. Om kortet på ditt skrivbord är ett 4090, är den klassen av modeller utom räckhåll.
Två artiklar hävdar att du inte behöver det. TinyVLA (arXiv 2409.12514, accepterad av IEEE Robotics and Automation Letters i februari 2025) bygger en VLA från en 400 M till 1.3 B ryggrad plus ett diffusionshandlingshuvud. SmolVLA (arXiv 2506.01844, inskickad 2 juni 2025) levereras med 450 M parametrar med öppna vikter, öppen data och ett skript som körs på ett konsumentkort. Här är vad båda mätte, och var argumentet om under 1 B slutar hålla.
Vad du behöver veta
- •TinyVLA levereras i tre storlekar: 422 M totalt med 101 M träningsbara, 740 M med 138 M, 1.3 B med 143 M. Endast de två första ligger under 1 B.
- •Dess tabell IV mäter 14 ms per handlingsprediktion för TinyVLA-1B på ett A6000, jämfört med 292 ms för OpenVLA-7B och 140 ms för en förminskad OpenVLA-1B.
- •Huvudet håller den hastigheten, inte ryggraden: byt ut TinyVLA-H:s diffusionshuvud mot ett ACT-huvud och de fem verkliga robotuppgifterna faller från ett genomsnitt på 94.0 till ensiffriga tal. Ett MLP-huvud får 0 överallt.
- •SmolVLA är 450 M, varav ungefär 100 M är handlingsspecialisten, förtränad på 481 LeRobot-gemenskapsdatauppsättningar och 10.6 M bildrutor. Den rapporterar 87.3 på LIBERO jämfört med 86.0 för en robotik-förtränad Pi0 på 3.3 B, och 78.3 på tre verkliga SO-100-uppgifter jämfört med 61.7 för Pi0 på 3.5 B.
- •Tränad enskild uppgift utan den förträningen, sjunker SmolVLA till 40.0 på dessa uppgifter, under ACT:s 48.3. Litet är inte automatiskt enkelt.
- •TinyVLA har ingen LeRobot-integration och låser en CUDA 11.7 wheel stack. SmolVLA finns i lerobot och kostar ungefär 1 till 3 USD per körning på 24 GB-nivån här.
Vad som faktiskt räknas som en liten VLA
Antalet parametrar på ett modellkort är inte ett enda nummer. Det kan avse totala vikter, vikter som laddas vid inferens, eller vikter som tar emot gradienter under . TinyVLA rapporterar båda, och skillnaden är stor: TinyVLA-H är totalt 1,3 B men 143 M träningsbara, eftersom visionstornet och större delen av språkmodellen förblir frysta medan LoRA-adaptrar och actionhuvudet rör sig. Artikeln anger den träningsbara andelen till cirka 5 procent.
| Modell | Parametrar | Grundmodell | Handlingshuvud | Källa |
|---|---|---|---|---|
| TinyVLA-S | 422 M totalt, 101 M träningsbara | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 M totalt, 138 M träningsbara | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1,3 B totalt, 143 M träningsbara | Llava-Pythia ~1.3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 M, ~100 M handlingsspecialist | SmolVLM2-500M-Video-Instruct | Flow matching expert | arXiv 2506.01844 |
| Octo-Small | 27 M | ViT-S scale, T5-Base text encoder | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, ingen språkmodell | Direkt chunk-regression | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, DINOv2 and SigLIP encoders | Autoregressiva handlingstokens | arXiv 2406.09246 |
Två rader är värda att diskutera. på ungefär 80 M är mindre än allt annat här men har ingen språkmodell, så det är inte en VLA: den lär sig en uppgift och kan inte instrueras att göra en annan. på 27 M är villkorad via en T5-Base textkodare, inte en LLM-grundmodell. Bra baslinjer, men ingen av dem ger dig den instruktionsföljning som etiketten antyder.
TinyVLA-H, varianten som levererar de viktigaste resultaten, är 1,3 B och ligger över gränsen. Den bättre frågan är om en modell får plats i 24 GB under träning och uppnår din kontrollhastighet vid inferens. De fem policyer du kan träna här finns på policysidan; TinyVLA har en arena-post om du vill se dess siffror bredvid alla andras.
TinyVLA: hastigheten kommer från huvudet, inte ryggraden
Den uppenbara tolkningen är att de gjorde språkmodellen mindre, så den blev snabbare. Artikelns ablation säger något annat. Att byta ut OpenVLA:s 7 B ryggrad mot en på ungefär 1 B minskade förutsägelsen per åtgärd från 292 ms till 140 ms, en 2x förbättring. TinyVLA-H, med ett jämförbart antal parametrar, körs på 14 ms på samma kort. Den andra 10x är åtgärdshuvudet.
| Modell | Förutsägelse per åtgärd | Mätt på |
|---|---|---|
| OpenVLA-7B | 292 ms | enkel A6000 |
| OpenVLA-1B, ryggrad utbytt mot TinyVLA:s | 140 ms | enkel A6000 |
| TinyVLA-1B (TinyVLA-H) | 14 ms | enkel A6000 |
OpenVLA avger åtgärder som diskretiserade tokens genom språkmodellhuvudet, en per åtgärdsdimension, autoregressivt. TinyVLA kopplar en diffusionsavkodare som producerar hela klumpen i ett svep. Tabell V visar arkitekturen för TinyVLA-H och byter endast huvudet, på samma fem verkliga robotuppgifter. Det är det tydligaste beviset i någon av artiklarna för argumentet flow matching policyer framför, och anledningen till att Pi0 gick bort från tokenavkodning.
| Huvud på TinyVLA-H | Placera tennisboll | Vänd mugg | Stapla kuber | Stäng låda | Öppna låda |
|---|---|---|---|---|---|
| Diffusion (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| Action Chunking Transformer | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| Multi-layer perceptron | 0 | 0 | 0 | 0 | 0 |
Siffrorna 292 / 140 / 14 ms kommer från Tabell IV, alla körda på en A6000. De avser prediktion per handling och exkluderar kamerafångst, förbearbetning och seriell skrivning till servona. Betrakta publicerad latens som en nedre gräns, aldrig som kontrollhastigheten. Våra egna siffror har samma begränsning: se inferenslatens.
Vad TinyVLA uppnådde
| Benchmark | Protokoll | TinyVLA-H | Baslinjer |
|---|---|---|---|
| MetaWorld, 50 uppgifter, sim | Multiuppgift, 50 demonstrationer, 3 frön | 77.6 / 21.5 / 11.4 / 15.8 per svårighetsgrad, genomsnitt 31.6 | Diffusion Policy genomsnitt 10.5 |
| Verklig Franka Panda, 5 uppgifter | 100 trajektorier per uppgift, 20 försök | 94.0 i genomsnitt | OpenVLA 68.3, Diffusion Policy 35.3 |
| Bimanual UR5, 3 uppgifter | Multiuppgift, 10 försök per uppgift | 76.7 / 36.7 / 30.0 | OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0 |
Den bimanuala raden har en tråkig förklaring som artikeln själv ger: OpenVLA är förtränad på Open X-Embodiment, som helt består av data från enarmade robotar, så ett tvåarmat aktionsutrymme är utanför distributionen och får noll poäng. Baslinjen för diffusionspolicy slår TinyVLA-H på två av dessa tre uppgifter. Bakgrund i sammanfattningen av Open X-Embodiment.

TinyVLA-repot, per augusti 2026
Artikeln är bra. Koden är en forskningsrelease. Repot är github.com/liyaxuanliyaxuan/TinyVLA; dess README daterar kodreleasen till 17 februari 2025 och den senaste committen är 11 mars 2025. Bra för att reproducera en artikel, ett problem om du ville ha ett underhållet bibliotek.
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 låser torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4, och CUDA-stacken till 11.x-hjulen: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. README-filen kräver Python 3.10; lerobot 0.6.1 kräver 3.12 eller nyare, så de två kan inte dela en miljö. Bekräfta först att en torch 2.0.1-byggnad finns för din GPU-generation. Om en körning istället dör på VRAM, är checklistan för minnesbrist snabbare än att gissa.
TinyVLA läser inte heller LeRobot-dataset. Dess format är ACT-stil HDF5: action, language_raw, och en observationsgrupp med flervybilder, joint_positions, qpos och qvel. Arkivet levereras med data_utils/rlds_to_h5py.py för RLDS-input, och varje uppgift registreras manuellt i aloha_scripts/constants.py med dess dataset_dir, episode_len och camera_names. Om dina episoder kom från lerobot eller skrivbordsklienten, äger du konverteringen.
# 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 antar en nod med åtta kort. Ställ in den på 1 och sänk batchstorleken långt under 32. Ingen variant för enstaka GPU levereras uppströms, så kommandot kan inte köras ordagrant på en 4090.
- --deepspeed scripts/zero2.json pekar på en fil som inte finns i den översta scripts-katalogen. DeepSpeed-konfigurationerna finns på llava-pythia/scripts/zero2.json. Korrigera sökvägen före din första körning.
- README kräver att namnet på utdatakatalogen innehåller llava_pythia, plus lora om LoRA är aktiverat.
- Ryggraden är en separat nedladdning: lesjie/Llava-Pythia-400M, -700M eller -1.3B. Det finns ingen enskild bas-checkpoint som du pekar en policy mot på samma sätt som du pekar mot lerobot/smolvla_base.
SmolVLA: modellen under 1 miljard parametrar som du kan köra i eftermiddag
SmolVLA framför samma argument inom ett underhållet bibliotek. Den har 450 miljoner parametrar på en SmolVLM2-500M-Video-Instruct-ryggrad, och effektiviteten kommer från inställningar som du kan läsa ut ur configuration_smolvla.py snarare än från ett påstående om att vara liten.
| Inställning i configuration_smolvla.py | Standard | Vad den ger |
|---|---|---|
| num_vlm_layers | 16 | Endast de första 16 språkmodelllagren körs |
| expert_width_multiplier | 0.75 | Åtgärdsexpertens dolda storlek är 75 procent av VLM:s |
| self_attn_every_n_layers | 2 | Självuppmärksamhet varvas med korsuppmärksamhet |
| chunk_size / n_action_steps | 50 / 50 | En passning genererar 50 åtgärder och alla 50 utförs |
| num_steps | 10 | Flödesmatchande brusreducering fixerad vid 10 steg |
| tokenizer_max_length | 48 | Instruktionen trunkeras till 48 tokens |
| freeze_vision_encoder / train_expert_only | True / True | Finjustering flyttar experten, inte visionstornet |
| optimizer_lr, warmup, decay | 1e-4, 1000 steg, till 2.5e-6 över 30000 | Inte pappersreceptet: dess förträning använde en 100-stegs uppvärmning över 200000 steg |
Förträningen använde 481 LeRobot-community-datauppsättningar, 22.9 K episoder och 10.6 M ramar på 4 GPU:er, 200000 steg med en global batchstorlek på 256; artikeln uppskattar hela projektet till cirka 30 K GPU-timmar. En siffra att notera: Hugging Face lanseringsblogg anger 487 kurerade datauppsättningar där artikelns tabell anger 481. Vi använder artikelns siffra och noterar avvikelsen.
| Prestandamått | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| LIBERO genomsnitt, multi-task | 87.3 | 88.75 | 86.0 (3.3 B, robotics-pretrained) | - |
| Meta-World genomsnitt, multi-task | 57.3 | 68.24 | 47.9 (3.5 B, robotics-pretrained) | - |
| Verklig SO-100, 3 uppgifter, multi-task träning | 78.3 | - | 61.7 (3.5 B) | - |
| Verklig SO-100, 3 uppgifter, single-task, ingen robotik-förträning | 40.0 | - | - | 48.3 |
| SO-101 lego plocka-placera, single-task, inom distribution | 90 | - | - | 70 |
| SO-101 lego plocka-placera, single-task, utanför distribution | 50 | - | - | 40 |
LIBERO är simulering och allt kompetent får nu poäng på åttiotalet där. Raden för verklig SO-100, där en 450 M modell slår en 3.5 B modell med 16.6 poäng, är den intressanta; raden under den är motvikten. Tar man bort community-förträningen och multi-task-träningen sjunker samma modell till 40.0, under ACT. Det försvarbara påståendet är att en liten modell inte automatiskt är sämre, inte att den är bättre.
En slump hjälper: SmolVLA-artikelns Meta-World-tabell innehåller TinyVLAs egna publicerade siffror som baslinje, så för en gångs skull finns båda modellerna i en tabell, SmolVLA-0.45B på 57.3 mot TinyVLA-H på 31.6. Den rapporterar också att SmolVLA-träningen är cirka 40 procent snabbare än Pi0 med 6 gånger mindre minne. Allt detta kommer från SmolVLA-författarna; arena-posten länkar varje värde till dess källa.
Var SmolVLA tillbringar sin tid
AY-Robots listar SmolVLA till 245 ms per åtgärdssteg och ACT till 20 ms i policykatalogen. TinyVLA rapporterar 14 ms per åtgärdsförutsägelse. Dessa siffror är inte jämförbara, och att behandla dem som om de vore det är det vanligaste misstaget i detta ämne: vissa mäter en framåtkörning, andra delar upp den körningen över en chunk när åtgärdschunking amorterar den.
- SmolVLA genererar 50 åtgärder per framåtkörning och utför alla 50. Vid de 30 fps som artikeln använder på riktiga robotar täcker en inferens cirka 1.7 sekunders rörelse.
- Asynkron inferens beräknar nästa chunk medan den nuvarande fortfarande utförs: 9.7 s genomsnittlig uppgiftskomplettering mot 13.75 s synkron, ungefär 30 procent snabbare, och 19 plock-och-placera-cykler i ett fast 60-sekundersfönster mot 9.
- Framgångsfrekvenserna var jämförbara snarare än bättre, 78.3 synkron mot 73.3 asynkron. Asynkronitet köper genomströmning, inte noggrannhet.
- Chunking döljer beräkningslatens, inte nätverkslatens, och det gör policyn mindre reaktiv eftersom den är bunden till 50 åtgärder.
AY-Robots kan automatiskt provisionera en moln-GPU-pod som tillhandahåller din policy medan den lokala robotklienten kommunicerar med den slutpunkten, och poden har en inaktiv watchdog så att den förstör sig själv istället för att fakturera tyst. Vad den inte gör är att eliminera rundresan över det publika internet. Kontrollslingan över de fem policyerna här är 20 till 485 ms per åtgärdssteg innan något nätverk överhuvudtaget, så fjärrinferens är genomförbart för långsam plock-och-placering, inte för snabb reaktiv rörelse.

Finjustering av SmolVLA på ett konsumentgrafikkort
Den manuella vägen, på lerobot 0.6.1, den nuvarande PyPI-releasen per den 23 augusti 2026. Allt nedan kommer från Hugging Face lerobot SmolVLA-dokumentationen, hämtad samma dag; den guidade versionen är skonsammare.
- 1Installera lerobot med smolvla-tillägget
SmolVLA-beroendena är ett valfritt tillägg, inte en del av basinstallationen. Att installera utan det och sedan undra varför policytypen är okänd är en vanlig halvtimme som går förlorad.
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2Skaffa en datamängd med tillräckligt många episoder
Dokumentationen rekommenderar cirka 50 episoder och anger att samma uppgift med 25 inte var tillräckligt. AY-Robots sätter minimigränsen till 30. Spela in dina egna, eller börja från datamängdskatalogen.
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 - 3Starta finjusteringen
Kommandot från lerobot-guiden, oförändrat. Dokumentationen anger 20000 steg till ungefär 4 timmar på ett A100. På ett 24 GB-kort, förvänta dig längre tid och mät det.
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 - 4Minska batchstorleken tills den passar
batch_size=64 är ett dokumenterat exempel, inte ett löfte om ditt kort. Dokumentationen rekommenderar att börja smått och öka medan laddningstiderna förblir korta.
bashlerobot-train --help - 5Rulla ut checkpointen på armen
Samma bibliotek, ett kommando. Flaggorna för realtidschunking är kommenterade i dokumentationen och är de man ska använda på hårdvara med låg effekt.
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
Oavsett vilken väg du tar, slutar du med en kontrollpunkt plus konfigurationen som producerade den. Behåll datamängdsrevisionen, stegräkningen och seedet bredvid den. lerobot använder seed 1000 som standard; GR00T:s finjusteringsingång exponerar inget seed alls, så dessa körningar är inte bit-för-bit reproducerbara. Mekaniken finns i träningsdokumentationen.
Två sätt att få en liten VLA på en arm
Du äger maskinen och felmoderna. För SmolVLA är det rimligt: ett pip-tillägg, ett träningskommando, ett rollout-kommando. För TinyVLA är det en forskningsreproduktion med låsta pins, en trasig DeepSpeed-sökväg och en datakonvertering du skriver själv.
- Skaffa ett 24 GB-kort, spela in 30 till 50 episoder, verifiera kameraströmmen bildruta för bildruta.
- pip install -e ".[smolvla]", lerobot-train mot lerobot/smolvla_base, och serva sedan checkpointen på maskinen som armen är ansluten till.
- För TinyVLA: separat conda-miljö, konvertera data till HDF5, registrera uppgiften i constants.py, fixa zero2.json-sökvägen, minska train.sh från åtta GPU:er till en.
- Ingen timdebitering när kortet är betalt.
- Inferens sitter bredvid servona, det enda sättet att få en snabb kontrollslinga.
- Du kan patcha policykoden, och TinyVLA är endast tillgänglig på detta sätt.
- Ett 4090 utesluter varje ~3 B policy, så ingen lokal jämförelse mot GR00T N1.7 eller Pi0.5.
- Miljöuppsättning är det verkliga arbetet. TinyVLA:s pins ensamma kan kosta en dag.
- Ingen kö, ingen omprövning, ingen checkpoint-lagring. En omstart vid steg 14000 innebär att börja om.
SmolVLA är en av de fem policyerna här. Du väljer modell och datamängd i ett formulär, backend hyr en GPU baserat på nödvändig VRAM, kör tränaren och skriver kontrollpunkter till objektlagring. Steg för steg: SmolVLA på SO-100, eller hela matrisen på träningssidan.
| Vad plattformen skickar för SmolVLA | Värde |
|---|---|
| batchstorlek | 2 |
| inlärningshastighet | 1e-4 |
| max antal steg | 20000 |
| gradientackumulering | 8, and it does not reach the trainer |
| extra inställningar i formuläret | seed, logFreq |
| GPU-nivå | RTX 4090 or any 24 GB card |
| datamängdsformat | LeRobot v3.0 |
| minsta antal episoder | 30 |
För det första är standardbatchstorleken här 2, inte 64 som i lerobot-dokumentationsexemplet, och inställningen för gradientackumulering skickas men har ingen effekt för SmolVLA, så den effektiva batchen är verkligen 2. Öka den medvetet snarare än att anta att standardvärdet matchar uppströms. För det andra är TinyVLA inte träningsbar här överhuvudtaget.
En körning på 24 GB-nivån tar 2 till 5 timmar till en kostnad av 0.30 till 0.60 USD per timme, ungefär 1 till 3 USD. På A100-nivån tar en ~3 B policy 3 till 6 timmar till en kostnad av 1.20 till 2.00 USD per timme, ungefär 4 till 12 USD. Se prissättning, och samma operationer från CLI:n och MCP-servern.
När en liten modell är fel val
Båda artiklarna är mer noggranna här än vad sammanfattningarna är. TinyVLAs felanalys är specifik: 0,4 B-varianten misslyckades tre gånger genom att feltolka instruktionen, vilket författarna tillskriver begränsad språkförståelse i den mindre VLM:en, och det läget försvann vid 1,3 B. SmolVLA visar samma kurva från andra änden: 2,25 B-versionen av den identiska arkitekturen får 88,75 på LIBERO och 68,24 på Meta-World jämfört med 87,3 och 57,3 för 0,45 B-modellen.
- Passar ett 24 GB-kort, vilket sänker kostnaden för ett experiment från tiotals dollar till ett par.
- Tillräckligt snabb för att köras bredvid armen, så inget nätverkshopp i kontrollslingan.
- Finjusteras på data som en person kan spela in, tiotals episoder snarare än tusentals.
- SmolVLAs vikter, datalista och kod är offentliga, så ett dåligt resultat kan felsökas.
- Svagare instruktionsföljning: färre språkparametrar, mindre förmåga att skilja liknande refererande uttryck.
- Mindre rumslig och visuell generalisering till uppställningar du inte spelade in.
- Känsligare för datasetdefekter, med mindre förträning att falla tillbaka på.
- Fleruppgifts- och långsiktigt arbete gynnar fortfarande större modeller, inklusive SmolVLAs egen 2,25 B-variant.
Jämförelsen som är värd att göra är inte TinyVLA mot SmolVLA. Det är SmolVLA mot ACT på din egen uppgift, och SmolVLA-artikeln är argumentet för varför. Tränad för en enskild uppgift utan robotikförträning, fick SmolVLA i genomsnitt 40,0 över tre SO-100-uppgifter där enskild uppgift ACT uppnådde 48,3. Det som lyfter den till 78,3 är gemenskapsförträning plus fleruppgiftsträning, inte arkitekturen ensam. På SO-101 lego-uppgiften, båda enskilda uppgifter, vinner SmolVLA: 90 mot 70 i distribution. Sedan SmolVLA mot Pi0.5 om budgeten tillåter.
Det finns mindre förträning för att täcka dålig data, så en ren förlustkurva på en defekt datamängd ger dig en policy som reproducerar defekten med säkerhet. lerobot-dokumentationen är tydlig om strukturen: 50 episoder över 5 kubpositioner, 10 per position, fungerade; 25 gjorde det inte. Om förlusten ser bra ut och armen inte gör något användbart, börja med förlusten sjunker, policyn gör ingenting, policyn fungerar bara i en konfiguration eller att samla in VLA-träningsdata som faktiskt är användbar.
Fem policyer, en jämförelsetabell
GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA och ACT med verkliga parameterantal, inferenslatens per åtgärdssteg, den GPU-nivå som var och en behöver och det minsta antalet episoder innan den gör något användbart.
Jämför policyernaEn beslutstabell du kan agera utifrån
| Din situation | Börja med | Varför |
|---|---|---|
| En uppgift, bra demonstrationer, inget språk | ACT | ~80 M, 20 ms, 24 GB card, no base model to download |
| Några relaterade uppgifter, en instruktion vardera | SmolVLA | 450 M, in lerobot, 30 episode minimum, 1 to 3 USD per run |
| Återskapa specifikt TinyVLA-resultatet | TinyVLA-B or TinyVLA-H | The repo is the only route: isolated env, converted data |
| Flera uppgifter, varierande instruktioner, A100-budget | GR00T N1.7 or Pi0.5 | ~3 B, 152 ms and 485 ms per step, 4 to 12 USD per run |
| Ingen robot ännu | Kör en riktig arm | Den köbaserade live-armen kräver ingen registrering och ingen hårdvara |
För den sista raden, den levande armen strömmar en fysisk SO-100 som du kan styra från webbläsaren utan konto, och de tre sätten att komma igång täcker resten. SO-100 är referensarmen här, ungefär 110 till 150 EUR i delar, med en komplett installationsguide.
Vad kommer efter modellerna under 1 B
Att minska antalet parametrar är ett sätt att göra en VLA billig och inte uppenbart det vinnande. OpenVLA-OFT (arXiv 2502.19645) behåller 7 B-ryggraden och ändrar endast hur handlingar avkodas, vilket rapporterar en 26x ökning i genomströmning för handlingsgenerering och LIBERO som stiger från 76,5 till 97,1 procent. BitVLA (arXiv 2506.07530) gör varje vikt i en 1-bitars BitNet b1.58 2B4T-ryggrad ternär, vilket rapporterar 11,0x mindre minne och 4,4x lägre end-to-end-latens samtidigt som den matchar full-precision OpenVLA-OFT. X-VLA-0.9B (arXiv 2510.10274) ligger på 1 B-linjen med flödesmatchning.
Den gemensamma nämnaren: handlingsavkodaren, inte språkmodellen, är där latensen finns. Fråga hur en policy utför handlingar innan du frågar hur många parametrar den har. Arenan har 85 modeller och 332 resultat, var och en länkad till sin källa; det finns en bredare översikt i vår VLA-introduktion.
Kan jag finjustera SmolVLA på ett RTX 4090?▾
Ja. SmolVLA har 450 M parametrar och AY-Robots kör det på RTX 4090 / 24 GB-nivån. Lerobot-exemplet använder --batch_size=64, vilket är ett exempel snarare än en garanti för ditt kort; dokumentationen rekommenderar att börja smått och öka medan laddningstiderna förblir korta. Förvänta dig längre tid än de cirka 4 timmar som dokumentationen anger för 20000 steg på en A100.
Är TinyVLA tillgängligt i lerobot eller på AY-Robots?▾
Nej till båda. TinyVLA finns endast i sitt forskningsarkiv, senaste commit 11 mars 2025, och dess format är HDF5 i ACT-stil snarare än LeRobot. AY-Robots tränar GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA och ACT. Om du vill ha TinyVLA får du bygga det själv, och du måste först fixa DeepSpeed-konfigurationssökvägen i scripts/train.sh.
Är en 450 M-modell verkligen konkurrenskraftig med en 3 B-modell?▾
Enligt författarnas egna riktmärken, ja: 87.3 mot 86.0 på LIBERO jämfört med en robotik-förtränad Pi0 på 3.3 B, och 78.3 mot 61.7 på tre verkliga SO-100-uppgifter där samma artikel märker Pi0 på 3.5 B. Begränsningen finns i samma artikel: för enstaka uppgifter utan robotik-förträning faller SmolVLA till 40.0, under ACT:s 48.3.
Hur många episoder behöver jag innan en liten VLA gör något?▾
AY-Robots sätter SmolVLA-minimum till 30 episoder och ACT-minimum till 50. Lerobot-dokumentationen rekommenderar runt 50 och rapporterar att 25 inte var tillräckligt för samma uppgift. Struktur är lika viktigt som antal: artikelns uppsättning använde 5 kubpositioner med 10 episoder vardera.
Varför skiljer sig publicerade latenssiffror så mycket åt?▾
De mäter olika saker. TinyVLA rapporterar 14 ms per åtgärdsförutsägelse på en A6000; AY-Robots listar SmolVLA till 245 ms och ACT till 20 ms per åtgärdssteg. Vissa siffror täcker en framåtkörning, vissa delar upp en körning över en 50-åtgärdsbit, och nästan inga inkluderar kamerafångst eller skrivning till servona.
Löser molnslutledning GPU-problemet?▾
Delvis. AY-Robots auto-provisionerar en pod som tillhandahåller policyn medan den lokala klienten kommunicerar med den slutpunkten, med en inaktiv övervakare så att den förstör sig själv snarare än att fakturera tyst. Den kan inte eliminera rundresan över det publika internet, och kontrollslingan är redan 20 till 485 ms per åtgärdssteg. Bra för långsam plock-och-placering, inte för snabb reaktiv rörelse.
Sources
- TinyVLA: Mot snabba, dataeffektiva syn-, språk- och åtgärdsmodeller för robotmanipulation
- TinyVLA officiella kodrepository (README, requirements.txt, scripts/train.sh)
- TinyVLA projektsida
- lesjie/Llava-Pythia-1.3B, TinyVLA-H ryggradsvikterna
- SmolVLA: En syn-, språk- och åtgärdsmodell för prisvärd och effektiv robotik
- lerobot-dokumentation: finjustering av SmolVLA
- lerobot: configuration_smolvla.py, SmolVLA-standardinställningarna
- lerobot/smolvla_base modellkort
- SmolVLA: Effektiv syn-, språk- och åtgärdsmodell (Hugging Face blogg)
- lerobot på PyPI (0.6.1, kräver Python 3.12 eller nyare)
- OpenVLA: En öppen källkodsmodell för syn, språk och handling
- Finjustering av syn-, språk- och åtgärdsmodeller: Optimering av hastighet och framgång (OpenVLA-OFT)
- BitVLA: 1-bitars syn-, språk- och åtgärdsmodeller för robotmanipulation
- X-VLA: Mjukt-promptad transformator som skalbar tvär-kroppslig syn-, språk- och åtgärdsmodell
- rail-berkeley/octo-small-1.5 modellkort (27 M parametrar)
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