Contenido detallado
El flujo de tokens: tres entradas convergen en el backbone, que entrega un estado latente a la cabeza de acción.
👁 Encoder de visión: ViT, DINOv2, SigLIP
La imagen entra como una cuadrícula de patches (p. ej., 16×16 px), cada uno proyectado en un patch embedding — el token visual. Un ViT procesa estos tokens con self-attention. Las opciones comunes tienen objetivos distintos: SigLIP alinea visión y texto mediante contrastive (bueno para semántica/lenguaje), mientras que DINOv2 aprende features espaciales densas autosupervisadas (bueno para ubicación y geometría). OpenVLA usa un codificador dual (SigLIP + DINOv2) precisamente para combinar semántica y espacio.
✓ Hacer
- ✓Combinar SigLIP (semántica) + DINOv2 (espacio) para mayor robustez.
- ✓Mantener el encoder preentrenado y hacer un fine-tuning ligero.
- ✓Usar múltiples cámaras (frontal + wrist) como tokens adicionales.
✗ Evitar
- ✗Entrenar el encoder desde cero con pocas demostraciones.
- ✗Resolución demasiado baja que pierde detalles de agarre.
- ✗Agotar el token budget con cámaras redundantes.
Patch embedding
Patch de imagen → token.
SigLIP
Alineación contrastiva visión-texto.
DINOv2
Características espaciales autosupervisadas.
Codificador dual
Dos encoders concatenados.
💬 Backbone de lenguaje: Llama, PaliGemma
El corazón del VLA es un LLM preentrenado que funciona como motor de razonamiento multimodal. OpenVLA usa un VLM Prismatic con base Llama 2-7B; π0 parte del PaliGemma (3B). La ventaja es heredar miles de millones de tokens de conocimiento web —gramática, mundo, relaciones entre objetos— que aportan grounding semántico a la instrucción. El backbone recibe tokens de visión + texto (+ estado) y produce un estado latente que condiciona la acción.
📊 Backbones en la práctica
- OpenVLA — 7B, base Llama 2, Prismatic VLM.
- π0 — base PaliGemma 3B + action expert mediante flow matching.
- RT-2 — PaLI-X / PaLM-E (hasta 55B), cerrado.
⚡ Consejo práctico
El tamaño del backbone es un trade-off directo con la latencia de inferencia. Los modelos de 7B exigen una GPU potente y action chunking para ejecutarse a 10-50Hz; las bases más pequeñas (3B) facilitan el deploy en el borde.
PaliGemma
VLM base de π0.
Prismatic
Receta de VLM de OpenVLA.
Decoder transformer
Núcleo autoregresivo de razonamiento.
Grounding semántico
Conocimiento web aplicado a la tarea.
🔗 Fusión multimodal: cross-attention vs early fusion
¿Cómo entran la visión y el texto en el mismo contexto? En early fusion (OpenVLA, π0), los tokens visuales y de texto simplemente se concatenados en la secuencia de entrada del LLM, que los mezcla mediante self-attention — simple y eficaz, pero el número de tokens visuales aumenta el costo. En cross-attention (Flamingo, algunos VLA), el texto consulta la imagen mediante capas dedicadas de atención cruzada, manteniendo más ligero el backbone de lenguaje. La principal contrapartida es presupuesto de tokens versus capacidad de grounding fino.
# Early fusion (concatenação)
seq = [img_tok_1 ... img_tok_256, txt_tok_1 ... txt_tok_K]
latent = LLM(seq) # self-attention mistura tudo
# Cross-attention
latent = LLM(txt_tok) # texto no fluxo principal
latent = CrossAttn(latent, img_tok) # consulta a imagem
💡 Por qué la fusión temprana se impuso en los VLA
La concatenación es la forma más sencilla de reutilizar un VLM listo sin cambiar la arquitectura. Como los VLA parten de VLM ya entrenados con early fusion, heredan esta elección. El costo es gestionar cuidadosamente el token budget visual.
Fusión temprana
Concatenar tokens en la entrada.
Cross-attention
El texto consulta la imagen.
Token budget
El costo crece con los tokens visuales.
Grounding fino
Vincular la palabra con la región de la imagen.
🦾 La cabeza de acción (action head)
El action head convierte el estado latente en comandos motores — normalmente Δpose del efector (traslación y rotación relativas) más el estado del gripper (abrir/cerrar). Hay tres familias: (1) detokenizer, cuando las acciones se discretizaron en tokens (RT-1/RT-2/OpenVLA); (2) action expert mediante difusión/flow, un módulo separado que genera acciones continuas (π0); (3) regresión directa de floats. La elección determina la expresividad y la latencia: tema de los Módulos 1.5 y 1.6.
Detokenizer (discreto)
El LLM predice tokens de acción; un mapa fijo los convierte en valores motores. Es simple y se integra al vocabulario.
Action expert (difusión/flow)
El módulo dedicado genera fragmentos de acción continua condicionados por el espacio latente. Expresivo, multimodal.
Regresión directa
El MLP emite valores float. Tiene baja latencia, pero le cuesta manejar la multimodalidad si se entrena con MSE.
Δpose
Movimiento relativo del efector.
Action expert
Módulo de acción separado.
Detokenizer
Token → valor motor.
Estado del gripper
Comando de abrir/cerrar.
📐 Propiocepción y estado
La cámara no basta. El robot necesita conocer su propio estado — ángulos de articulación, velocidades, fuerza en el efector y el estado del gripper. Estos valores se incorporan como un state token adicional. Igual de importante es el historial temporal: ver solo el frame actual crea ambigüedad (¿el brazo está subiendo o bajando?). Apilar observaciones recientes le da al modelo una noción del movimiento y la intención en curso.
⚡ Consejo práctico
Atención al confusión causal: si la propiocepción se correlaciona fuertemente con la acción en las demos, el modelo puede "hacer trampa" copiando el estado anterior en vez de mirar la cámara. Equilibra el peso del estado y valida con perturbaciones.
📊 Componentes del estado
- Juntas — posición y velocidad de cada DOF.
- Fuerza/torque — sensor en la muñeca para el contacto.
- Historial — N frames recientes para inferir movimiento.
Propiocepción
Sentido del propio cuerpo.
Token de estado
Estado codificado como token.
Observation history
Ventana temporal de observaciones.
Confusión causal
Atajo que ignora la visión.
⏱ El loop de control: Hz, latencia, action chunking
La manipulación fina necesita comandos a ~50Hz, pero un VLA de 7B no infiere tan rápido. La solución es el action chunking: el modelo predice un bloque de H acciones futuras de una vez (ej.: 16-50 pasos), que se ejecutan de forma abierta mientras se ejecuta la siguiente inferencia. Con horizonte móvil, vuelve a predecir antes de que termine el chunk, manteniendo la capacidad de reacción. Esto amortiza la latencia de la red y suaviza la trayectoria: una idea introducida por ACT y adoptada por Diffusion Policy y π0.
Inferir un chunk
El modelo predice H acciones futuras de una sola vez.
Ejecutar en lazo abierto
Las acciones del chunk se ejecutan a 50Hz mientras la red piensa en el siguiente.
Volver a predecir (horizonte móvil)
Antes de que termine el chunk, una nueva inferencia mantiene el ciclo reactivo.
💡 La latencia es un presupuesto
Si la inferencia tarda 100ms y el chunk cubre 320ms (16 pasos a 50Hz), tienes margen para reaccionar. Los chunks demasiado grandes reducen la capacidad de reacción; los demasiado pequeños exceden la latencia. Ajustar H es ingeniería, no un detalle.
Action chunking
Predecir bloques de acciones futuras.
Horizonte móvil
Replanificar antes de terminar.
Control rate
Hz de ejecución motora.
Horizonte H
Tamaño del chunk previsto.
✅ Resumen del módulo
Próximo módulo
1.3 — Evolución de los modelos: el linaje RT-1 → RT-2 → OpenVLA → π0 → Qwen-VLA.