
TinyVLA i SmolVLA umieszczają działający VLA poniżej 1B parametrów. Rzeczywiste liczby z obu artykułów, domyślne ustawienia lerobot, zmierzona latencja i ile kosztuje uruchomienie na karcie 24 GB.
Prawie każdy model wizyjno-językowo-akcyjny o którym się pisze, zakłada kartę do centrum danych. OpenVLA ma 7 B parametrów. GR00T N1.7 i Pi0.5 mają około 3 B i wymagają A100 80 GB do dostrajania. Jeśli karta na Twoim biurku to 4090, ta klasa modeli jest poza zasięgiem.
Dwie prace naukowe dowodzą, że nie jest to potrzebne. TinyVLA (arXiv 2409.12514, przyjęte przez IEEE Robotics and Automation Letters w lutym 2025) buduje VLA z rdzenia od 400 M do 1.3 B plus głowicy akcji dyfuzyjnej. SmolVLA (arXiv 2506.01844, zgłoszone 2 czerwca 2025) dostarcza 450 M parametrów z otwartymi wagami, otwartymi danymi i skryptem, który działa na jednej karcie konsumenckiej. Oto, co oba zmierzyły i gdzie argument o modelach poniżej 1 B przestaje być aktualny.
Co musisz wiedzieć
- •TinyVLA jest dostępny w trzech rozmiarach: 422 M całkowitych z 101 M trenowalnych, 740 M ze 138 M, 1.3 B ze 143 M. Tylko dwa pierwsze mieszczą się poniżej 1 B.
- •Tabela IV mierzy 14 ms na predykcję akcji dla TinyVLA-1B na jednej A6000, w porównaniu do 292 ms dla OpenVLA-7B i 140 ms dla zmniejszonego OpenVLA-1B.
- •To głowica utrzymuje tę prędkość, nie rdzeń: zamiana głowicy dyfuzyjnej TinyVLA-H na głowicę ACT powoduje spadek pięciu zadań rzeczywistych robotów ze średniej 94.0 do jednocyfrowych wartości. Głowica MLP wszędzie osiąga 0.
- •SmolVLA ma 450 M, z czego około 100 M to ekspert akcji, wstępnie wytrenowany na 481 zbiorach danych społeczności LeRobot i 10.6 M klatek. Raportuje 87.3 na LIBERO w porównaniu do 86.0 dla wstępnie wytrenowanego w robotyce Pi0 o 3.3 B, oraz 78.3 na trzech rzeczywistych zadaniach SO-100 w porównaniu do 61.7 dla Pi0 o 3.5 B.
- •Wytrenowany do jednego zadania bez tego wstępnego treningu, SmolVLA spada do 40.0 w tych zadaniach, poniżej 48.3 ACT. Małe nie oznacza automatycznie łatwe.
- •TinyVLA nie ma integracji z LeRobot i wymaga stosu kół CUDA 11.7. SmolVLA jest w lerobot i kosztuje około 1 do 3 USD za uruchomienie na poziomie 24 GB tutaj.
Co faktycznie liczy się jako mały VLA
Liczba parametrów na karcie modelu nie jest jedną liczbą. Może oznaczać całkowitą liczbę wag, wag załadowanych podczas wnioskowania lub wag, które otrzymują gradienty podczas . TinyVLA raportuje obie wartości, a różnica jest duża: TinyVLA-H ma łącznie 1,3 B, ale 143 M jest trenowalnych, ponieważ wieża wizyjna i większość modelu językowego pozostają zamrożone, podczas gdy adaptery LoRA i głowica akcji się zmieniają. Artykuł podaje, że udział trenowalnych parametrów wynosi około 5 procent.
| Model | Parametry | Architektura bazowa | Głowica akcji | Źródło |
|---|---|---|---|---|
| TinyVLA-S | 422 M łącznie, 101 M trenowalnych | Llava-Pythia ~400 M | Diffusion (droid_diffusion U-Net) | arXiv 2409.12514 |
| TinyVLA-B | 740 M łącznie, 138 M trenowalnych | Llava-Pythia ~700 M | Diffusion | arXiv 2409.12514 |
| TinyVLA-H | 1,3 B łącznie, 143 M trenowalnych | Llava-Pythia ~1,3 B | Diffusion | arXiv 2409.12514 |
| SmolVLA | 450 M, ~100 M ekspert akcji | SmolVLM2-500M-Video-Instruct | Ekspert dopasowania przepływu | arXiv 2506.01844 |
| Octo-Small | 27 M | Skala ViT-S, koder tekstu T5-Base | Diffusion | octo-small-1.5 card |
| ACT | ~80 M | ResNet, bez modelu językowego | Bezpośrednia regresja fragmentów | AY-Robots catalog |
| OpenVLA | 7 B | Llama 2 7 B, kodery DINOv2 i SigLIP | Autoregresywne tokeny akcji | arXiv 2406.09246 |
Dwa wiersze są warte dyskusji. o rozmiarze około 80 M jest mniejszy niż wszystkie inne tutaj, ale nie posiada modelu językowego, więc nie jest VLA: uczy się jednego zadania i nie można mu zlecić innego. o rozmiarze 27 M jest warunkowany przez koder tekstu T5-Base, a nie przez architekturę bazową LLM. Dobre punkty odniesienia, ale żaden z nich nie zapewnia zgodności z instrukcjami, którą sugeruje etykieta.
TinyVLA-H, wariant prezentujący główne wyniki, ma 1,3 B i znajduje się powyżej tej linii. Lepszym pytaniem jest, czy model mieści się w 24 GB podczas treningu i osiąga pożądaną szybkość sterowania podczas wnioskowania. Pięć polityk, które możesz tutaj trenować, znajduje się na stronie polityk; TinyVLA ma wpis w arenie, jeśli chcesz porównać jego liczby z innymi.
TinyVLA: szybkość pochodzi z głowicy, nie z rdzenia
Oczywista interpretacja jest taka, że zmniejszyli model językowy, więc stał się szybszy. Ablacja w artykule mówi co innego. Zamiana rdzenia OpenVLA 7 B na rdzeń o rozmiarze około 1 B skróciła czas predykcji na akcję z 292 ms do 140 ms, co stanowi 2-krotny wzrost wydajności. TinyVLA-H, przy porównywalnej liczbie parametrów, działa w 14 ms na tej samej karcie. Pozostałe 10x to głowica akcji.
| Model | Predykcja na akcję | Zmierzono na |
|---|---|---|
| OpenVLA-7B | 292 ms | single A6000 |
| OpenVLA-1B, rdzeń zamieniony na ten z TinyVLA | 140 ms | single A6000 |
| TinyVLA-1B (TinyVLA-H) | 14 ms | single A6000 |
OpenVLA emituje akcje jako zdyskretyzowane tokeny poprzez głowicę modelu językowego, jeden na wymiar akcji, autoregresywnie. TinyVLA dołącza dekoder dyfuzyjny, który wytwarza cały fragment za jednym razem. Tabela V przedstawia architekturę TinyVLA-H i zamienia tylko głowicę, na tych samych pięciu zadaniach rzeczywistych robotów. Jest to najczystszy dowód w obu artykułach na poparcie argumentu, który dopasowanie przepływu polityki tworzą, oraz powód, dla którego Pi0 odeszło od dekodowania tokenów.
| Głowica na TinyVLA-H | UmieśćPiłkęTenisową | OdwróćKubek | UłóżKostki | ZamknijSzufladę | OtwórzPudełko |
|---|---|---|---|---|---|
| Dyfuzja (droid_diffusion) | 90.0 | 98.3 | 98.3 | 96.7 | 86.7 |
| Transformator segmentujący akcje | 13.3 | 8.3 | 8.3 | 13.3 | 23.3 |
| Perceptron wielowarstwowy | 0 | 0 | 0 | 0 | 0 |
Wartości 292 / 140 / 14 ms pochodzą z Tabeli IV, wszystkie uzyskane na jednej karcie A6000. Dotyczą one przewidywania pojedynczej akcji i nie obejmują przechwytywania obrazu z kamery, wstępnego przetwarzania ani zapisu szeregowego do serwomechanizmów. Publikowane opóźnienie należy traktować jako dolną granicę, nigdy jako częstotliwość sterowania. Nasze własne liczby mają to samo ograniczenie: zobacz opóźnienie wnioskowania.
Co osiągnął TinyVLA
| Benchmark | Protokół | TinyVLA-H | Punkty odniesienia |
|---|---|---|---|
| MetaWorld, 50 zadań, symulacja | Wielozadaniowy, 50 demonstracji, 3 ziarna | 77.6 / 21.5 / 11.4 / 15.8 według trudności, średnio 31.6 | Diffusion Policy średnio 10.5 |
| Prawdziwy Franka Panda, 5 zadań | 100 trajektorii na zadanie, 20 prób | 94.0 średnio | OpenVLA 68.3, Diffusion Policy 35.3 |
| Dwuręczny UR5, 3 zadania | Wielozadaniowy, 10 prób na zadanie | 76.7 / 36.7 / 30.0 | OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0 |
Wiersz bimanualny ma nudne wyjaśnienie, które podaje sama praca: OpenVLA jest wstępnie trenowany na Open X-Embodiment, który składa się wyłącznie z danych dla jednej ręki, więc przestrzeń akcji dla dwóch rąk jest poza rozkładem i uzyskuje zero punktów. Podstawowa polityka dyfuzji pokonuje TinyVLA-H w dwóch z tych trzech zadań. Tło w opracowaniu Open X-Embodiment.

Repozytorium TinyVLA, stan na sierpień 2026
Praca jest dobra. Kod to wersja badawcza. Repozytorium to github.com/liyaxuanliyaxuan/TinyVLA; jego README datuje wydanie kodu na 17 lutego 2025, a ostatni commit na 11 marca 2025. Dobre do reprodukcji pracy, problem, jeśli chciałeś utrzymywanej biblioteki.
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 przypina torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4 oraz stos CUDA do kół 11.x: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. Plik README wymaga Pythona 3.10; lerobot 0.6.1 wymaga 3.12 lub nowszego, więc te dwa nie mogą współdzielić środowiska. Najpierw upewnij się, że istnieje kompilacja torch 2.0.1 dla Twojej generacji GPU. Jeśli zamiast tego uruchomienie zakończy się z powodu braku VRAM, lista kontrolna braku pamięci jest szybsza niż zgadywanie.
TinyVLA również nie odczytuje zbiorów danych LeRobot. Jego format to HDF5 w stylu ACT: akcja, language_raw oraz grupa obserwacji z obrazami wielowidokowymi, joint_positions, qpos i qvel. Repozytorium dostarcza data_utils/rlds_to_h5py.py dla danych wejściowych RLDS, a każde zadanie jest ręcznie rejestrowane w aloha_scripts/constants.py z jego dataset_dir, episode_len i camera_names. Jeśli Twoje epizody pochodziły z lerobot lub klienta desktopowego, to Ty odpowiadasz za konwersję.
# 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 zakłada węzeł z ośmioma kartami. Ustaw na 1 i znacznie zmniejsz rozmiar partii poniżej 32. Żaden wariant z pojedynczym GPU nie jest dostarczany w górę strumienia, więc polecenie nie może być uruchomione dosłownie na 4090.
- --deepspeed scripts/zero2.json wskazuje na plik, który nie znajduje się w katalogu scripts najwyższego poziomu. Konfiguracje DeepSpeed są dostarczane w llava-pythia/scripts/zero2.json. Popraw ścieżkę przed pierwszym uruchomieniem.
- Plik README wymaga, aby nazwa katalogu wyjściowego zawierała llava_pythia, plus lora, jeśli LoRA jest włączona.
- Backbone jest osobnym pobraniem: lesjie/Llava-Pythia-400M, -700M lub -1.3B. Nie ma pojedynczego bazowego punktu kontrolnego, na który wskazuje się politykę w taki sposób, w jaki wskazuje się na lerobot/smolvla_base.
SmolVLA: model poniżej 1 B, który możesz uruchomić dziś po południu
SmolVLA przedstawia ten sam argument w ramach utrzymywanej biblioteki. Ma 450 M parametrów na backbone SmolVLM2-500M-Video-Instruct, a wydajność wynika z ustawień, które można odczytać z configuration_smolvla.py, a nie z twierdzenia o byciu małym.
| Ustawienie w configuration_smolvla.py | Domyślne | Co to daje |
|---|---|---|
| num_vlm_layers | 16 | Uruchamiane jest tylko pierwszych 16 warstw modelu językowego |
| expert_width_multiplier | 0.75 | Ukryty rozmiar eksperta akcji to 75 procent rozmiaru VLM |
| self_attn_every_n_layers | 2 | Samouważność przeplatana z uwagą krzyżową |
| chunk_size / n_action_steps | 50 / 50 | Jedno przejście generuje 50 akcji i wszystkie 50 jest wykonywanych |
| num_steps | 10 | Odszumianie dopasowania przepływu ustalone na 10 kroków |
| tokenizer_max_length | 48 | Instrukcja jest obcinana do 48 tokenów |
| freeze_vision_encoder / train_expert_only | True / True | Dostrajanie przesuwa eksperta, a nie wieżę wizyjną |
| optimizer_lr, warmup, decay | 1e-4, 1000 steps, to 2.5e-6 over 30000 | Nie jest to przepis z artykułu: jego wstępne szkolenie wykorzystywało 100-etapowe rozgrzewanie przez 200000 kroków |
Wstępne szkolenie wykorzystało 481 społecznościowych zbiorów danych LeRobot, 22,9 tys. epizodów i 10,6 mln klatek na 4 procesorach graficznych, 200000 kroków przy globalnej partii 256; artykuł szacuje cały projekt na około 30 tys. godzin GPU. Jedna liczba do obserwacji: blog startowy Hugging Face podaje 487 wyselekcjonowanych zbiorów danych, podczas gdy tabela w artykule mówi o 481. Używamy danych z artykułu i odnotowujemy rozbieżność.

| Benchmark | SmolVLA 0.45 B | SmolVLA 2.25 B | Pi0 | ACT |
|---|---|---|---|---|
| LIBERO średnia, wielozadaniowe | 87.3 | 88.75 | 86.0 (3.3 B, robotics-pretrained) | - |
| Meta-World średnia, wielozadaniowe | 57.3 | 68.24 | 47.9 (3.5 B, robotics-pretrained) | - |
| Prawdziwy SO-100, 3 zadania, szkolenie wielozadaniowe | 78.3 | - | 61.7 (3.5 B) | - |
| Prawdziwy SO-100, 3 zadania, jednorazowe, bez wstępnego szkolenia robotyki | 40.0 | - | - | 48.3 |
| SO-101 lego pick-place, jednorazowe, w dystrybucji | 90 | - | - | 70 |
| SO-101 lego pick-place, jednorazowe, poza dystrybucją | 50 | - | - | 40 |
LIBERO to symulacja i wszystko, co kompetentne, osiąga tam teraz wyniki w okolicach osiemdziesiątki. Wiersz dotyczący prawdziwego SO-100, gdzie model 450 M pokonuje model 3.5 B o 16,6 punktu, jest tym interesującym; wiersz pod nim stanowi przeciwwagę. Po usunięciu wstępnego szkolenia społecznościowego i szkolenia wielozadaniowego ten sam model spada do 40,0, poniżej ACT. Uzasadnione twierdzenie jest takie, że mały model nie jest automatycznie gorszy, a nie że jest lepszy.
Jeden przypadek pomaga: tabela Meta-World z artykułu SmolVLA zawiera własne opublikowane liczby TinyVLA jako punkt odniesienia, więc tym razem oba modele znajdują się w jednej tabeli, SmolVLA-0.45B na poziomie 57.3 w porównaniu do TinyVLA-H na poziomie 31.6. Raportuje również, że szkolenie SmolVLA jest około 40 procent szybsze niż Pi0 przy 6-krotnie mniejszym zużyciu pamięci. Wszystko to pochodzi od autorów SmolVLA; wpis na arenie łączy każdą wartość z jej źródłem.
Gdzie SmolVLA spędza swój czas
AY-Robots wymienia SmolVLA na 245 ms na krok akcji, a ACT na 20 ms w katalogu polityk. TinyVLA raportuje 14 ms na przewidywanie akcji. Te liczby nie są porównywalne, a traktowanie ich jako takie jest najczęstszym błędem w tym temacie: niektóre mierzą jedno przejście w przód, inne dzielą to przejście na fragment, gdy dzielenie akcji na fragmenty je amortyzuje.
- SmolVLA emituje 50 akcji na jedno przejście w przód i wykonuje wszystkie 50. Przy 30 klatkach na sekundę, które artykuł wykorzystuje na prawdziwych robotach, jedna inferencja obejmuje około 1.7 sekundy ruchu.
- Asynchroniczna inferencja oblicza następny fragment, podczas gdy bieżący jest nadal wykonywany: średni czas ukończenia zadania 9.7 s w porównaniu do 13.75 s synchronicznie, czyli około 30 procent szybciej, oraz 19 cykli podnoszenia i odkładania w stałym 60-sekundowym oknie w porównaniu do 9.
- Wskaźniki sukcesu były porównywalne, a nie lepsze: 78.3 synchronicznie w porównaniu do 73.3 asynchronicznie. Asynchroniczność zwiększa przepustowość, nie dokładność.
- Dzielenie na fragmenty ukrywa opóźnienia obliczeniowe, a nie opóźnienia sieciowe, i sprawia, że polityka jest mniej reaktywna, ponieważ jest zobowiązana do wykonania 50 akcji.
AY-Robots może automatycznie udostępnić pod GPU w chmurze, który obsługuje Twoją politykę, podczas gdy lokalny klient robota komunikuje się z tym punktem końcowym, a pod zawiera bezczynny watchdog, więc niszczy się sam, zamiast cicho naliczać opłaty. Czego nie robi, to nie eliminuje podróży w obie strony przez publiczny internet. Pętla sterowania dla pięciu polityk wynosi od 20 do 485 ms na krok akcji przed jakąkolwiek siecią, więc zdalna inferencja jest wykonalna dla powolnego podnoszenia i odkładania (pick-and-place), ale nie dla szybkiego ruchu reaktywnego.

Dostrajanie SmolVLA na jednej karcie konsumenckiej
Ścieżka manualna, na lerobot 0.6.1, aktualnej wersji PyPI z 23 sierpnia 2026. Wszystko poniżej pochodzi z dokumentacji Hugging Face lerobot SmolVLA, pobranej tego samego dnia; wersja z przewodnikiem jest łagodniejsza.
- 1Zainstaluj lerobot z dodatkiem smolvla
Zależności SmolVLA są opcjonalnym dodatkiem, nie są częścią podstawowej instalacji. Zainstalowanie bez nich, a następnie zastanawianie się, dlaczego typ polityki jest nieznany, to często stracone pół godziny.
bashgit clone https://github.com/huggingface/lerobot.git cd lerobot pip install -e ".[smolvla]" - 2Uzyskaj zbiór danych z wystarczającą liczbą epizodów
Dokumentacja zaleca około 50 epizodów i stwierdza, że to samo zadanie z 25 epizodami było niewystarczające. AY-Robots ustala minimum na 30. Nagraj własne, lub zacznij od katalogu zbiorów danych.
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 - 3Rozpocznij dostrajanie
Polecenie z przewodnika lerobot, bez modyfikacji. Dokumentacja szacuje 20000 kroków na około 4 godziny na jednej A100. Na karcie 24 GB spodziewaj się dłuższego czasu i zmierz go.
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 - 4Zmniejsz rozmiar partii, aż będzie pasować
batch_size=64 to udokumentowany przykład, a nie obietnica dotycząca Twojej karty. Dokumentacja zaleca zaczynanie od małych wartości i zwiększanie ich, dopóki czasy ładowania pozostają krótkie.
bashlerobot-train --help - 5Wdróż punkt kontrolny na ramieniu
Ta sama biblioteka, jedno polecenie. Flagi do chunkowania w czasie rzeczywistym są skomentowane w dokumentacji i to po nie należy sięgnąć na sprzęcie o niskiej mocy.
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
Niezależnie od wybranej ścieżki, otrzymasz punkt kontrolny wraz z konfiguracją, która go wygenerowała. Zachowaj rewizję zbioru danych, liczbę kroków i ziarno obok niego. lerobot domyślnie używa ziarna 1000; punkt wejścia do dostrajania GR00T w ogóle nie ujawnia ziarna, więc te uruchomienia nie są odtwarzalne bit po bicie. Mechanika w dokumentacji szkoleniowej.
Dwa sposoby na umieszczenie małego VLA na ramieniu
Jesteś właścicielem maszyny i trybów awarii. Dla SmolVLA jest to rozsądne: jeden dodatek pip, jedno polecenie trenowania, jedno polecenie wdrożenia. Dla TinyVLA jest to reprodukcja badawcza z zamrożonymi pinami, uszkodzoną ścieżką DeepSpeed i konwersją danych, którą piszesz samodzielnie.
- Zdobądź kartę 24 GB, nagraj 30 do 50 epizodów, zweryfikuj strumienie z kamer klatka po klatce.
- pip install -e ".[smolvla]", lerobot-train przeciwko lerobot/smolvla_base, a następnie udostępnij punkt kontrolny na maszynie, do której podłączone jest ramię.
- Dla TinyVLA: oddzielne środowisko conda, konwersja danych do HDF5, rejestracja zadania w constants.py, naprawa ścieżki zero2.json, zmniejszenie train.sh z ośmiu GPU do jednego.
- Brak rozliczeń godzinowych po opłaceniu karty.
- Inferencja znajduje się obok serwomechanizmów, jedyny sposób na uzyskanie szybkiej pętli sterowania.
- Możesz łatać kod polityki, a TinyVLA jest dostępny tylko w ten sposób.
- Karta 4090 wyklucza każdą politykę ~3 B, więc brak lokalnego porównania z GR00T N1.7 lub Pi0.5.
- Konfiguracja środowiska to prawdziwa praca. Same piny TinyVLA mogą kosztować dzień.
- Brak kolejki, brak ponownych prób, brak przechowywania punktów kontrolnych. Restart na kroku 14000 oznacza rozpoczęcie od nowa.
SmolVLA to jedna z pięciu dostępnych tutaj polityk. Wybierasz model i zbiór danych w formularzu, backend wynajmuje GPU o wymaganej pamięci VRAM, uruchamia trener i zapisuje punkty kontrolne do pamięci obiektowej. Krok po kroku: SmolVLA na SO-100, lub pełna macierz na stronie szkoleniowej.
| Co platforma wysyła dla SmolVLA | Wartość |
|---|---|
| rozmiar partii | 2 |
| szybkość uczenia | 1e-4 |
| maksymalna liczba kroków | 20000 |
| akumulacja gradientu | 8, i nie dociera do trenera |
| dodatkowe opcje w formularzu | seed, logFreq |
| poziom GPU | RTX 4090 or any 24 GB card |
| format zbioru danych | LeRobot v3.0 |
| minimalna liczba epizodów | 30 |
Po pierwsze, domyślny rozmiar partii wynosi tutaj 2, a nie 64 jak w przykładzie dokumentacji lerobot, a ustawienie akumulacji gradientu jest wysyłane, ale nie ma wpływu na SmolVLA, więc efektywna partia wynosi faktycznie 2. Zwiększaj ją celowo, zamiast zakładać, że domyślna wartość odpowiada wartościom upstream. Po drugie, TinyVLA w ogóle nie jest tutaj możliwy do trenowania.
Uruchomienie na poziomie 24 GB trwa od 2 do 5 godzin przy koszcie od 0.30 do 0.60 USD za godzinę, czyli około 1 do 3 USD. Na poziomie A100 polityka ~3 B trwa od 3 do 6 godzin przy koszcie od 1.20 do 2.00 USD za godzinę, czyli około 4 do 12 USD. Zobacz cennik, oraz te same operacje z CLI i serwera MCP.
Kiedy mały model jest złym wyborem
Obie prace są tutaj bardziej ostrożne niż ich streszczenia. Analiza błędów TinyVLA jest specyficzna: wariant 0.4 B trzykrotnie zawiódł, błędnie interpretując instrukcję, co autorzy przypisują ograniczonej zdolności rozumienia języka w mniejszym VLM, a ten tryb zniknął przy 1.3 B. SmolVLA pokazuje tę samą krzywą z drugiej strony: wersja 2.25 B identycznej architektury uzyskuje 88.75 punktów w LIBERO i 68.24 w Meta-World, w porównaniu do 87.3 i 57.3 dla modelu 0.45 B.
- Pasuje na kartę 24 GB, co obniża koszt eksperymentu z dziesiątek dolarów do kilku.
- Wystarczająco szybki, aby działać obok ramienia, więc brak skoku sieciowego w pętli sterowania.
- Dostraja się na danych, które może nagrać jedna osoba, dziesiątki epizodów zamiast tysięcy.
- Wagi, lista danych i kod SmolVLA są publiczne, więc zły wynik można debugować.
- Słabsze wykonywanie instrukcji: mniej parametrów językowych, mniejsza zdolność do rozróżniania podobnych wyrażeń referencyjnych.
- Mniejsza generalizacja przestrzenna i wizualna do konfiguracji, których nie nagrano.
- Bardziej wrażliwy na defekty w zbiorze danych, z mniejszą ilością wcześniejszego wstępnego trenowania, na które można się oprzeć.
- Praca wielozadaniowa i długoterminowa nadal faworyzuje większe modele, w tym własny wariant 2.25 B SmolVLA.
Porównanie, które warto przeprowadzić, to nie TinyVLA kontra SmolVLA. To SmolVLA kontra ACT na Twoim własnym zadaniu, a artykuł SmolVLA jest argumentem, dlaczego. Trenowany jednorazowo bez wstępnego trenowania robotyki, SmolVLA uzyskał średnio 40.0 punktów w trzech zadaniach SO-100, gdzie jednorazowy ACT osiągnął 48.3. To, co podnosi go do 78.3, to wstępne trenowanie społecznościowe plus trenowanie wielozadaniowe, a nie sama architektura. W zadaniu SO-101 z klockami lego, oba jednorazowe, SmolVLA wygrywa: 90 do 70 w dystrybucji. Następnie SmolVLA kontra Pi0.5 jeśli budżet na to pozwala.
Mniej jest wstępnego treningu, aby pokryć złe dane, więc czysta krzywa strat na wadliwym zbiorze danych daje politykę, która pewnie odtwarza wadę. Dokumentacja lerobot jest dosadna co do struktury: 50 epizodów w 5 pozycjach kostki, 10 na pozycję, zadziałało; 25 nie. Jeśli straty wyglądają dobrze, a ramię nie robi nic użytecznego, zacznij od spadające straty, polityka nic nie robi, polityka działa tylko w jednej konfiguracji lub zbieranie danych treningowych VLA, które są faktycznie użyteczne.
Pięć polityk, jedna tabela porównawcza
GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA i ACT z rzeczywistą liczbą parametrów, opóźnieniem wnioskowania na krok akcji, wymaganą klasą GPU i minimalną liczbą epizodów, zanim zaczną robić coś użytecznego.
Porównaj politykiTabela decyzyjna, na podstawie której możesz działać
| Twoja sytuacja | Zacznij od | Dlaczego |
|---|---|---|
| Jedno zadanie, dobre demonstracje, bez języka | ACT | ~80 M, 20 ms, karta 24 GB, brak modelu bazowego do pobrania |
| Kilka powiązanych zadań, po jednej instrukcji do każdego | SmolVLA | 450 M, w lerobot, minimum 30 epizodów, 1 do 3 USD za uruchomienie |
| Specyficzne odtworzenie wyniku TinyVLA | TinyVLA-B lub TinyVLA-H | Repozytorium to jedyna droga: izolowane środowisko, przekonwertowane dane |
| Wielozadaniowość, zróżnicowane instrukcje, budżet A100 | GR00T N1.7 lub Pi0.5 | ~3 B, 152 ms i 485 ms na krok, 4 do 12 USD za uruchomienie |
| Brak robota | Steruj prawdziwym ramieniem | Ramię na żywo oparte na kolejce nie wymaga rejestracji ani sprzętu |
Dla ostatniego wiersza, ramię na żywo przesyła obraz fizycznego SO-100, którym można sterować z przeglądarki bez konta, a trzy sposoby na rozpoczęcie obejmują resztę. SO-100 to ramię referencyjne, kosztujące około 110 do 150 EUR w częściach, z pełnym przewodnikiem konfiguracji.
Co następuje po modelach poniżej 1 B
Zmniejszenie liczby parametrów to jeden ze sposobów na obniżenie kosztów VLA i niekoniecznie ten zwycięski. OpenVLA-OFT (arXiv 2502.19645) zachowuje rdzeń 7 B i zmienia jedynie sposób dekodowania akcji, zgłaszając 26-krotny wzrost przepustowości generowania akcji i wzrost LIBERO z 76,5 do 97,1 procent. BitVLA (arXiv 2506.07530) sprawia, że każda waga 1-bitowego rdzenia BitNet b1.58 2B4T jest trójstanowa, zgłaszając 11,0x mniejsze zużycie pamięci i 4,4x niższe opóźnienie end-to-end, jednocześnie dorównując pełnej precyzji OpenVLA-OFT. X-VLA-0.9B (arXiv 2510.10274) plasuje się na linii 1 B z dopasowaniem przepływu.
Wspólny wątek: to dekoder akcji, a nie model językowy, jest źródłem opóźnień. Zapytaj, jak polityka emituje akcje, zanim zapytasz, ile ma parametrów. arena zawiera 85 modeli i 332 wyniki, każdy połączony ze swoim źródłem; szerszy przegląd znajduje się w naszym wprowadzeniu do VLA.
Czy mogę dostroić SmolVLA na karcie RTX 4090?▾
Tak. SmolVLA ma 450 M parametrów, a AY-Robots uruchamia go na poziomie RTX 4090 / 24 GB. Przykład lerobot używa --batch_size=64, co jest przykładem, a nie gwarancją dla Twojej karty; dokumentacja zaleca zaczynanie od małych wartości i zwiększanie ich, dopóki czasy ładowania pozostają krótkie. Spodziewaj się dłuższych czasów niż około 4 godziny, które dokumentacja podaje dla 20000 kroków na A100.
Czy TinyVLA jest dostępny w lerobot lub na AY-Robots?▾
Nie, na oba pytania. TinyVLA istnieje tylko w swoim repozytorium badawczym, ostatni commit 11 marca 2025, a jego format to HDF5 w stylu ACT, a nie LeRobot. AY-Robots trenuje GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA i ACT. Jeśli chcesz TinyVLA, musisz zbudować go samodzielnie i najpierw naprawić ścieżkę konfiguracji DeepSpeed w scripts/train.sh.
Czy model 450 M jest naprawdę konkurencyjny z modelem 3 B?▾
Według własnych benchmarków autorów, tak: 87.3 wobec 86.0 na LIBERO w porównaniu z Pi0 wstępnie wytrenowanym w robotyce o rozmiarze 3.3 B, oraz 78.3 wobec 61.7 w trzech rzeczywistych zadaniach SO-100, gdzie ta sama praca oznacza Pi0 jako 3.5 B. Ograniczenie jest w tej samej pracy: w zadaniach jednokrotnych bez wstępnego trenowania w robotyce, SmolVLA spada do 40.0, poniżej 48.3 ACT.
Ile epizodów potrzebuję, zanim mały VLA zacznie działać?▾
AY-Robots ustala minimum dla SmolVLA na 30 epizodów, a dla ACT na 50. Dokumentacja lerobot zaleca około 50 i podaje, że 25 było niewystarczające dla tego samego zadania. Struktura ma takie samo znaczenie jak liczba: zestaw z pracy używał 5 pozycji kostek po 10 epizodów każda.
Dlaczego opublikowane liczby opóźnień tak bardzo się różnią?▾
Mierzą różne rzeczy. TinyVLA podaje 14 ms na predykcję akcji na A6000; AY-Robots wymienia SmolVLA na 245 ms, a ACT na 20 ms na krok akcji. Niektóre dane obejmują jedno przejście w przód, niektóre dzielą przejście na 50-akcyjny fragment, a prawie żadne nie obejmują przechwytywania obrazu z kamery ani zapisu do serwomechanizmów.
Czy wnioskowanie w chmurze rozwiązuje problem z GPU?▾
Częściowo. AY-Robots automatycznie udostępnia pod, który obsługuje politykę, podczas gdy lokalny klient komunikuje się z tym punktem końcowym, z bezczynnym watchdogiem, dzięki czemu niszczy się sam, zamiast cicho naliczać opłaty. Nie może wyeliminować podróży w obie strony przez publiczny internet, a pętla sterowania wynosi już od 20 do 485 ms na krok akcji. Dobre dla wolnego podnoszenia i odkładania, nie dla szybkiego ruchu reaktywnego.
Sources
- TinyVLA: W kierunku szybkich, efektywnych pod względem danych modeli wizualno-językowo-akcyjnych do manipulacji robotycznej
- Oficjalne repozytorium kodu TinyVLA (README, requirements.txt, scripts/train.sh)
- Strona projektu TinyVLA
- lesjie/Llava-Pythia-1.3B, wagi rdzenia TinyVLA-H
- SmolVLA: Model wizualno-językowo-akcyjny dla przystępnej cenowo i wydajnej robotyki
- Dokumentacja lerobot: dostrajanie SmolVLA
- lerobot: configuration_smolvla.py, domyślne ustawienia SmolVLA
- Karta modelu lerobot/smolvla_base
- SmolVLA: Wydajny model wizualno-językowo-akcyjny (blog Hugging Face)
- lerobot na PyPI (0.6.1, wymaga Pythona 3.12 lub nowszego)
- OpenVLA: Model wizualno-językowo-akcyjny o otwartym kodzie źródłowym
- Dostrajanie modeli wizualno-językowo-akcyjnych: Optymalizacja szybkości i sukcesu (OpenVLA-OFT)
- BitVLA: 1-bitowe modele wizualno-językowo-akcyjne do manipulacji robotycznej
- X-VLA: Transformer z miękkim promptowaniem jako skalowalny model wizualno-językowo-akcyjny dla różnych wcieleń
- Karta modelu rail-berkeley/octo-small-1.5 (27 M parametrów)
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