Início / Fundamentos / Módulo 1.2
MÓDULO 1.2

🔬 Anatomia de um VLA: Visão + Linguagem + Ação

Desmontando a arquitetura por dentro: como encoder visual, backbone de linguagem e decodificador de ações se conectam para transformar pixels e palavras em movimento físico.

6
Tópicos
~40
Minutos
Básico
Nível
Teoria
Tipo
Pipeline VLA: Percepção → Raciocínio → Ação Física 📷 Câmera 224×224 RGB 💬 Instrução "Pega o copo" Vision Encoder SigLIP · DINOv2 · ViT Patch embeddings → visual tokens LLM Backbone Llama · Gemma · Qwen visual tokens + text tokens → fused repr. 7B parâmetros Action Head MLP · Diffusion · Flow (x,y,z,rx,ry,rz,grip) 7-DoF action tokens 🦾 Braço Robótico Percepção Raciocínio Ação
1

👁️ Encoder Visual: SigLIP, DINOv2, ViT

O encoder visual é o primeiro degrau da percepção: converte cada frame da câmera em vetores densos que o backbone de linguagem consegue "ler". A escolha do encoder — SigLIP, DINOv2 ou ViT puro — define o que o robô é capaz de enxergar com precisão.

🔍 Como funciona o patch embedding

A imagem de 224×224 pixels é dividida em patches de 14×14 ou 16×16 pixels. Cada patch é projetado linearmente num vetor denso de alta dimensão (tipicamente 768 ou 1024 dimensões). Esses vetores — os visual tokens — são a linguagem interna que o encoder fala com o backbone LLM.

Uma imagem de 224×224 com patches de 14×14 gera 256 visual tokens. Cada token carrega informação local sobre textura, cor e bordas — o conjunto carrega a estrutura espacial da cena inteira.

✓ SigLIP e DINOv2 brilham quando

  • SigLIP: tarefa exige alinhar objetos a nomes ("pegue o copo azul")
  • DINOv2: tarefa exige estimativa de profundidade ou segmentação implícita
  • Dual encoder (SigLIP + DINOv2): combina os dois — padrão no OpenVLA
  • Resolução maior (336×336) melhora manipulação fina de objetos pequenos

✗ Armadilhas comuns

  • Usar encoder treinado apenas em web images — perde geometria 3D
  • Congelar o encoder durante fine-tuning — features não adaptam para a tarefa
  • Resolução muito baixa (112×112) — objeto de 2 cm vira ruído de 1 token
  • Ignorar a projection layer — visual tokens precisam de escala compatível com o LLM
Patch Embedding
Divisão da imagem em blocos; cada bloco → vetor denso.
Contrastive Learning
SigLIP alinha imagem e texto no mesmo espaço vetorial via sigmoid loss.
Self-Supervised
DINOv2 captura estrutura geométrica sem nenhuma anotação humana.
2

🧠 Backbone LLM: Llama, Gemma, Qwen

O backbone LLM é o cérebro central do VLA. É ele que funde visual tokens com text tokens, raciocina sobre a cena e decide o que fazer. A escolha do backbone — e quantos parâmetros ele tem — define o trade-off fundamental entre capacidade de raciocínio e latência de resposta.

💡 Por que reusar um LLM pré-treinado?

Modelos como Llama 3, Gemma 2 e Qwen 2.5 foram treinados em trilhões de tokens de texto. Eles já "sabem" o que é um copo, onde fica a pia e como seguir instruções compostas como "coloque o garfo à esquerda do prato". Treinar esse conhecimento do zero para cada robô seria proibitivamente caro — o reuso é a chave da generalização.

Fluxo de processamento dentro do backbone

1

Projection Layer

Uma MLP simples (2 camadas lineares) mapeia visual tokens do espaço do encoder (ex: 1024 dims) para o espaço de embedding do LLM (ex: 4096 dims). Esse "tradutor" é o único novo componente que precisa ser treinado do zero.

2

Fusão Multimodal

Visual tokens e text tokens são concatenados numa sequência unificada. O mecanismo de atenção do transformer trata ambos da mesma forma — não há diferença arquitetural entre "ver" e "ler".

3

Geração de Representação

O backbone processa a sequência completa e produz embeddings de saída ricos que codificam: "o copo está 15 cm à frente, à esquerda do prato, instrução diz para pegá-lo". Esses embeddings alimentam o action head.

LoRA
Fine-tuning de rank baixo: treina <1% dos parâmetros com performance similar ao full fine-tuning.
Instruction Tuning
Adaptação do backbone para seguir comandos robóticos em vez de completar texto genérico.
Catastrophic Forgetting
Risco de perder capacidade linguística durante fine-tuning; mitigado por learning rate baixo.
3

🎯 Action Head: Tokenizando Ações Contínuas

O action head é onde VLA diverge radicalmente de um VLM comum. Robôs operam em espaços contínuos — posição em metros, torque em Newton-metro — mas LLMs geram tokens discretos. O action head é o componente que resolve essa incompatibilidade fundamental.

O problema da continuidade

Um robô manipulador de 7 DoF precisa de 7 números reais a cada timestep: (x, y, z, rotX, rotY, rotZ, gripper). Esses números podem ser 0.3427m ou 1.7293 Nm — valores arbitrariamente precisos. O vocabulário de um LLM tem tokens discretos como "cat", "42" ou "[EOS]". Não existe token para "0.3427".

Diferentes action heads resolvem isso de formas distintas: discretização em bins, regressão direta via MLP, ou modelos generativos (diffusion, flow matching). Cada abordagem tem trade-offs de precisão, latência e suavidade de movimento.

✓ Action heads que funcionam bem

  • Bins discretos (RT-2, OpenVLA): simples, compatível com vocabulário LLM, bom para tarefas lentas
  • Diffusion head (Octo): ações suaves e multimodais, bom quando há múltiplos caminhos válidos
  • Flow matching (π0): alta frequência (50 Hz), ótimo para dexterous manipulation

✗ Problemas frequentes

  • Bins com resolução baixa (64 bins) — imprecisão de ~1.5 mm em workspace de 10 cm
  • MLP de regressão sem normalização de ações — gradientes explodem ou colapsam
  • Diffusion com muitos steps de denoising — latência proibitiva para controle em tempo real

💡 Flow matching vs Diffusion

Ambos transformam ruído em ações. A diferença: diffusion usa um processo de denoising iterativo com muitos passos (tipicamente 10-100); flow matching aprende um campo vetorial e resolve uma ODE em menos passos (2-4). Resultado: π0 consegue gerar ações suaves a 50 Hz, enquanto heads difusivos típicos precisam de comprometimento entre qualidade e velocidade.

Discretization Bins
Divide espaço contínuo em N buckets; cada ação vira token categórico.
Diffusion Head
Denoising iterativo gera ações suaves e multimodais.
Flow Matching
ODE que transporta ruído → ação em poucos steps; viabiliza 50 Hz.
4

📐 Tokenização de Trajetórias: Bin Discreto vs Contínuo

Como representar uma trajetória robótica como sequência processável? Duas filosofias fundamentais: discretizar o espaço de ações em buckets (compatível com vocabulário LLM, porém limitado em resolução) ou gerar valores contínuos diretamente via modelos generativos (preciso, porém arquiteturalmente mais complexo).

Tokenização Discreta (Bins) Espaço de ação: −1.0 → +1.0 (256 bins) bin #134 → x=0.042m ✓ Compatível com vocab LLM ✓ Simples de treinar Resolução: ~7.8mm por bin (workspace 2m) Geração Contínua (Flow Matching) Ruído gaussiano → ODE → ação precisa N(0,1) ruído ODE 2-4 steps 0.342m preciso ✓ Alta precisão ✓ Suavidade ✓ Multimodal Custo: arquitetura adicional, inferência mais lenta Escolha depende do trade-off: velocidade × precisão × complexidade

📊 Números reais: resolução de bins

256 bins
Por dimensão (RT-2, OpenVLA). Em workspace de 10 cm → resolução de ~0.4 mm. Suficiente para maioria das tarefas.
4–16 steps
Action chunking: prediz múltiplas ações futuras de uma vez, melhorando consistência temporal.
7 DoF
Dimensões padrão: x, y, z, rotX, rotY, rotZ + gripper. Cada uma precisa de seu próprio bin ou coordenada contínua.
Action Chunking
Prediz 4–16 ações futuras de uma vez; reduz jitter e melhora suavidade temporal.
De-tokenization
Converte tokens preditos de volta em comandos contínuos para o controlador do robô.
Action Normalization
Padroniza todas as dimensões para [−1, 1] antes de discretizar; crítico para treino estável.
5

🔄 Co-fine-tuning: Visão + Linguagem Juntos

Co-fine-tuning é o processo de treinar simultaneamente os componentes visuais e linguísticos do VLA em dados de demonstração robótica. Em vez de congelar o encoder e treinar só o action head, todos os componentes aprendem juntos — e é exatamente isso que faz VLAs superarem pipelines modulares.

💡 O resultado do OpenVLA

O OpenVLA demonstrou empiricamente que co-fine-tuning melhora a performance em até 16,5% comparado ao fine-tuning apenas do action head. A razão: quando o encoder visual pode se adaptar à tarefa, ele aprende features específicas para manipulação — como detectar bordas de preensão — que features de web images não capturam.

✓ Benefícios do co-fine-tuning

  • Gradientes da action loss propagam até o encoder — features visuais se adaptam para controle
  • Representações convergem para o que é relevante para a tarefa, não para classificação web
  • Melhor generalização para objetos novos não vistos nas demonstrações
  • LoRA torna co-fine-tuning viável em uma única GPU de consumo

✗ Riscos e mitigações

  • Catastrophic forgetting: backbone perde capacidade linguística → use learning rate baixo (1e-5)
  • Overfitting: dados robóticos são escassos; poucos dados → modelo memoriza em vez de generalizar
  • Custo computacional: co-fine-tuning de 7B é 3-4× mais caro que fine-tuning só do action head
End-to-End Training
Gradientes percorrem todos os componentes — percepção, fusão e ação são otimizados juntos.
Multi-task Fine-tuning
Treinar em múltiplas tarefas simultâneas preserva generalidade e reduz overfitting.
Regularização
Weight decay e dropout mitigam catastrophic forgetting durante co-fine-tuning.
6

⚡ Latência e Throughput: Budget de Tokens

O gargalo mais cruel dos VLAs reais não é a arquitetura — é o tempo. Um robô precisa decidir ações a 5–50 Hz, mas um LLM de 7B parâmetros pode levar centenas de milissegundos por token. O budget de tokens define quantos tokens visuais e textuais o sistema consegue processar dentro do tempo de controle disponível.

Frequências de controle e o que cada uma viabiliza

5 Hz

Tarefas lentas — empilhar blocos, abrir gavetas

200 ms por ação. VLAs de 7B com quantização INT8 (ex: OpenVLA) conseguem operar nessa frequência em GPUs de consumo. Suficiente para 80% das tarefas de manipulação tabletop.

15 Hz

Manipulação fluida — pegar e colocar objetos variados

~67 ms por ação. Requer modelos menores (3B), quantização agressiva (INT4) ou async inference com action chunking. KV-cache é obrigatório para reusar tokens do contexto.

50 Hz

Dexterous manipulation — dobrar roupa, encaixar peças

20 ms por ação. Território do π0 com flow matching (2-4 ODE steps). Inviável com discretização bin + LLM full size. Requer co-design de arquitetura e hardware.

📊 Técnicas de aceleração e seus ganhos

2–4×
Quantização INT8/INT4: reduz memória e aumenta throughput com perda mínima de precisão (≤1% de degradação em benchmarks robóticos).
3–10×
KV-Cache: reutiliza computações de tokens do contexto fixo (instrução + tokens anteriores), evitando recálculo a cada frame.
~5×
Token compression: reduz 256 visual tokens para ~64 com pooling ou atenção cruzada; menos tokens = inferência mais rápida.

💡 Jetson Orin: VLA na borda

O Nvidia Jetson AGX Orin (275 TOPS) permite rodar SmolVLA ou Qwen-VLA <3B com quantização INT4 a 8–12 Hz — suficiente para tarefas tabletop — sem nenhum servidor externo. Para modelos de 7B como OpenVLA, ainda é necessário uma GPU discreta (RTX 3090 ou superior) no loop.

Control Frequency
Vezes por segundo que o modelo gera ações: 5 Hz (lento) a 50 Hz (dexterous).
KV-Cache
Reutiliza chave/valor de tokens anteriores, acelerando inferência incremental em 3–10×.
Quantização
INT8/INT4 reduz modelo em 2–4× com perda mínima; viabiliza deploy em GPUs embarcadas.

🎓 Resumo do Módulo

O encoder visual — SigLIP, DINOv2 ou ViT — converte frames da câmera em visual tokens que o LLM consegue processar via patch embedding.
O backbone LLM funde visual tokens e text tokens num espaço unificado, trazendo world knowledge e reasoning de bilhões de tokens de pré-treino.
O action head resolve a incompatibilidade discreto×contínuo via bins, diffusion ou flow matching — cada abordagem com trade-offs de precisão, suavidade e latência.
Latência é o gargalo real — KV-cache, quantização e token compression são essenciais para viabilizar controle em tempo real a 5–50 Hz.

Próximo Módulo:

1.3 — Panorama dos Modelos: RT-2, OpenVLA, π0, Qwen-VLA. O ecossistema de modelos VLA, de pioneiros fechados a open-source.