- Diffusion Forcing es un método de generación de secuencias que aprende un nivel de ruido de difusión distinto para cada token, por lo que durante el muestreo puede usarse tanto como un modelo de siguiente token como un modelo de difusión de secuencia completa
- Interpreta el ruido de la difusión como enmascaramiento, de modo que los tokens pasados se mantienen limpios y solo los tokens futuros quedan en estado ruidoso, o bien se pueden asignar distintos niveles de ruido a toda la secuencia
- En la predicción de video de DMLab y Minecraft, el teacher forcing diverge con facilidad y la difusión causal de secuencia completa pierde consistencia, mientras que Diffusion Forcing genera predicciones más estables
- En toma de decisiones y planificación, define los tokens como [a_t, o_{t+1}] para modelar conjuntamente la acción y la observación posterior, y puede asignar distintos niveles de ruido al futuro cercano y al futuro lejano
- También permite rollouts largos más allá de la longitud de entrenamiento: en DMLab genera más de 2000 cuadros tras entrenar con 36 cuadros, y en Minecraft más de 2000 cuadros tras entrenar con 72 cuadros, sin sliding window
Estructura central de Diffusion Forcing
- El nombre Diffusion Forcing proviene de teacher forcing y de los diffusion models
- Su objetivo es combinar, dentro de un mismo paradigma de entrenamiento, las ventajas de los modelos autorregresivos de siguiente token y de los modelos de difusión de secuencia completa
- Ventaja de los modelos de siguiente token: generación de longitud variable
- Ventaja de los modelos de difusión de secuencia completa: guidance a nivel de secuencia para dirigir el muestreo hacia una trayectoria deseada
- Un mismo modelo entrenado puede operarse de distintas formas en el momento del muestreo
- Generación flexible y composicional, como en un modelo de siguiente token
- Aplicación de guidance sobre la secuencia completa, como en un modelo de difusión de secuencia completa
Ruido por token y “ruido como enmascaramiento”
- Diffusion Forcing entrena difusión sobre secuencias, pero hace que cada token tenga un nivel de ruido distinto
- El ruido de la difusión puede verse como un enmascaramiento con distintas intensidades
- Difusión de secuencia completa: todos los cuadros se denoisean al mismo nivel de ruido y al mismo tiempo
- Predicción del siguiente token: los tokens pasados se dejan con ruido 0 y el siguiente cuadro se denoisea uno por uno
- Al cambiar la distribución del ruido dentro de la secuencia durante el muestreo, se pueden obtener varios comportamientos
- Estabilizar rollouts autorregresivos
- Aplicar guidance en horizontes largos
- Hacer planning incorporando incertidumbre causal
Propiedades teóricas
- Se demuestra que Diffusion Forcing optimiza una cota inferior variacional sobre todas las likelihoods de subsecuencias de tokens extraídos de la distribución conjunta real
- Esta propiedad muestra que el objetivo de entrenamiento no solo se relaciona con el rendimiento empírico, sino también con la likelihood de las subsecuencias en general
Resultados en predicción de video
- Se usan resultados de video sintetizados directamente por el modelo, generados sin VAE ni superresolution
- Se indica explícitamente que los resultados se muestrearon sin cherry-picking
- En la comparación sobre el dataset DMLab, la diferencia entre los tres enfoques es clara
- teacher forcing diverge con facilidad
- el modelo causal de difusión de secuencia completa muestra problemas graves de consistencia
- Diffusion Forcing logra una predicción de video estable y consistente
- En el dataset Minecraft aparece el mismo patrón
- teacher forcing diverge con facilidad
- el modelo causal de difusión de secuencia completa presenta problemas graves de consistencia
- Diffusion Forcing genera predicciones estables y consistentes
Rollouts largos de video más allá de la longitud de entrenamiento
- Diffusion Forcing puede hacer rollout de videos mucho más largos que la longitud máxima de secuencia con la que fue entrenado
- Este rollout se realiza sin sliding window
- En el rollout de RNN, el latent
z no se reinicia al latent inicial z0
- El efecto de estabilización aparece en Diffusion Forcing
- Resultados en DMLab:
- entrenamiento con 36 cuadros
- rollout de más de 2000 cuadros
- realizado sin sliding window
- la resolución original del dataset es 64x64
- la calidad del video bajó por la compresión mp4 de los videos largos, por lo que también se ofrecen visualizaciones en PNG para reflejar la calidad real de la generación
- Resultados en Minecraft:
- entrenamiento con 72 cuadros
- rollout de más de 2000 cuadros sin divergencia
- realizado sin sliding window
- la resolución original del dataset es 128x128
- en algunos escenarios, el agente se detiene frente a un bloque de dirt o stone de dos bloques de altura hasta que cambia de dirección, lo que se trata como un problema inherente a la recolección del dataset
Diffusion Planning
- De forma similar a trabajos previos como Diffuser, puede usarse guidance en tiempo de prueba para utilizar la secuencia de difusión como planner
- Diffusion Forcing define cada token como [a_t, o_{t+1}] para modelar explícitamente la causalidad
- mantiene una creencia sobre qué acción tomar
- también mantiene una creencia sobre la observación a la que esa acción llevará
- cuando entra una nueva observación después de la acción, puede actualizar esa creencia mediante posterior estimation
- Diffusion planning process video visualiza el proceso de planning de Diffusion Forcing como marco de toma de decisiones
- Para modelar la incertidumbre causal del futuro, el futuro cercano puede mantenerse con un nivel de ruido bajo y el futuro lejano con uno alto
Imitation learning de horizonte largo
- Muchas tareas reales no son markovianas y requieren memoria de horizonte largo para ejecutarse
- En una tarea real de robótica, se pide al brazo robótico usar la tercera ranura para intercambiar las ranuras de dos frutas
- las frutas se colocan en ranuras aleatorias al inicio
- con una sola observación no es posible conocer la ubicación inicial de las frutas, así que no se puede decidir el siguiente paso
- En el experimento de planning se elimina el guidance y se realiza feedback control difundiendo conjuntamente la secuencia de acción-observación
- El video presentado muestra varios éxitos consecutivos antes de que ocurra una falla
- aunque la ejecución anterior aleatorice la posición de las frutas, el robot puede seguir realizando la tarea
- Para hacerlo robusto ante distracciones no vistas en tiempo de prueba, puede inducirse a tratar las observaciones entrantes como observaciones ruidosas
- como ejemplo, se usa una distracción que consiste en lanzar aleatoriamente una bolsa de compras al campo visual
Actualización 2025: Scaling Up Diffusion Forcing
- En la actualización de 2025, se hace finetuning del state-of-the-art Wan2.1-T2V-1.3B durante solo 20k steps y 49 cuadros
- Luego genera de forma estable hasta 217 cuadros con un rollout 5 veces más largo
- El trabajo posterior puede consultarse en History-Guided Video Diffusion
- Los videos de ejemplo incluyen olas al atardecer, un mono sobre una roca, un perro preparándose para dormir, una vista aérea de una playa tropical, una escena de surf y una escena de bicicleta subiendo una pendiente
Líneas de investigación futuras
-
Conditioning
- al escalar a secuencias largas, suele usarse conditioning basado en reemplazo
- “Video Diffusion Models” de Johnathan Ho discute por qué este enfoque es incorrecto
- Diffusion Forcing ofrece una forma más natural de conditioning, tratando los context tokens como limpios y los future tokens como ruidosos, pero este punto no se ha explorado en detalle
-
Noise as masking
- este enfoque logra un enmascaramiento fraccional de los tokens, no un enmascaramiento binario
- es lo bastante general como para incorporarse también en métodos de aprendizaje autosupervisado como MAE
- agregar ruido tiene una interpretación interesante en el frequency domain
-
Compositionality
- el paper muestra que puede lograrse compositionality controlando la longitud del historial
- al usar noise as masking, existe la posibilidad de que el modelo decida por sí mismo cuándo ignorar historial innecesario y condicionar solo sobre un horizonte más corto
-
Non-causal version
- en este paper se usa Diffusion Forcing causal porque la causalidad es importante en toma de decisiones
- la idea de noise as masking también puede aplicarse a modelos non-causal
- si las entradas que la predicción no debería ver se enmascaran con pure Gaussian noise, se puede entrenar una versión non-causal y volverla causal en tiempo de muestreo
-
Alternative Guidance
- en el marco de toma de decisiones propuesto, se aplica guidance sobre la observación para mantener una configuración más cercana a Diffuser
- también se propuso una versión que aplica guidance sobre learned reward, pero no se exploró en el paper
-
Noise scheme
- los niveles de ruido independientes por token se diseñaron con el objetivo de ser generales, pero no necesariamente son óptimos para todas las tareas
- si los datos están muy correlacionados localmente en el eje temporal, podrían conservar demasiada redundancia
- esto puede afectar la relación global signal-to-noise
-
Next few token prediction
- solo en los experimentos de planning se usó next few token prediction; los experimentos de video siguen siendo de tipo next-token
- en la versión RNN no funcionó muy bien, pero en el código de la versión transformer funciona muy bien
- si “few” es muy grande en un modelo causal, next few token prediction puede generar inconsistencia
- en los modelos non-causal este fenómeno ocurre con menos frecuencia
-
Latent & DiT version
- después del lanzamiento se publicó una versión 3D U-Net de Diffusion Forcing
- Diffusion Forcing también puede aplicarse a un DiT causal o non-causal
- el esquema de estabilización encaja de forma más natural en un latent space con VAE
- la corrupción a nivel de píxel no necesariamente es Gaussian, pero la corrupción de los latents de un VAE puede acercarse más a una distribución Gaussian
Información de cita
@article{chen2025diffusion,
title={Diffusion forcing: Next-token prediction meets full-sequence diffusion},
author={Chen, Boyuan and Mart{\'\i} Mons{\'o}, Diego and Du, Yilun and Simchowitz, Max and Tedrake, Russ and Sitzmann, Vincent},
journal={Advances in Neural Information Processing Systems},
volume={37},
pages={24081--24125},
year={2025}
}
1 comentarios
Opiniones en Hacker News
Ese nivel de “incertidumbre” se trata como el nivel de “ruido” en un modelo de difusión, y el modelo, controlado por algún embedding, elimina ese ruido.
Con esto se pueden fijar algunas partes de una imagen antes que otras, por ejemplo para resolver laberintos. En el paper incluso muestran el control de un brazo robótico que mueve frutas, lo cual es bastante sorprendente.
El título, más bien, siento que subestima la idea. Como el nivel de enmascaramiento es un valor real, es una forma de hacer enmascaramiento parcial, y me parece una idea bastante profunda e interesante.
Dicho eso, el paper deja muchas cosas sin tratar, así que tengo mucha curiosidad por ver la base de código. No queda claro cómo configuran exactamente la tarea de seguimiento de laberintos y la de extensión de video, cómo conectan el brazo robótico con este modelo ni cómo le indican la tarea deseada. La arquitectura en sí también parece requerir varios papers o una explicación detallada.
Es potente porque convierte la tarea en una de longitud variable y, al mismo tiempo, obliga al agente a reflejar la situación actual en vez de darla por sentada. Así puede reaccionar mejor a lo largo del camino y generalizar incluso ante dificultades inesperadas.
Supongo que tratan todas las tareas como de horizonte variable y plantean el estado actual como resultado de acciones anteriores. Sería bueno ver el código.
https://github.com/buoyancy99/diffusion-forcing
Conozco cosas como Tree of Thoughts con búsqueda de árbol de Monte Carlo, y se parece en cierta medida, pero normalmente los objetivos aprendidos con recompensa son distintos, así que me interesa algo más cercano a la generación a nivel de tokens.
¿Es posible?
¿Cuál es el problema que intenta resolver? ¿Están proponiendo un nuevo modelo generativo?
Dicen que el nombre “Diffusion Forcing” viene de “teacher forcing” y “diffusion models”.