La tabella di confronto delle policy di AY-Robots con il conteggio dei parametri, i livelli di GPU e la latenza di inferenza per GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT
SmolVLATinyVLAVLA PiccoloGPU ConsumerLeRobot

Modelli VLA Piccoli: TinyVLA, SmolVLA e il Caso Sotto 1 Miliardo di Parametri

AY-Robots ResearchAugust 23, 202619 min di lettura

TinyVLA e SmolVLA rendono un VLA funzionante disponibile con meno di 1 miliardo di parametri. Numeri reali da entrambi i paper, i valori predefiniti di lerobot, la latenza misurata e il costo di un'esecuzione su una scheda da 24 GB.

Quasi ogni modello visione-linguaggio-azione di cui si scrive presuppone una scheda da data center. OpenVLA ha 7 miliardi di parametri. GR00T N1.7 e Pi0.5 sono circa 3 miliardi e richiedono una A100 da 80 GB per il fine-tuning. Se la scheda sulla tua scrivania è una 4090, quella classe di modelli è fuori portata.

Due articoli sostengono che non ne hai bisogno. TinyVLA (arXiv 2409.12514, accettato da IEEE Robotics and Automation Letters a febbraio 2025) costruisce un VLA da un backbone da 400 milioni a 1.3 miliardi più una testa d'azione a diffusione. SmolVLA (arXiv 2506.01844, sottomesso il 2 giugno 2025) distribuisce 450 milioni di parametri con pesi aperti, dati aperti e uno script che gira su una singola scheda consumer. Ecco cosa hanno misurato entrambi, e dove l'argomento del "sotto 1 miliardo" smette di reggere.

Cosa devi sapere

  • TinyVLA è disponibile in tre dimensioni: 422 milioni totali con 101 milioni addestrabili, 740 milioni con 138 milioni, 1.3 miliardi con 143 milioni. Solo i primi due sono sotto 1 miliardo.
  • La sua Tabella IV misura 14 ms per previsione di azione per TinyVLA-1B su una A6000, contro 292 ms per OpenVLA-7B e 140 ms per un OpenVLA-1B ridotto.
  • La testa mantiene quella velocità, non il backbone: scambiando la testa di diffusione di TinyVLA-H con una testa ACT, i cinque compiti reali del robot scendono da una media del 94.0 a cifre singole. Una testa MLP ottiene 0 ovunque.
  • SmolVLA è di 450 milioni, circa 100 milioni dei quali sono l'esperto d'azione, pre-addestrato su 481 dataset della community LeRobot e 10.6 milioni di frame. Riporta 87.3 su LIBERO contro 86.0 per un Pi0 pre-addestrato per la robotica a 3.3 miliardi, e 78.3 su tre compiti reali SO-100 contro 61.7 per Pi0 a 3.5 miliardi.
  • Addestrato su un singolo compito senza quel pre-addestramento, SmolVLA scende a 40.0 su quei compiti, al di sotto del 48.3 di ACT. Piccolo non significa automaticamente facile.
  • TinyVLA non ha integrazione con LeRobot e blocca uno stack di wheel CUDA 11.7. SmolVLA è in lerobot e costa circa 1 a 3 USD per esecuzione sul livello da 24 GB qui.

Cosa conta effettivamente come un VLA piccolo

Il conteggio dei parametri su una scheda modello non è un singolo numero. Può significare pesi totali, pesi caricati durante l'inferenza o pesi che ricevono gradienti durante . TinyVLA riporta entrambi, e il divario è ampio: TinyVLA-H è 1.3 B totale ma 143 M addestrabili, perché la torre di visione e la maggior parte del modello linguistico rimangono congelati mentre gli adattatori LoRA e la testa d'azione si muovono. L'articolo stima la quota addestrabili a circa il 5 percento.

ModelloParametriBackboneTesta d'azioneFonte
TinyVLA-S422 M totali, 101 M addestrabiliLlava-Pythia ~400 MDiffusion (droid_diffusion U-Net)arXiv 2409.12514
TinyVLA-B740 M totali, 138 M addestrabiliLlava-Pythia ~700 MDiffusionarXiv 2409.12514
TinyVLA-H1.3 B totali, 143 M addestrabiliLlava-Pythia ~1.3 BDiffusionarXiv 2409.12514
SmolVLA450 M, ~100 M esperto d'azioneSmolVLM2-500M-Video-InstructFlow matching expertarXiv 2506.01844
Octo-Small27 MScala ViT-S, codificatore di testo T5-BaseDiffusionocto-small-1.5 card
ACT~80 MResNet, nessun modello linguisticoRegressione diretta a blocchiAY-Robots catalog
OpenVLA7 BLlama 2 7 B, codificatori DINOv2 e SigLIPToken d'azione autoregressiviarXiv 2406.09246

Due righe meritano una discussione. a circa 80 M è più piccolo di tutto il resto qui ma non ha un modello linguistico, quindi non è un VLA: impara un compito e non gli si può dire di farne un altro. a 27 M è condizionato tramite un codificatore di testo T5-Base, non un backbone LLM. Buone baseline, nessuna delle due offre il rispetto delle istruzioni che l'etichetta implica.

La linea da 1 B è arbitraria

TinyVLA-H, la variante che presenta i risultati principali, è di 1.3 B e si posiziona al di sopra della linea. La domanda migliore è se un modello si adatta a 24 GB durante l'addestramento e raggiunge la tua frequenza di controllo durante l'inferenza. Le cinque policy che puoi addestrare qui si trovano sulla pagina delle policy; TinyVLA ha una voce nell'arena se vuoi i suoi numeri accanto a quelli di tutti gli altri.

TinyVLA: la velocità viene dalla testa, non dalla backbone

La lettura ovvia è che hanno reso il modello linguistico più piccolo, quindi è diventato più veloce. L'ablazione del paper dice il contrario. Sostituire la backbone da 7 B di OpenVLA con una da circa 1 B ha ridotto la previsione per azione da 292 ms a 140 ms, un guadagno di 2x. TinyVLA-H, con un numero di parametri comparabile, funziona a 14 ms sulla stessa scheda. L'altro 10x è la testa d'azione.

ModelloPrevisione per azioneMisurato su
OpenVLA-7B292 mssingle A6000
OpenVLA-1B, backbone swapped for TinyVLA's140 mssingle A6000
TinyVLA-1B (TinyVLA-H)14 mssingle A6000

OpenVLA emette azioni come token discretizzati attraverso la testa del modello linguistico, uno per dimensione d'azione, in modo autoregressivo. TinyVLA allega un decodificatore a diffusione che produce l'intero blocco in un'unica soluzione. La Tabella V mostra l'architettura di TinyVLA-H e scambia solo la testa, sugli stessi cinque compiti di robot reali. È la prova più chiara in entrambi i paper per l'argomento flow matching che le politiche creano, e la ragione per cui Pi0 si è allontanato dalla decodifica dei token.

Test su TinyVLA-HPosizionaPallaTennisCapovolgiTazzaImpilaCubiChiudiCassettoApriScatola
Diffusione (droid_diffusion)90.098.398.396.786.7
Trasformatore a Blocchi di Azione13.38.38.313.323.3
Percettrone multistrato00000
Cosa coprono i numeri di TinyVLA

Le cifre di 292 / 140 / 14 ms sono della Tabella IV, tutte su una singola A6000. Si riferiscono alla previsione per azione ed escludono l'acquisizione della telecamera, la pre-elaborazione e la scrittura seriale ai servi. Considerare la latenza pubblicata come un limite inferiore, mai come la frequenza di controllo. I nostri stessi numeri hanno lo stesso limite: vedi latenza di inferenza.

I punteggi di TinyVLA

BenchmarkProtocolloTinyVLA-HBaseline
MetaWorld, 50 compiti, simMulti-task, 50 demo, 3 seed77.6 / 21.5 / 11.4 / 15.8 per difficoltà, media 31.6Media Diffusion Policy 10.5
Franka Panda reale, 5 compiti100 traiettorie per compito, 20 proveMedia 94.0OpenVLA 68.3, Diffusion Policy 35.3
UR5 bimanuale, 3 compitiMulti-task, 10 prove per compito76.7 / 36.7 / 30.0OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0

La riga bimanuale ha una spiegazione noiosa che il paper stesso fornisce: OpenVLA è pre-addestrato su Open X-Embodiment, che consiste interamente in dati a braccio singolo, quindi uno spazio di azione a due braccia è fuori distribuzione e ottiene zero. La baseline della politica di diffusione batte TinyVLA-H su due di queste tre attività. Contesto in l'articolo su Open X-Embodiment.

La classifica dell'arena AY-Robots, una tabella ordinabile di 85 modelli VLA con 332 risultati di benchmark, ogni valore collegato al paper o alla model card da cui proviene
I numeri di benchmark tra modelli sono comparabili solo quando si può vedere da dove proviene ciascuno.

Il repository TinyVLA, ad agosto 2026

Il paper è buono. Il codice è un rilascio di ricerca. Il repository è github.com/liyaxuanliyaxuan/TinyVLA; il suo README data il rilascio del codice al 17 febbraio 2025 e l'ultimo commit all'11 marzo 2025. Ottimo per riprodurre un paper, un problema se si desiderasse una libreria mantenuta.

bash
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 .
La sequenza di installazione dal README di TinyVLA, verificata rispetto al repository il 2026-08-23.
I blocchi delle dipendenze sono la trappola che ti fa perdere una giornata

requirements.txt blocca torch==2.0.1, transformers==4.37.1, deepspeed==0.9.5, peft==0.4.0, diffusers==0.11.1, numpy==1.24.4, e lo stack CUDA alle wheel 11.x: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. Il README richiede Python 3.10; lerobot 0.6.1 richiede 3.12 o versioni più recenti, quindi i due non possono condividere un ambiente. Verifica prima che esista una build di torch 2.0.1 per la tua generazione di GPU. Se un'esecuzione si blocca per mancanza di VRAM, la checklist per l'esaurimento della memoria è più veloce che tirare a indovinare.

TinyVLA inoltre non legge dataset LeRobot. Il suo formato è HDF5 in stile ACT: action, language_raw, e un gruppo di osservazioni con immagini multi-vista, joint_positions, qpos e qvel. Il repository include data_utils/rlds_to_h5py.py per l'input RLDS, e ogni task è registrato manualmente in aloha_scripts/constants.py con il suo dataset_dir, episode_len e camera_names. Se i tuoi episodi provengono da lerobot o dal client desktop, la conversione è a tuo carico.

bash
# 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
Abbreviato da scripts/train.sh. Ogni flag e valore sopra è presente nel file fornito.
  • --num_gpus=8 presuppone un nodo a otto schede. Impostalo a 1 e riduci la dimensione del batch ben al di sotto di 32. Nessuna variante a singola GPU viene fornita upstream, quindi il comando non può essere eseguito alla lettera su una 4090.
  • --deepspeed scripts/zero2.json punta a un file che non si trova nella directory scripts di primo livello. Le configurazioni DeepSpeed si trovano in llava-pythia/scripts/zero2.json. Correggi il percorso prima della tua prima esecuzione.
  • Il README richiede che il nome della directory di output contenga llava_pythia, più lora se LoRA è abilitato.
  • Il backbone è un download separato: lesjie/Llava-Pythia-400M, -700M o -1.3B. Non esiste un singolo checkpoint di base a cui puntare una policy nel modo in cui si punta a lerobot/smolvla_base.

SmolVLA: il modello sub-1 B che puoi eseguire questo pomeriggio

SmolVLA presenta lo stesso argomento all'interno di una libreria mantenuta. Ha 450 milioni di parametri su un backbone SmolVLM2-500M-Video-Instruct, e l'efficienza deriva dalle impostazioni che puoi leggere da configuration_smolvla.py piuttosto che da un'affermazione sull'essere piccolo.

Impostazione in configuration_smolvla.pyPredefinitoCosa offre
num_vlm_layers16Vengono eseguiti solo i primi 16 strati del modello linguistico
expert_width_multiplier0.75La dimensione nascosta dell'esperto di azione è il 75 percento di quella del VLM
self_attn_every_n_layers2Auto-attenzione intervallata da attenzione incrociata
chunk_size / n_action_steps50 / 50Un passaggio emette 50 azioni e tutte le 50 vengono eseguite
num_steps10Denoising per corrispondenza di flusso fissato a 10 passaggi
tokenizer_max_length48L'istruzione è troncata a 48 token
freeze_vision_encoder / train_expert_onlyTrue / TrueIl fine-tuning sposta l'esperto, non la torre di visione
optimizer_lr, warmup, decay1e-4, 1000 steps, a 2.5e-6 su 30000Non la ricetta del paper: il suo pre-addestramento ha utilizzato un warmup di 100 passaggi su 200000 passaggi

Il pre-addestramento ha utilizzato 481 dataset LeRobot della community, 22,9 K episodi e 10,6 M frame su 4 GPU, 200000 passi con un batch globale di 256; il paper stima l'intero progetto a circa 30 K ore GPU. Un numero da tenere d'occhio: il blog di lancio di Hugging Face menziona 487 dataset curati, mentre la tabella del paper ne indica 481. Utilizziamo la cifra del paper e segnaliamo la discrepanza.

La pagina del modello SmolVLA su AY-Robots che mostra il conteggio dei parametri, il livello GPU da 24 GB, la latenza di inferenza per passo d'azione e il numero minimo di episodi
La pagina SmolVLA della piattaforma: 450 M parametri, 245 ms per passo d'azione, livello RTX 4090, minimo 30 episodi.
RiferimentoSmolVLA 0.45 BSmolVLA 2.25 BPi0ACT
Media LIBERO, multi-task87.388.7586.0 (3.3 B, pre-addestrato per la robotica)-
Media Meta-World, multi-task57.368.2447.9 (3.5 B, pre-addestrato per la robotica)-
SO-100 reale, 3 task, addestramento multi-task78.3-61.7 (3.5 B)-
SO-100 reale, 3 task, single-task, nessun pre-addestramento per la robotica40.0--48.3
SO-101 lego pick-place, single-task, in distribuzione90--70
SO-101 lego pick-place, single-task, fuori distribuzione50--40
Leggi l'intera tabella, non solo la riga del titolo

LIBERO è una simulazione e tutto ciò che è competente ottiene punteggi negli anni ottanta. La riga del SO-100 reale, dove un modello da 450 M batte uno da 3,5 B di 16,6 punti, è quella interessante; la riga sottostante è il contrappeso. Eliminando il pre-addestramento della community e l'addestramento multi-task, lo stesso modello scende a 40.0, sotto ACT. L'affermazione difendibile è che un modello piccolo non è automaticamente peggiore, non che sia migliore.

Un caso fortuito aiuta: la tabella Meta-World del paper SmolVLA riporta i numeri pubblicati di TinyVLA come baseline, quindi per una volta entrambi i modelli sono presenti in un'unica tabella, SmolVLA-0.45B a 57.3 contro TinyVLA-H a 31.6. Riporta anche che l'addestramento di SmolVLA è circa il 40 percento più veloce di Pi0 con 6 volte meno memoria. Tutto ciò proviene dagli autori di SmolVLA; l'voce dell'arena collega ogni valore alla sua fonte.

Dove SmolVLA impiega il suo tempo

AY-Robots elenca SmolVLA a 245 ms per passo d'azione e ACT a 20 ms nel catalogo delle policy. TinyVLA riporta 14 ms per previsione d'azione. Questi numeri non sono comparabili, e trattarli come se lo fossero è l'errore più comune in questo argomento: alcuni misurano un singolo passaggio in avanti, altri dividono quel passaggio su un chunk una volta che chunking delle azioni lo ammortizza.

  • SmolVLA emette 50 azioni per passaggio in avanti ed esegue tutte le 50. Ai 30 fps che il paper utilizza su robot reali, un'inferenza copre circa 1.7 secondi di movimento.
  • L'inferenza asincrona calcola il chunk successivo mentre quello corrente è ancora in esecuzione: 9.7 s di completamento medio del task contro 13.75 s sincroni, circa il 30 percento più veloce, e 19 cicli di pick-and-place in una finestra fissa di 60 secondi contro 9.
  • I tassi di successo erano comparabili piuttosto che migliori, 78.3 sincroni contro 73.3 asincroni. L'asincronia acquista throughput, non accuratezza.
  • Il chunking nasconde la latenza di calcolo, non la latenza di rete, e rende la policy meno reattiva perché è impegnata a 50 azioni.
L'inferenza remota non è gratuita e nessuna piattaforma risolve la fisica

AY-Robots può effettuare il provisioning automatico di un pod GPU cloud che serve la tua policy mentre il client robot locale comunica con quell'endpoint, e il pod include un watchdog di inattività in modo che si autodistrugga piuttosto che fatturare silenziosamente. Ciò che non fa è eliminare il round trip su internet pubblico. Il ciclo di controllo attraverso le cinque policy qui è di 20 a 485 ms per passo d'azione prima di qualsiasi rete, quindi l'inferenza remota è fattibile per operazioni lente di pick-and-place, non per movimenti reattivi veloci.

La tabella di confronto delle policy di AY-Robots che mostra GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT con il conteggio dei parametri, il tier GPU richiesto, la latenza di inferenza per passo d'azione e il numero minimo di episodi necessari per ciascuno.
SmolVLA a ~450 M e ACT a ~80 M sono i due che si adattano a una scheda da 24 GB. Gli altri tre richiedono una A100 o H100 da 80 GB.

Fine-tuning di SmolVLA su una scheda consumer

Il percorso manuale, su lerobot 0.6.1, la versione PyPI attuale al 23 agosto 2026. Tutto ciò che segue proviene dalla documentazione di Hugging Face lerobot SmolVLA, recuperata lo stesso giorno; la versione guidata è più delicata.

  1. 1
    Installa lerobot con l'extra smolvla

    Le dipendenze di SmolVLA sono un extra opzionale, non fanno parte dell'installazione base. Installare senza di esse e poi chiedersi perché il tipo di policy sia sconosciuto è una comune mezz'ora persa.

    bash
    git clone https://github.com/huggingface/lerobot.git
    cd lerobot
    pip install -e ".[smolvla]"
  2. 2
    Ottieni un dataset con abbastanza episodi

    La documentazione raccomanda circa 50 episodi e afferma che lo stesso compito con 25 non era sufficiente. AY-Robots imposta il minimo a 30. Registra i tuoi, o inizia dalla directory dei dataset.

    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. 3
    Avvia il fine-tuning

    Il comando dalla guida di lerobot, non modificato. La documentazione stima 20000 passi in circa 4 ore su una A100. Su una scheda da 24 GB, aspettati tempi più lunghi e misurali.

    bash
    cd 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
  4. 4
    Riduci la dimensione del batch finché non si adatta

    batch_size=64 è un esempio documentato, non una promessa riguardo alla tua scheda. La documentazione consiglia di iniziare con un valore piccolo e aumentarlo finché i tempi di caricamento rimangono brevi.

    bash
    lerobot-train --help
  5. 5
    Distribuisci il checkpoint sul braccio

    Stessa libreria, un solo comando. I flag di chunking in tempo reale sono commentati nella documentazione e sono quelli da utilizzare su hardware a bassa potenza.

    bash
    lerobot-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
Il checkpoint è il risultato finale

Qualunque percorso tu scelga, ti ritroverai con un checkpoint più la configurazione che lo ha prodotto. Conserva la revisione del dataset, il conteggio dei passi e il seed accanto ad esso. lerobot imposta il seed predefinito a 1000; il punto di ingresso del fine-tuning di GR00T non espone alcun seed, quindi quelle esecuzioni non sono riproducibili bit per bit. Dettagli in la documentazione di training.

Due modi per portare un piccolo VLA su un braccio

Possiedi la macchina e le modalità di fallimento. Per SmolVLA è ragionevole: un extra pip, un comando di training, un comando di rollout. Per TinyVLA è una riproduzione di ricerca con pin bloccati, un percorso DeepSpeed interrotto e una conversione dati che scrivi tu stesso.

  1. Procurati una scheda da 24 GB, registra da 30 a 50 episodi, verifica i flussi della telecamera fotogramma per fotogramma.
  2. pip install -e ".[smolvla]", lerobot-train contro lerobot/smolvla_base, quindi servi il checkpoint sulla macchina a cui è collegato il braccio.
  3. Per TinyVLA: ambiente conda separato, converti i dati in HDF5, registra il compito in constants.py, correggi il percorso zero2.json, riduci train.sh da otto GPU a una.
Vantaggi
  • Nessun addebito orario una volta pagata la scheda.
  • L'inferenza si trova accanto ai servi, l'unico modo per ottenere un ciclo di controllo veloce.
  • Puoi patchare il codice della policy, e TinyVLA è disponibile solo in questo modo.
Compromessi
  • Una 4090 esclude ogni policy da ~3 B, quindi nessuna comparazione locale con GR00T N1.7 o Pi0.5.
  • La configurazione dell'ambiente è il vero lavoro. I soli pin di TinyVLA possono costare un giorno.
  • Nessuna coda, nessun tentativo, nessun salvataggio del checkpoint. Un riavvio al passo 14000 significa ricominciare da capo.

Quando un modello piccolo è la scelta sbagliata

Entrambi gli articoli sono più cauti qui rispetto ai riassunti. L'analisi dei fallimenti di TinyVLA è specifica: la variante da 0,4 B ha fallito tre volte interpretando erroneamente l'istruzione, cosa che gli autori attribuiscono a una comprensione linguistica limitata nel VLM più piccolo, e quella modalità è scomparsa a 1,3 B. SmolVLA mostra la stessa curva dall'altra estremità: la versione da 2,25 B dell'architettura identica ottiene 88,75 su LIBERO e 68,24 su Meta-World contro 87,3 e 57,3 per il modello da 0,45 B.

Scegliere un VLA sotto 1 B
Dove vince
  • Si adatta a una scheda da 24 GB, il che riduce il costo di un esperimento da decine di dollari a un paio.
  • Abbastanza veloce da essere eseguito accanto al braccio, quindi nessun salto di rete nel ciclo di controllo.
  • Si ottimizza sui dati che una persona può registrare, decine di episodi anziché migliaia.
  • I pesi, l'elenco dei dati e il codice di SmolVLA sono pubblici, quindi un risultato negativo è debuggabile.
Dove perde
  • Seguito delle istruzioni più debole: meno parametri linguistici, minore capacità di separare espressioni di riferimento simili.
  • Minore generalizzazione spaziale e visiva a configurazioni non registrate.
  • Più sensibile ai difetti del dataset, con meno pre-addestramento su cui fare affidamento.
  • Il lavoro multi-task e a lungo termine favorisce ancora i modelli più grandi, inclusa la variante da 2,25 B di SmolVLA.

Il confronto che vale la pena fare non è TinyVLA contro SmolVLA. È SmolVLA contro ACT sul tuo compito, e l'articolo di SmolVLA è l'argomento del perché. Addestrato su un singolo compito senza pre-addestramento robotico, SmolVLA ha ottenuto una media di 40,0 su tre compiti SO-100 dove ACT su singolo compito ha gestito 48,3. Ciò che lo porta a 78,3 è il pre-addestramento della comunità più l'addestramento multi-task, non l'architettura da sola. Sul compito lego SO-101, entrambi su singolo compito, SmolVLA vince: 90 contro 70 in distribuzione. Poi SmolVLA contro Pi0.5 se il budget lo consente.

A queste dimensioni, il dataset decide il risultato

C'è meno pre-addestramento precedente per coprire i dati errati, quindi una curva di perdita pulita su un dataset difettoso ti dà una policy che riproduce il difetto con sicurezza. La documentazione di lerobot è schietta sulla struttura: 50 episodi su 5 posizioni del cubo, 10 per posizione, hanno funzionato; 25 no. Se la perdita sembra buona e il braccio non fa nulla di utile, inizia da la perdita diminuisce, la policy non fa nulla, la policy funziona solo in una configurazione o raccogliere dati di addestramento VLA effettivamente utilizzabili.

Cinque policy, una tabella comparativa

GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT con conteggi reali dei parametri, latenza di inferenza per passo d'azione, il livello di GPU richiesto da ciascuno e il numero minimo di episodi prima che faccia qualcosa di utile.

Compara le policy

Una tabella decisionale su cui puoi agire

La tua situazioneInizia conPerché
Un compito, buone dimostrazioni, nessun linguaggioACT~80 M, 20 ms, 24 GB card, no base model to download
Pochi compiti correlati, una istruzione ciascunoSmolVLA450 M, in lerobot, 30 episode minimum, 1 to 3 USD per run
Riprodurre specificamente il risultato di TinyVLATinyVLA-B or TinyVLA-HIl repository è l'unica strada: ambiente isolato, dati convertiti
Multi-task, istruzioni varie, budget A100GR00T N1.7 or Pi0.5~3 B, 152 ms and 485 ms per step, 4 to 12 USD per run
Nessun robot ancoraGuida un braccio realeIl braccio live basato su coda non richiede iscrizione né hardware

Per l'ultima riga, il braccio live trasmette un SO-100 fisico che puoi guidare dal browser senza un account, e i tre modi per iniziare copre il resto. Il SO-100 è il braccio di riferimento qui, circa 110-150 EUR in parti, con una guida completa all'installazione.

Cosa viene dopo i modelli sub-1 B

Ridurre il numero di parametri è un modo per rendere un VLA economico e non è ovviamente quello vincente. OpenVLA-OFT (arXiv 2502.19645) mantiene il backbone da 7 B e cambia solo il modo in cui le azioni vengono decodificate, riportando un aumento di 26x nel throughput di generazione delle azioni e LIBERO che sale dal 76.5 al 97.1 percento. BitVLA (arXiv 2506.07530) rende ternario ogni peso di un backbone BitNet b1.58 2B4T a 1 bit, riportando 11.0x meno memoria e 4.4x minore latenza end-to-end pur eguagliando OpenVLA-OFT a piena precisione. X-VLA-0.9B (arXiv 2510.10274) si posiziona sulla linea da 1 B con il flow matching.

Il filo conduttore: il decodificatore di azioni, non il modello linguistico, è dove risiede la latenza. Chiedi come una policy emette azioni prima di chiedere quanti parametri ha. L' arena ha 85 modelli e 332 risultati, ciascuno collegato alla sua fonte; c'è una panoramica più ampia nella nostra introduzione ai VLA.

Posso effettuare il fine-tuning di SmolVLA su una RTX 4090?

Sì. SmolVLA ha 450 M di parametri e AY-Robots lo esegue sul livello RTX 4090 / 24 GB. L'esempio lerobot utilizza --batch_size=64, che è un esempio piuttosto che una garanzia per la tua scheda; la documentazione consiglia di iniziare con valori piccoli e aumentare finché i tempi di caricamento rimangono brevi. Aspettati tempi più lunghi delle circa 4 ore citate nella documentazione per 20000 passi su una A100.

TinyVLA è disponibile in lerobot o su AY-Robots?

No a entrambi. TinyVLA esiste solo nel suo repository di ricerca, ultimo commit 11 March 2025, e il suo formato è HDF5 in stile ACT piuttosto che LeRobot. AY-Robots addestra GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT. Se vuoi TinyVLA devi costruirlo tu stesso, e dovrai prima correggere il percorso di configurazione di DeepSpeed in scripts/train.sh.

Un modello da 450 M è davvero competitivo con uno da 3 B?

Sui benchmark degli autori stessi, sì: 87.3 contro 86.0 su LIBERO rispetto a un Pi0 pre-addestrato per la robotica a 3.3 B, e 78.3 contro 61.7 su tre task reali SO-100 dove lo stesso articolo etichetta Pi0 a 3.5 B. Il limite è nello stesso articolo: in un singolo task senza pre-addestramento robotico, SmolVLA scende a 40.0, al di sotto del 48.3 di ACT.

Quanti episodi mi servono prima che un piccolo VLA faccia qualcosa?

AY-Robots imposta il minimo per SmolVLA a 30 episodi e il minimo per ACT a 50. La documentazione di lerobot raccomanda circa 50 e riporta che 25 non erano sufficienti per lo stesso task. La struttura conta tanto quanto il numero: il set dell'articolo ha utilizzato 5 cube positions con 10 episodi ciascuna.

Perché i numeri di latenza pubblicati sono così discordanti?

Misurano cose diverse. TinyVLA riporta 14 ms per previsione di azione su una A6000; AY-Robots elenca SmolVLA a 245 ms e ACT a 20 ms per passo di azione. Alcune cifre coprono un singolo passaggio forward, alcune dividono un passaggio su un blocco di 50 azioni, e quasi nessuna include l'acquisizione della telecamera o la scrittura ai servi.

L'inferenza cloud risolve il problema della GPU?

In parte. AY-Robots auto-provisiona un pod che serve la policy mentre il client locale comunica con quell'endpoint, con un watchdog di inattività in modo che si distrugga da solo piuttosto che fatturare silenziosamente. Non può eliminare il round trip su internet pubblico, e il ciclo di controllo è già di 20 a 485 ms per passo di azione. Va bene per pick-and-place lenti, non per movimenti reattivi veloci.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started