De la Difusión al Flow

Diffusion Policy demostró que la generación basada en denoising es poderosa para acciones robóticas. Pero DDPM tiene una ineficiencia fundamental: los caminos que toma por el espacio de datos son curvos , requiriendo muchos pasos pequeños (50-100) para producir muestras de calidad.

Flow matching plantea: ¿qué pasaría si tomáramos caminos en línea recta? Aprender un campo de velocidades que transporte muestras de ruido a datos en líneas rectas requiere muchos menos pasos.

En robótica, donde las acciones deben generarse en tiempo real (a menudo a 10+ Hz), reducir los pasos de inferencia de 50-100 a 5-10 puede ser la diferencia entre un sistema viable y uno inviable.

💡 DDPM es como navegar por carreteras sinuosas — llegas, pero con muchas curvas. Flow matching es como tomar una autopista — línea recta del punto A al B.

Conditional Flow Matching

Conditional Flow Matching (CFM) [1] [2] define una interpolación lineal entre ruido $x_0 \sim \mathcal{N}(0,I)$ y datos $x_1$:

$$x_t = (1 - t)\, x_0 + t\, x_1, \quad t \in [0, 1]$$

La velocidad a lo largo de este camino es constante y trivialmente computable:

$$v_{\text{target}} = \frac{dx_t}{dt} = x_1 - x_0$$

La red neuronal $v_\theta(x_t, t)$ se entrena para predecir esta velocidad. La pérdida de entrenamiento:

$$\mathcal{L}_{\text{CFM}} = \mathbb{E}_{t,\, x_0,\, x_1} \left[ \| v_\theta(x_t, t) - (x_1 - x_0) \|^2 \right]$$

Compara con la pérdida de DDPM $\|\epsilon - \epsilon_\theta(x_t, t)\|^2$. Son casi idénticas, pero la diferencia es crítica: DDPM predice ruido (qué sustraer), mientras flow matching predice velocidad (hacia dónde ir). La formulación de velocidad lleva a caminos más rectos.

En inferencia, resolvemos una ODE con pasos de Euler:

$$x_{t + \Delta t} = x_t + \Delta t \cdot v_\theta(x_t, t)$$

Con 5-10 pasos de Euler, flow matching produce calidad comparable a DDPM con 50-100 pasos.

π₀ (pi-zero)

π₀ [3] de Physical Intelligence es el primer VLA que combina un backbone VLM grande con una cabeza de flow matching, demostrando rendimiento sólido en tareas diversas: doblar ropa, ensamblar cajas, limpiar mesas y recoger platos.

  • Backbone VLM: PaLI-Gemma [4] (3B) para comprensión visual y lingüística.
  • Action expert: Parámetros transformer dedicados que procesan tokens de action chunk mediante cross-attention hacia las representaciones del VLM.
  • Cabeza de flow matching: Genera acciones continuas via CFM. Predice el campo de velocidades $v_\theta(A_t, t, O)$ que transporta chunks de acción ruidosos hacia limpios.

La separación del action expert del backbone VLM permite entrenamiento dual: el backbone se actualiza tanto con objetivos de lenguaje (predicción del siguiente token) como de acción (pérdida de flow matching), preservando las capacidades lingüísticas.

Proceso de generación de acciones en inferencia:

$$A^{n+1} = A^n + \frac{1}{N} \cdot v_\theta(A^n, \tfrac{n}{N}, O)$$

Partiendo de ruido $A^0 \sim \mathcal{N}(0,I)$ y ejecutando $N = 10$ pasos de Euler, se obtiene el chunk de acción limpio $A^N$. Se ejecutan los primeros $h$ pasos y se re-predice.

Flow vs Difusión en la Práctica

  • Velocidad de inferencia: Flow matching necesita 5-10 pasos vs 20-100 para DDPM — ~5× más rápido.
  • Simplicidad de entrenamiento: Flow matching evita definir un schedule de ruido ($\beta_t$), que requiere ajuste cuidadoso en DDPM.
  • Calidad de muestras: Comparable o mejor, con caminos de interpolación más rectos.
  • Multi-modalidad: Ambos enfoques manejan distribuciones multi-modales bien. La diferencia es principalmente en eficiencia de inferencia, no en expresividad.

La conclusión práctica: flow matching logra calidad comparable o mejor con significativamente menos pasos de inferencia . Para robótica, donde la inferencia en tiempo real es crítica, es la opción preferida para nuevos sistemas.

Quiz

Pon a prueba tu comprensión de flow matching y π₀.

¿Cuál es la ineficiencia fundamental de DDPM que flow matching aborda?

En conditional flow matching, ¿cuál es el campo de velocidades objetivo para interpolación lineal de ruido x₀ a datos x₁?

¿Qué predice la red de flow matching comparado con DDPM?

¿Por qué π₀ separa su action expert del backbone VLM?

¿Cuántos pasos ODE necesita flow matching comparado con los pasos de denoising de DDPM?