- Diffusion Forcing est une méthode de génération de séquences qui apprend un niveau de bruit de diffusion différent pour chaque token, afin de pouvoir être utilisée au moment de l’échantillonnage à la fois comme un modèle next-token et comme un modèle de diffusion full-sequence
- En interprétant le bruit de diffusion comme du masking, il est possible de garder les tokens passés propres et de ne laisser que les tokens futurs dans un état bruité, ou de répartir différents niveaux de bruit sur l’ensemble de la séquence
- Dans la prédiction vidéo sur DMLab et Minecraft, teacher forcing diverge facilement et la diffusion full-sequence causale souffre d’une cohérence instable, tandis que Diffusion Forcing produit des prédictions plus stables
- Pour la prise de décision et la planification, les tokens sont définis comme [a_t, o_{t+1}] afin de modéliser ensemble l’action et l’observation qui suit, avec des niveaux de bruit différents pour le futur proche et le futur lointain
- Des rollouts longs au-delà de la longueur d’entraînement sont aussi possibles : DMLab génère plus de 2000 frames après un entraînement sur 36 frames, et Minecraft plus de 2000 frames après un entraînement sur 72 frames, sans sliding window
Structure clé de Diffusion Forcing
- Le nom Diffusion Forcing vient de teacher forcing et des diffusion models
- L’objectif est de combiner, dans un même paradigme d’apprentissage, les avantages des modèles autorégressifs next-token et des modèles de diffusion full-sequence
- Avantage des modèles next-token : génération de longueur variable
- Avantage des modèles de diffusion full-sequence : guidance au niveau de la séquence pour orienter l’échantillonnage vers une trajectoire souhaitée
- Un modèle entraîné une seule fois peut être utilisé différemment au moment de l’échantillonnage
- génération flexible et compositionnelle comme un modèle next-token
- application d’une guidance sur l’ensemble de la séquence comme un modèle de diffusion full-sequence
Bruit par token et « bruit comme masking »
- Diffusion Forcing apprend une diffusion de séquence dans laquelle chaque token peut avoir un niveau de bruit différent
- Le bruit de diffusion peut être vu comme un masking de différentes intensités
- diffusion full-sequence : toutes les frames sont denoise en une fois au même niveau de bruit
- prédiction next-token : les tokens passés restent à bruit nul et la frame suivante est denoise une par une
- En modifiant la distribution du bruit au sein de la séquence pendant l’échantillonnage, on peut obtenir plusieurs comportements
- stabilisation des rollouts autorégressifs
- guidance sur un horizon long
- planification avec causal uncertainty
Propriétés théoriques
- Il est démontré que Diffusion Forcing optimise une borne variationnelle inférieure sur toutes les likelihoods de sous-séquences des tokens échantillonnés depuis la vraie distribution jointe
- Cette propriété montre que l’objectif d’apprentissage est lié non seulement aux performances empiriques, mais aussi à la likelihood de l’ensemble des sous-séquences
Résultats en prédiction vidéo
- Les résultats utilisent des vidéos synthétisées directement par le modèle, sans VAE ni superresolution
- Il est précisé que les résultats ont été échantillonnés sans cherry-picking
- Sur le dataset DMLab, la différence entre les trois approches est nette
- teacher forcing diverge facilement
- le modèle de diffusion full-sequence causal présente de graves problèmes de cohérence
- Diffusion Forcing obtient une prédiction vidéo stable et cohérente
- Le même schéma apparaît sur le dataset Minecraft
- teacher forcing diverge facilement
- le modèle de diffusion full-sequence causal souffre de graves problèmes de cohérence
- Diffusion Forcing génère des prédictions stables et cohérentes
Rollouts vidéo longs au-delà de la longueur d’entraînement
- Diffusion Forcing peut produire des rollouts vidéo bien plus longs que la longueur maximale de séquence vue à l’entraînement
- Ces rollouts sont réalisés sans sliding window
- dans le rollout RNN, le latent
z n’est pas réinitialisé vers le latent initial z0
- l’effet de stabilisation apparaît avec Diffusion Forcing
- Résultats DMLab :
- entraînement sur 36 frames
- rollout possible sur plus de 2000 frames
- sans sliding window
- la résolution du dataset d’origine est de 64x64
- la qualité vidéo a baissé à cause de la compression mp4 des longues vidéos, et une visualisation en PNG est aussi fournie pour refléter la qualité de génération d’origine
- Résultats Minecraft :
- entraînement sur 72 frames
- rollout possible sur plus de 2000 frames sans divergence
- sans sliding window
- la résolution du dataset d’origine est de 128x128
- dans certains scénarios, l’agent s’arrête devant un bloc de dirt ou de stone de deux blocs de haut jusqu’à changer de direction, ce qui est présenté comme un problème intrinsèque à la collecte du dataset
Diffusion Planning
- Comme dans des travaux antérieurs tels que Diffuser, il est possible d’utiliser une guidance au moment du test pour exploiter la séquence de diffusion comme planificateur
- Diffusion Forcing définit chaque token comme [a_t, o_{t+1}] afin de modéliser explicitement les relations causales
- il conserve une croyance sur l’action à effectuer
- il conserve aussi une croyance sur l’observation que cette action produira
- lorsqu’une nouvelle observation arrive après l’action, cette croyance peut être mise à jour par estimation du posterior
- Diffusion planning process video visualise le processus de planification de Diffusion Forcing comme cadre de prise de décision
- Pour modéliser la causal uncertainty du futur, on peut utiliser un faible niveau de bruit pour le futur proche et un niveau de bruit élevé pour le futur lointain
Imitation learning à long horizon
- De nombreuses tâches réelles ne sont pas markoviennes et nécessitent une mémoire de long horizon pour être accomplies
- Dans une tâche robotique réelle, le bras robotique doit utiliser le troisième slot pour échanger les positions de deux fruits
- les fruits sont placés dans des slots aléatoires au départ
- une seule observation ne permet pas de connaître la disposition initiale des fruits, donc elle ne suffit pas à décider de l’étape suivante
- Dans l’expérience de planning, la guidance est retirée et la diffusion porte conjointement sur la séquence action-observation afin d’assurer un feedback control
- La vidéo présentée montre plusieurs succès consécutifs avant qu’un échec ne survienne
- le robot peut accomplir la tâche même si la position des fruits a été randomisée par l’exécution précédente
- Pour être robuste à des distractions inédites au moment du test, on peut le prompt pour traiter les observations entrantes comme des noisy observations
- l’exemple donné consiste à jeter aléatoirement un sac de courses dans le champ de vision comme méthode de distraction
Mise à jour 2025 : Scaling Up Diffusion Forcing
- Dans la mise à jour 2025, le modèle state-of-the-art Wan2.1-T2V-1.3B est finetune pendant seulement 20k steps et 49 frames
- Ensuite, il génère de manière stable jusqu’à 217 frames avec un rollout 5x plus long
- Les travaux suivants sont disponibles dans History-Guided Video Diffusion
- Les vidéos d’exemple incluent des vagues au coucher du soleil, un singe sur un rocher, un chien se préparant à dormir, une vue aérienne de plage tropicale, une scène de surf et une scène de vélo en montée
Pistes de recherche futures
-
Conditioning
- lorsqu’on étend à de longues séquences, le conditionnement par remplacement est souvent utilisé
- « Video Diffusion Models » de Johnathan Ho explique pourquoi cette approche est problématique
- Diffusion Forcing propose un mode de conditionnement plus naturel, où les context tokens restent propres et les future tokens sont bruités, mais ce point n’a pas été exploré en détail
-
Noise as masking
- cette approche réalise un masking fractionnaire des tokens plutôt qu’un masking binaire
- elle est suffisamment générale pour être intégrée à des méthodes d’apprentissage auto-supervisé comme MAE
- l’ajout de bruit admet aussi une interprétation intéressante dans le frequency domain
-
Compositionality
- l’article montre qu’il est possible d’obtenir de la compositionality en contrôlant la longueur d’historique
- avec noise as masking, le modèle pourrait apprendre à décider lui-même quand ignorer un historique inutile et ne conditionner que sur un horizon plus court
-
Non-causal version
- dans cet article, la causalité est importante pour la prise de décision, donc une version causale de Diffusion Forcing est utilisée
- l’idée de noise as masking peut aussi s’appliquer aux modèles non causaux
- en masquant les entrées que la prédiction ne doit pas voir avec un bruit gaussien pur, on peut entraîner une version non causale et la rendre causale au moment de l’échantillonnage
-
Alternative Guidance
- dans le cadre de prise de décision proposé, la guidance est appliquée aux observations afin de rester plus proche du cadre de Diffuser
- une version appliquant la guidance à une reward apprise a aussi été proposée, mais n’a pas été explorée dans l’article
-
Noise scheme
- des niveaux de bruit indépendants par token ont été conçus pour maximiser la généralité, mais ce n’est pas forcément optimal pour toutes les tâches
- si les données sont très corrélées localement sur l’axe temporel, cela peut conserver trop de redondance
- cela peut affecter le signal-to-noise ratio global
-
Next few token prediction
- la prédiction des next few tokens n’a été utilisée que dans les expériences de planning, tandis que les expériences vidéo restent en mode next-token
- cela ne fonctionnait pas très bien dans la version RNN, mais cela marche très bien dans le code de la version transformer
- si « few » devient trop grand dans un modèle causal, la prédiction des next few tokens peut créer de l’incohérence
- ce phénomène est moins marqué dans les modèles non causaux
-
Latent & DiT version
- après la publication, une version 3D U-Net de Diffusion Forcing a été rendue publique
- Diffusion Forcing peut aussi s’appliquer à des DiT causaux ou non causaux
- le schéma de stabilisation s’accorde plus naturellement à un espace latent avec VAE
- la corruption de pixels n’est pas nécessairement gaussienne, mais la corruption des latents d’un VAE peut être plus proche d’une gaussienne
Informations de citation
@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 commentaires
Commentaires sur Hacker News
Ce niveau d’« incertitude » est traité comme le niveau de « bruit » d’un modèle de diffusion, et le modèle, contrôlé par un certain embedding, supprime ce bruit.
Cela permet de fixer certaines parties d’une image avant d’autres, ce qui peut par exemple servir à résoudre un labyrinthe. L’article va jusqu’à montrer le contrôle d’un bras robotique déplaçant des fruits, ce qui est assez impressionnant.
Le titre donne même l’impression de sous-estimer l’idée. Comme le niveau de masquage est une valeur réelle, c’est une méthode de masquage partiel, et je trouve l’idée assez profonde et intéressante.
Cela dit, beaucoup d’aspects ne sont pas traités dans l’article, donc la base de code m’intrigue beaucoup. On ne voit pas clairement comment les tâches de suivi de labyrinthe et d’extension vidéo sont exactement configurées, ni comment le bras robotique est relié à ce modèle et comment on lui indique la tâche voulue. L’architecture elle-même semble nécessiter plusieurs articles ou une explication détaillée.
Le fait de transformer les tâches en longueur variable tout en forçant l’agent à prendre en compte la situation actuelle, au lieu de la considérer comme acquise, est puissant. Ainsi, même face à des difficultés inattendues, il peut mieux réagir le long du chemin et mieux généraliser.
Je suppose que toutes les tâches sont traitées comme ayant un horizon variable, avec l’état courant posé comme résultat des actions précédentes. Ce serait bien de voir le code.
https://github.com/buoyancy99/diffusion-forcing
Je connais des approches comme Tree of Thoughts avec recherche arborescente de Monte-Carlo, et c’est assez similaire dans une certaine mesure, mais les objectifs appris via récompense sont souvent différents ; je m’intéresse donc à une approche plus proche de la génération au niveau des tokens.
Est-ce possible ?
Quel est le problème qu’il cherche à résoudre ? Propose-t-il un nouveau modèle génératif ?
le nom « Diffusion Forcing » viendrait de « teacher forcing » et des « diffusion models ».