A tabela de comparação de políticas da AY-Robots com contagens de parâmetros, níveis de GPU e latência de inferência para GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT
SmolVLATinyVLAVLA PequenoGPU de ConsumidorLeRobot

Modelos VLA Pequenos: TinyVLA, SmolVLA e o Caso Sub-1B

AY-Robots ResearchAugust 23, 202619 min de leitura

TinyVLA e SmolVLA colocam um VLA funcional abaixo de 1 bilhão de parâmetros. Números reais de ambos os artigos, os padrões do LeRobot, latência medida e o custo de uma execução em uma placa de 24 GB.

Quase todo modelo de visão-linguagem-ação sobre o qual se escreve assume uma placa de datacenter. OpenVLA tem 7 B de parâmetros. GR00T N1.7 e Pi0.5 têm cerca de 3 B e exigem uma A100 de 80 GB para ajuste fino. Se a placa na sua mesa for uma 4090, essa classe de modelo está fora de alcance.

Dois artigos argumentam que não é necessário. TinyVLA (arXiv 2409.12514, aceito pela IEEE Robotics and Automation Letters em fevereiro de 2025) constrói um VLA a partir de um backbone de 400 M a 1.3 B mais uma cabeça de ação de difusão. SmolVLA (arXiv 2506.01844, submetido em 2 de junho de 2025) é fornecido com 450 M de parâmetros, pesos abertos, dados abertos e um script que roda em uma única placa de consumidor. Aqui está o que ambos mediram e onde o argumento de menos de 1 B deixa de ser válido.

O que você precisa saber

  • TinyVLA é fornecido em três tamanhos: 422 M no total com 101 M treináveis, 740 M com 138 M, 1.3 B com 143 M. Apenas os dois primeiros ficam abaixo de 1 B.
  • Sua Tabela IV mede 14 ms por previsão de ação para TinyVLA-1B em uma A6000, contra 292 ms para OpenVLA-7B e 140 ms para um OpenVLA-1B reduzido.
  • A cabeça mantém essa velocidade, não o backbone: troque a cabeça de difusão do TinyVLA-H por uma cabeça ACT e as cinco tarefas de robô real caem de uma média de 94.0 para um único dígito. Uma cabeça MLP pontua 0 em todos os lugares.
  • SmolVLA tem 450 M, aproximadamente 100 M dos quais são o especialista em ação, pré-treinado em 481 conjuntos de dados da comunidade LeRobot e 10.6 M de quadros. Ele relata 87.3 no LIBERO contra 86.0 para um Pi0 pré-treinado em robótica com 3.3 B, e 78.3 em três tarefas reais SO-100 contra 61.7 para Pi0 com 3.5 B.
  • Treinado em tarefa única sem esse pré-treinamento, SmolVLA cai para 40.0 nessas tarefas, abaixo dos 48.3 do ACT. Pequeno não significa automaticamente fácil.
  • TinyVLA não tem integração com LeRobot e fixa uma pilha de rodas CUDA 11.7. SmolVLA está no lerobot e custa aproximadamente 1 a 3 USD por execução no nível de 24 GB aqui.

O que realmente conta como um VLA pequeno

A contagem de parâmetros em uma ficha de modelo não é um número único. Pode significar pesos totais, pesos carregados na inferência ou pesos que recebem gradientes durante . TinyVLA relata ambos, e a diferença é grande: TinyVLA-H tem 1.3 B no total, mas 143 M são treináveis, porque a torre de visão e a maior parte do modelo de linguagem permanecem congeladas enquanto os adaptadores LoRA e o cabeçalho de ação se movem. O artigo indica que a parcela treinável é de cerca de 5 por cento.

ModeloParâmetrosBackboneCabeçalho de açãoFonte
TinyVLA-S422 M total, 101 M treináveisLlava-Pythia ~400 MDifusão (droid_diffusion U-Net)arXiv 2409.12514
TinyVLA-B740 M total, 138 M treináveisLlava-Pythia ~700 MDifusãoarXiv 2409.12514
TinyVLA-H1.3 B total, 143 M treináveisLlava-Pythia ~1.3 BDifusãoarXiv 2409.12514
SmolVLA450 M, ~100 M especialista em açãoSmolVLM2-500M-Video-InstructEspecialista em correspondência de fluxoarXiv 2506.01844
Octo-Small27 MEscala ViT-S, codificador de texto T5-BaseDifusãoocto-small-1.5 card
ACT~80 MResNet, sem modelo de linguagemRegressão direta de chunkAY-Robots catalog
OpenVLA7 BLlama 2 7 B, codificadores DINOv2 e SigLIPTokens de ação autorregressivosarXiv 2406.09246

Duas linhas merecem discussão. com aproximadamente 80 M é menor do que todos os outros aqui, mas não possui modelo de linguagem, portanto não é um VLA: ele aprende uma tarefa e não pode ser instruído a fazer outra. com 27 M é condicionado através de um codificador de texto T5-Base, não um backbone LLM. Boas referências, mas nenhum deles oferece a capacidade de seguir instruções que o rótulo implica.

A linha de 1 B é arbitrária

TinyVLA-H, a variante que apresenta os resultados principais, tem 1.3 B e está acima da linha. A melhor pergunta é se um modelo cabe em 24 GB durante o treinamento e atinge sua taxa de controle na inferência. As cinco políticas que você pode treinar aqui estão na página de políticas; TinyVLA tem uma entrada na arena se você quiser seus números ao lado dos de todos os outros.

TinyVLA: a velocidade vem da cabeça, não do backbone

A leitura óbvia é que eles tornaram o modelo de linguagem menor, então ele ficou mais rápido. A ablação do artigo diz o contrário. A troca do backbone de 7 B do OpenVLA por um de aproximadamente 1 B reduziu a previsão por ação de 292 ms para 140 ms, um ganho de 2x. O TinyVLA-H, com uma contagem de parâmetros comparável, executa em 14 ms na mesma placa. Os outros 10x são da cabeça de ação.

ModeloPrevisão por açãoMedido em
OpenVLA-7B292 mssingle A6000
OpenVLA-1B, backbone swapped for TinyVLA's140 mssingle A6000
TinyVLA-1B (TinyVLA-H)14 mssingle A6000

O OpenVLA emite ações como tokens discretizados através da cabeça do modelo de linguagem, um por dimensão de ação, de forma autorregressiva. O TinyVLA anexa um decodificador de difusão que produz o bloco inteiro de uma só vez. A Tabela V apresenta a arquitetura do TinyVLA-H e troca apenas a cabeça, nas mesmas cinco tarefas de robôs reais. É a evidência mais clara em ambos os artigos para o argumento que as políticas de correspondência de fluxo criam, e a razão pela qual Pi0 se afastou da decodificação de tokens.

Cabeça no TinyVLA-HColocarBolaDeTênisVirarCanecaEmpilharCubosFecharGavetaAbrirCaixa
Difusão (droid_diffusion)90.098.398.396.786.7
Transformador de Fragmentação de Ação13.38.38.313.323.3
Perceptron de múltiplas camadas00000
O que os números do TinyVLA abrangem

Os valores de 292 / 140 / 14 ms são da Tabela IV, todos em uma A6000. Eles são por previsão de ação e excluem a captura da câmera, o pré-processamento e a gravação serial para os servos. Trate a latência publicada como um limite inferior, nunca como a taxa de controle. Nossos próprios números carregam o mesmo limite: veja latência de inferência.

O que o TinyVLA pontuou

ReferênciaProtocoloTinyVLA-HLinhas de Base
MetaWorld, 50 tarefas, simulaçãoMultitarefa, 50 demonstrações, 3 sementes77.6 / 21.5 / 11.4 / 15.8 por dificuldade, média 31.6Média da Política de Difusão 10.5
Franka Panda real, 5 tarefas100 trajetórias por tarefa, 20 tentativasMédia de 94.0OpenVLA 68.3, Diffusion Policy 35.3
UR5 Bimanual, 3 tarefasMultitarefa, 10 tentativas por tarefa76.7 / 36.7 / 30.0OpenVLA 0 / 0 / 0, Diffusion Policy 40.3 / 31.3 / 43.0

A linha bimanual tem uma explicação entediante que o próprio artigo oferece: OpenVLA é pré-treinado em Open X-Embodiment, que consiste inteiramente em dados de braço único, então um espaço de ação de dois braços está fora da distribuição e pontua zero. A linha de base da política de difusão supera o TinyVLA-H em duas dessas três tarefas. Contexto em o artigo sobre Open X-Embodiment.

O placar da arena AY-Robots, uma tabela classificável de 85 modelos VLA com 332 resultados de benchmark, cada valor vinculado ao artigo ou cartão do modelo de onde veio
Os números de benchmark entre modelos são comparáveis apenas quando se pode ver a origem de cada um.

O repositório TinyVLA, em agosto de 2026

O artigo é bom. O código é um lançamento de pesquisa. O repositório é github.com/liyaxuanliyaxuan/TinyVLA; seu README data o lançamento do código em 17 de fevereiro de 2025 e o último commit em 11 de março de 2025. Ótimo para reproduzir um artigo, um problema se você quisesse uma biblioteca mantida.

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 .
A sequência de instalação do README do TinyVLA, verificada no repositório em 2026-08-23.
As fixações de dependência são a armadilha que consome um dia

requirements.txt fixa 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 a pilha CUDA para os wheels 11.x: nvidia-cuda-runtime-cu11==11.7.99, nvidia-cudnn-cu11==8.5.0.96, triton==2.0.0. O README pede Python 3.10; lerobot 0.6.1 requer 3.12 ou mais recente, então os dois não podem compartilhar um ambiente. Confirme primeiro se existe uma build do torch 2.0.1 para a sua geração de GPU. Se uma execução falhar por falta de VRAM, a lista de verificação de falta de memória é mais rápida do que adivinhar.

TinyVLA também não lê conjuntos de dados LeRobot. Seu formato é HDF5 estilo ACT: action, language_raw, e um grupo de observações com imagens multi-view, joint_positions, qpos e qvel. O repositório inclui data_utils/rlds_to_h5py.py para entrada RLDS, e cada tarefa é registrada manualmente em aloha_scripts/constants.py com seu dataset_dir, episode_len e camera_names. Se seus episódios vieram do lerobot ou do cliente de desktop, você é responsável pela conversão.

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
Abreviado de scripts/train.sh. Cada flag e valor acima está no arquivo fornecido.
  • --num_gpus=8 assume um nó de oito placas. Defina-o como 1 e reduza o tamanho do lote bem abaixo de 32. Nenhuma variante de GPU única é fornecida upstream, então o comando não pode ser executado literalmente em uma 4090.
  • --deepspeed scripts/zero2.json aponta para um arquivo que não está no diretório scripts de nível superior. As configurações do DeepSpeed são fornecidas em llava-pythia/scripts/zero2.json. Corrija o caminho antes da sua primeira execução.
  • O README exige que o nome do diretório de saída contenha llava_pythia, mais lora se o LoRA estiver ativado.
  • O backbone é um download separado: lesjie/Llava-Pythia-400M, -700M or -1.3B. Não há um único checkpoint base para o qual você aponta uma política da mesma forma que aponta para lerobot/smolvla_base.

SmolVLA: o modelo sub-1 B que você pode executar esta tarde

O SmolVLA apresenta o mesmo argumento dentro de uma biblioteca mantida. Ele possui 450 M parâmetros em um backbone SmolVLM2-500M-Video-Instruct, e a eficiência vem de configurações que você pode ler em configuration_smolvla.py, em vez de uma afirmação sobre ser pequeno.

Configuração em configuration_smolvla.pyPadrãoO que ela oferece
num_vlm_layers16Apenas as primeiras 16 camadas do modelo de linguagem são executadas
expert_width_multiplier0.75O tamanho oculto do especialista em ação é 75 por cento do VLM
self_attn_every_n_layers2Autoatenção intercalada com atenção cruzada
chunk_size / n_action_steps50 / 50Uma passagem emite 50 ações e todas as 50 são executadas
num_steps10Denoising por flow matching fixado em 10 passos
tokenizer_max_length48A instrução é truncada para 48 tokens
freeze_vision_encoder / train_expert_onlyTrue / TrueO fine-tuning move o especialista, não a torre de visão
optimizer_lr, warmup, decay1e-4, 1000 steps, to 2.5e-6 over 30000Não é a receita do artigo: seu pré-treinamento usou um warmup de 100 passos ao longo de 200000 passos

O pré-treinamento utilizou 481 conjuntos de dados da comunidade LeRobot, 22.9 K episódios e 10.6 M frames em 4 GPUs, 200000 passos com um batch global de 256; o artigo estima o projeto total em cerca de 30 K horas de GPU. Um número a observar: o blog de lançamento do Hugging Face menciona 487 conjuntos de dados curados, enquanto a tabela do artigo indica 481. Usamos o número do artigo e sinalizamos a divergência.

A página do modelo SmolVLA na AY-Robots mostrando a contagem de parâmetros, o nível de GPU de 24 GB, a latência de inferência por passo de ação e a contagem mínima de episódios
Página SmolVLA da plataforma: 450 M parâmetros, 245 ms por passo de ação, nível RTX 4090, mínimo de 30 episódios.
BenchmarkSmolVLA 0.45 BSmolVLA 2.25 BPi0ACT
Média LIBERO, multi-tarefa87.388.7586.0 (3.3 B, pré-treinado em robótica)-
Média Meta-World, multi-tarefa57.368.2447.9 (3.5 B, pré-treinado em robótica)-
SO-100 real, 3 tarefas, treinamento multi-tarefa78.3-61.7 (3.5 B)-
SO-100 real, 3 tarefas, tarefa única, sem pré-treinamento em robótica40.0--48.3
SO-101 lego pick-place, tarefa única, em distribuição90--70
SO-101 lego pick-place, tarefa única, fora de distribuição50--40
Leia a tabela completa, não apenas a linha do título

LIBERO é uma simulação e tudo o que é competente pontua na casa dos oitenta agora. A linha do SO-100 real, onde um modelo de 450 M supera um de 3.5 B por 16.6 pontos, é a interessante; a linha abaixo dela é o contrapeso. Removendo o pré-treinamento da comunidade e o treinamento multi-tarefa, o mesmo modelo cai para 40.0, abaixo do ACT. A afirmação defensável é que um modelo pequeno não é automaticamente pior, não que seja melhor.

Um acidente ajuda: a tabela Meta-World do artigo SmolVLA apresenta os próprios números publicados do TinyVLA como linha de base, então, pela primeira vez, ambos os modelos estão em uma única tabela, SmolVLA-0.45B em 57.3 contra TinyVLA-H em 31.6. Também relata que o treinamento do SmolVLA é cerca de 40 por cento mais rápido que o Pi0 com 6x menos memória. Tudo isso vem dos autores do SmolVLA; a entrada da arena vincula cada valor à sua fonte.

Onde o SmolVLA gasta seu tempo

A AY-Robots lista o SmolVLA em 245 ms por passo de ação e o ACT em 20 ms no catálogo de políticas. O TinyVLA relata 14 ms por previsão de ação. Esses números não são comparáveis, e tratá-los como se fossem é o erro mais comum neste tópico: alguns medem o tempo de uma passagem direta, outros dividem essa passagem por um bloco uma vez que o chunking de ações o amortiza.

  • O SmolVLA emite 50 ações por passagem direta e executa todas as 50. A 30 fps que o artigo usa em robôs reais, uma inferência cobre cerca de 1.7 segundos de movimento.
  • A inferência assíncrona calcula o próximo bloco enquanto o atual ainda está em execução: 9.7 s de conclusão média de tarefa contra 13.75 s síncronos, aproximadamente 30 por cento mais rápido, e 19 ciclos de pegar e colocar em uma janela fixa de 60 segundos contra 9.
  • As taxas de sucesso foram comparáveis em vez de melhores, 78.3 síncronas contra 73.3 assíncronas. A assincronia compra throughput, não precisão.
  • O chunking oculta a latência de computação, não a latência de rede, e torna a política menos reativa porque está comprometida com 50 ações.
Inferência remota não é gratuita, e nenhuma plataforma corrige a física

AY-Robots pode provisionar automaticamente um pod de GPU na nuvem que serve sua política enquanto o cliente robô local se comunica com esse endpoint, e o pod possui um watchdog de inatividade para que ele se autodestrua em vez de cobrar silenciosamente. O que ele não faz é remover a viagem de ida e volta pela internet pública. O loop de controle nas cinco políticas aqui é de 20 a 485 ms por etapa de ação antes de qualquer rede, portanto, a inferência remota é viável para operações lentas de 'pick-and-place', não para movimentos reativos rápidos.

A tabela de comparação de políticas AY-Robots mostrando GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT com contagens de parâmetros, nível de GPU necessário, latência de inferência por etapa de ação e o número mínimo de episódios que cada um precisa
SmolVLA com ~450 M e ACT com ~80 M são os dois que cabem em uma placa de 24 GB. Os outros três precisam de uma A100 ou H100 de 80 GB.

Ajuste fino de SmolVLA em uma placa de consumidor

O caminho manual, no lerobot 0.6.1, a versão atual do PyPI em 23 de agosto de 2026. Tudo abaixo vem da documentação Hugging Face lerobot SmolVLA, obtida no mesmo dia; a versão guiada é mais suave.

  1. 1
    Instalar o lerobot com o extra smolvla

    As dependências do SmolVLA são um extra opcional, não fazem parte da instalação base. Instalar sem elas e depois questionar por que o tipo de política é desconhecido é uma perda comum de meia hora.

    bash
    git clone https://github.com/huggingface/lerobot.git
    cd lerobot
    pip install -e ".[smolvla]"
  2. 2
    Obter um dataset com episódios suficientes

    A documentação recomenda cerca de 50 episódios e afirma que a mesma tarefa com 25 não foi suficiente. A AY-Robots define o mínimo em 30. Grave os seus próprios, ou comece pelo diretório de datasets.

    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
    Iniciar o fine-tune

    O comando do guia lerobot, não modificado. A documentação estima 20000 passos em aproximadamente 4 horas numa A100. Numa placa de 24 GB, espere mais tempo e meça.

    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
    Reduzir o tamanho do batch até que caiba

    batch_size=64 é um exemplo documentado, não uma promessa sobre a sua placa. A documentação aconselha começar pequeno e aumentar enquanto os tempos de carregamento permanecerem curtos.

    bash
    lerobot-train --help
  5. 5
    Implementar o checkpoint no braço

    Mesma biblioteca, um comando. As flags de chunking em tempo real estão comentadas na documentação e são as que devem ser usadas em hardware de baixa potência.

    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
O checkpoint é o entregável

Qualquer caminho que você siga, você termina com um checkpoint mais a configuração que o produziu. Mantenha a revisão do dataset, a contagem de passos e a seed ao lado. O lerobot usa seed 1000 por padrão; o ponto de entrada de fine-tuning do GR00T não expõe nenhuma seed, então essas execuções não são reproduzíveis bit a bit. Mecânica na documentação de treinamento.

Duas maneiras de colocar um VLA pequeno num braço

Você é o dono da máquina e dos modos de falha. Para o SmolVLA isso é razoável: um extra pip, um comando de treinamento, um comando de rollout. Para o TinyVLA é uma reprodução de pesquisa com pins congelados, um caminho DeepSpeed quebrado e uma conversão de dados que você mesmo escreve.

  1. Obtenha uma placa de 24 GB, grave de 30 a 50 episódios, verifique os fluxos da câmera quadro a quadro.
  2. pip install -e ".[smolvla]", lerobot-train contra lerobot/smolvla_base, depois sirva o checkpoint na máquina onde o braço está conectado.
  3. Para TinyVLA: ambiente conda separado, converter dados para HDF5, registrar a tarefa em constants.py, corrigir o caminho zero2.json, cortar train.sh de oito GPUs para uma.
Vantagens
  • Sem cobrança por hora depois que a placa é paga.
  • A inferência fica ao lado dos servos, a única maneira de obter um loop de controle rápido.
  • Você pode aplicar patches no código da política, e o TinyVLA só está disponível desta forma.
Compromissos
  • Uma 4090 exclui todas as políticas de ~3 B, então não há comparação local contra GR00T N1.7 ou Pi0.5.
  • A configuração do ambiente é o trabalho real. Apenas os pins do TinyVLA podem custar um dia.
  • Sem fila, sem nova tentativa, sem armazenamento de checkpoint. Uma reinicialização no passo 14000 significa começar de novo.

Quando um modelo pequeno é a escolha errada

Ambos os artigos são mais cuidadosos aqui do que os resumos. A análise de falhas do TinyVLA é específica: a variante de 0,4 B falhou três vezes ao interpretar mal a instrução, o que os autores atribuem à compreensão limitada da linguagem no VLM menor, e esse modo desapareceu em 1,3 B. O SmolVLA mostra a mesma curva do outro lado: a versão de 2,25 B da arquitetura idêntica pontua 88,75 no LIBERO e 68,24 no Meta-World contra 87,3 e 57,3 para o modelo de 0,45 B.

Escolhendo um VLA abaixo de 1 B
Onde ganha
  • Cabe em uma placa de 24 GB, o que reduz o custo de um experimento de dezenas de dólares para alguns.
  • Rápido o suficiente para rodar ao lado do braço, sem salto de rede no loop de controle.
  • Ajusta-se aos dados que uma pessoa pode gravar, dezenas de episódios em vez de milhares.
  • Os pesos, a lista de dados e o código do SmolVLA são públicos, então um resultado ruim é depurável.
Onde perde
  • Seguimento de instruções mais fraco: menos parâmetros de linguagem, menor capacidade de separar expressões referenciais semelhantes.
  • Menor generalização espacial e visual para configurações que você não gravou.
  • Mais sensível a defeitos no conjunto de dados, com menos pré-treinamento para recorrer.
  • Trabalhos multi-tarefa e de longo horizonte ainda favorecem modelos maiores, incluindo a própria variante de 2,25 B do SmolVLA.

A comparação que vale a pena fazer não é TinyVLA contra SmolVLA. É SmolVLA contra ACT na sua própria tarefa, e o artigo do SmolVLA é o argumento para isso. Treinado para uma única tarefa sem pré-treinamento em robótica, o SmolVLA obteve uma média de 40,0 em três tarefas SO-100, onde o ACT de tarefa única conseguiu 48,3. O que o eleva para 78,3 é o pré-treinamento comunitário mais o treinamento multi-tarefa, não a arquitetura sozinha. Na tarefa de lego SO-101, ambas de tarefa única, o SmolVLA vence: 90 contra 70 em distribuição. Então SmolVLA contra Pi0.5 se o orçamento permitir.

Neste tamanho, o conjunto de dados decide o resultado

Há menos pré-treinamento para cobrir dados ruins, então uma curva de perda limpa em um conjunto de dados defeituoso resulta em uma política que reproduz o defeito com confiança. A documentação do lerobot é direta sobre a estrutura: 50 episódios em 5 posições de cubo, 10 por posição, funcionaram; 25 não. Se a perda parece boa e o braço não faz nada útil, comece em a perda cai, a política não faz nada, a política só funciona em uma configuração ou coletando dados de treinamento VLA que são realmente utilizáveis.

Cinco políticas, uma tabela de comparação

GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT com contagens reais de parâmetros, latência de inferência por passo de ação, o nível de GPU que cada um precisa e a contagem mínima de episódios antes de fazer algo útil.

Compare as políticas

Uma tabela de decisão sobre a qual você pode agir

Sua situaçãoComece comPorquê
Uma tarefa, boas demonstrações, sem linguagemACT~80 M, 20 ms, placa de 24 GB, sem modelo base para baixar
Algumas tarefas relacionadas, uma instrução cadaSmolVLA450 M, no lerobot, mínimo de 30 episódios, 1 a 3 USD por execução
Reproduzindo especificamente o resultado do TinyVLATinyVLA-B ou TinyVLA-HO repositório é a única rota: ambiente isolado, dados convertidos
Multitarefa, instruções variadas, orçamento A100GR00T N1.7 ou Pi0.5~3 B, 152 ms e 485 ms por passo, 4 a 12 USD por execução
Nenhum robô aindaDirija um braço realO braço ao vivo baseado em fila não precisa de inscrição nem de hardware

Para a última linha, o braço ao vivo transmite um SO-100 físico que você pode controlar do navegador sem uma conta, e as três formas de começar cobrem o resto. O SO-100 é o braço de referência aqui, custando aproximadamente 110 a 150 EUR em peças, com um guia completo de configuração.

O que vem depois dos modelos sub-1 B

Reduzir a contagem de parâmetros é uma forma de tornar um VLA barato e não é obviamente a vencedora. OpenVLA-OFT (arXiv 2502.19645) mantém o backbone de 7 B e altera apenas como as ações são decodificadas, relatando um aumento de 26x na taxa de transferência de geração de ações e o LIBERO subindo de 76.5 para 97.1 por cento. BitVLA (arXiv 2506.07530) torna ternário cada peso de um backbone BitNet b1.58 2B4T de 1 bit, relatando 11.0x menos memória e 4.4x menor latência de ponta a ponta, enquanto iguala o OpenVLA-OFT de precisão total. X-VLA-0.9B (arXiv 2510.10274) se posiciona na linha de 1 B com flow matching.

O ponto em comum: o decodificador de ações, não o modelo de linguagem, é onde reside a latência. Pergunte como uma política emite ações antes de perguntar quantos parâmetros ela possui. A arena possui 85 modelos e 332 resultados, cada um vinculado à sua fonte; há uma visão geral mais ampla em nossa introdução aos VLA.

Posso fazer fine-tuning do SmolVLA em uma RTX 4090?

Sim. O SmolVLA tem 450 M parâmetros e a AY-Robots o executa na camada RTX 4090 / 24 GB. O exemplo do lerobot usa --batch_size=64, que é um exemplo e não uma garantia para sua placa; a documentação aconselha começar com um tamanho pequeno e aumentar enquanto os tempos de carregamento permanecerem curtos. Espere um tempo maior do que as aproximadamente 4 horas que a documentação cita para 20000 passos em uma A100.

O TinyVLA está disponível no lerobot ou na AY-Robots?

Não para ambos. O TinyVLA existe apenas em seu repositório de pesquisa, último commit 11 de março de 2025, e seu formato é HDF5 estilo ACT em vez de LeRobot. A AY-Robots treina GR00T N1.7, GR00T N1.5, Pi0.5, SmolVLA e ACT. Se você quiser o TinyVLA, você o constrói por conta própria, e terá que corrigir o caminho de configuração do DeepSpeed em scripts/train.sh primeiro.

Um modelo de 450 M é realmente competitivo com um de 3 B?

Nos próprios benchmarks dos autores, sim: 87.3 contra 86.0 no LIBERO versus um Pi0 pré-treinado em robótica de 3.3 B, e 78.3 contra 61.7 em três tarefas reais SO-100 onde o mesmo artigo rotula Pi0 em 3.5 B. O limite está no mesmo artigo: em tarefa única sem pré-treinamento em robótica, o SmolVLA cai para 40.0, abaixo dos 48.3 do ACT.

Quantos episódios preciso antes que um VLA pequeno faça algo?

A AY-Robots define o mínimo para SmolVLA em 30 episódios e para ACT em 50. A documentação do lerobot recomenda cerca de 50 e relata que 25 não foram suficientes para a mesma tarefa. A estrutura importa tanto quanto a contagem: o conjunto do artigo usou 5 posições de cubo com 10 episódios cada.

Por que os números de latência publicados divergem tanto?

Eles medem coisas diferentes. O TinyVLA relata 14 ms por previsão de ação em uma A6000; a AY-Robots lista o SmolVLA em 245 ms e o ACT em 20 ms por passo de ação. Alguns números cobrem uma única passagem de inferência, alguns dividem uma passagem por um bloco de 50 ações, e quase nenhum inclui a captura da câmera ou a escrita para os servos.

A inferência na nuvem resolve o problema da GPU?

Parcialmente. A AY-Robots provisiona automaticamente um pod que serve a política enquanto o cliente local se comunica com esse endpoint, com um watchdog de inatividade para que ele se autodestrua em vez de gerar cobranças silenciosamente. Isso não elimina o tempo de ida e volta pela internet pública, e o loop de controle já é de 20 a 485 ms por passo de ação. Bom para tarefas lentas de pegar e colocar, não para movimentos reativos rápidos.

Ready for high-quality robotics data?

AY-Robots connects your robots to skilled operators worldwide.

Get Started