Contenido detallado
Generar una acción mediante denoising: comienza con ruido gaussiano y lo refina hasta obtener una trayectoria ejecutable.
🎲 Por qué usar difusión para la acción
En el Módulo 1.4 vimos que MSE colapsa modos. La difusión lo resuelve modelando la acción como una muestreo de una distribución condicional: en vez de predecir un valor, aprende a transformar ruido gaussiano en una trayectoria válida mediante denoising. Como muestra, captura de forma natural distribuciones multimodales — elige un modo coherente en lugar del promedio. Y al generar toda la trayectoria (chunk), produce movimientos suaves y consistentes.
💡 Tres ventajas de la difusión
Multimodal: representa «izquierda O derecha» sin mediar. Trayectoria: genera secuencias fluidas de acciones futuras. Estable en el entrenamiento: el objetivo de denoising está bien condicionado, sin la inestabilidad de las GAN.
Denoising
Refinar el ruido para convertirlo en acción.
Multimodal
Captura varios modos.
Trajectory gen
Genera un chunk entero.
Muestreo
Acción como sample, no como promedio.
🌊 Diffusion Policy (2023)
Diffusion Policy (Chi et al., 2023) aplicó DDPM al control: una red (U-Net 1D o transformer) elimina el ruido de una secuencia de acciones futuras condicionada por la observación. Combina action chunking (predecir H pasos) con horizonte móvil (ejecutar una parte, volver a predecir). Superó los baselines en manipulación fina y se convirtió en el estándar de oro para tareas de destreza, incluida la cabeza de acción de Octo.
# Diffusion Policy — inferência (esboço)
A = torch.randn(H, action_dim) # ruído inicial
for k in reversed(range(K)): # K passos de denoising
eps = net(A, k, obs_cond) # prevê o ruído
A = ddpm_step(A, eps, k) # remove um pouco
execute(A[:exec_horizon]) # receding horizon
📊 Por qué funcionó
- Multimodal — resuelve tareas con soluciones alternativas.
- Estable — entrenamiento robusto a los hiperparámetros.
- Chunking — trayectorias suaves, menos jitter.
DDPM
Modelo de difusión con eliminación de ruido.
Horizonte móvil
Ejecutar una parte y volver a predecir.
U-Net 1D
Backbone común del denoiser.
Estándar de oro
Baseline de manipulación fina.
📐 Score matching y proceso inverso
Por debajo, la difusión tiene un proceso directo que agrega ruido gaussiano a la acción en K pasos hasta convertirlo en ruido puro, y un proceso inverso aprendido que lo deshace. La red aprende el score — el gradiente de la log-densidad ∇log p(a) — equivalente a predecir el ruido añadido. El conditioning en la observación se integra mediante FiLM o cross-attention, haciendo que la generación dependa de lo que ve el robot.
Forward: agregar ruido
La acción limpia se convierte en ruido gaussiano en K pasos (definidos por un schedule).
Aprender el score
La red predice el ruido (≈ score) minimizando un simple error de regresión.
Inverso: muestrear
Partiendo del ruido, aplica el score K veces condicionado por la observación.
⚡ Consejo práctico
El conditioning es lo que hace que la política sea reactiva: sin él, muestreas acciones plausibles pero desconectadas de la escena. FiLM es ligero; cross-attention es más expresivo. Elige según el presupuesto.
Función de puntuación
Gradiente de la log-densidad.
Proceso inverso
Eliminar el ruido paso a paso.
Conditioning
FiLM / cross-attention en la obs.
Noise schedule
Cómo crece el ruido en K.
➡️ Flow Matching y su uso en π0
Flow Matching generaliza la difusión: en lugar de un proceso estocástico de denoising, aprende un campo vectorial que transforma ruido→acción mediante una ODE continua. Con conditional flow matching, el objetivo de entrenamiento es simplemente la velocidad a lo largo de un camino (frecuentemente recto) entre el ruido y los datos: un objetivo más simple y estable. El π0 usa exactamente esto en tu action expert para generar acciones continuas y fluidas a 50Hz.
✓ Ventajas del flow matching
- ✓Entrenamiento más simple y estable que DDPM.
- ✓Las rutas rectas permiten menos pasos de inferencia.
- ✓Acción continua de alta frecuencia (π0 a 50Hz).
✗ Precauciones
- ✗Aún exige integrar la ODE (varios NFEs).
- ✗Sensible a la parametrización de la trayectoria.
- ✗Requiere un experto en acciones bien condicionado.
Flow matching
Transporte de ruido a acción mediante ODE.
Vector field
Velocidad aprendida en el camino.
ODE
Proceso determinista continuo.
π0 action expert
Flow matching a 50Hz.
⚡ Costo de inferencia y destilación
El costo central de las políticas generativas es el número de evaluaciones de función (NFE) — cada paso de denoising/integración es un forward pass. El DDPM clásico usa de decenas a cientos de pasos, inviable a 50Hz. Soluciones: samplers rápidos (DDIM), consistency models (generan en 1-2 pasos) y destilación de un modelo lento a uno rápido. El flow matching con trayectorias rectas ya reduce el NFE de forma natural.
📊 Presupuesto de pasos
- 50-100 NFE — DDPM ingenuo; alta calidad, alta latencia.
- ~10 NFE — DDIM / flow con trayectoria recta; buen equilibrio.
- 1-2 NFE — consistency models destilados; tiempo real.
💡 Latencia vs. calidad
Combina pocos NFEs con action chunking: genera un chunk de 5-10 pasos y ejecútalo mientras vuelves a muestrear. Así conservas la expresividad de la difusión dentro del presupuesto de tiempo real.
NFE
Evaluaciones por muestra.
Consistency model
Genera en 1-2 pasos.
Destilación
Lento → rápido.
DDIM
Sampler determinista rápido.
⚖️ Difusión vs. autorregresivo
La gran decisión de diseño de la cabeza de acción: generación por difusión/flow versus tokens autorregresivos. La difusión es más expresiva (multimodal continua), pero exige varios pasos. El modelo autorregresivo (RT-2, OpenVLA, FAST) reutiliza el backbone LLM y tiene un entrenamiento simple, pero genera token a token y la discretización puede limitar la fidelidad. No hay un ganador universal: la disyuntiva es expresividad × latencia × simplicidad de integración.
Eixo Difusão/Flow Autoregressivo (tokens)
expressividade alta (multimodal) média (depende da disc.)
latência K passos por chunk 1 forward, N tokens
integração action expert extra reusa o backbone LLM
exemplos Diffusion Policy,π0 RT-2, OpenVLA, FAST
⚡ Consejo práctico
Tarea diestra y continua → difusión/flow. Integración sencilla sobre un VLM y entrenamiento autoregresivo unificado → tokens (y el Módulo 1.6 muestra cómo FAST hace que esto sea competitivo).
Expresividad
Capturar distribuciones ricas.
Latencia
Pasos vs. tokens por acción.
AR vs diffusion
Dos paradigmas de cabeza.
Integración
Reutilizar o no el backbone.
✅ Resumen del módulo
Próximo módulo
1.6 — Tokenización de acciones: discreta, continua y FAST; cerramos la Trilha 1.