Diffusion Forcing
Diffusion forcing 训练因果模型对序列中的 token 去噪,每个 token 都带有自己的噪声级别,以实现稳定的长视频推演和规划。
扩散强制是一种序列生成器训练方法:序列中的每个词元,例如视频帧或机器人动作,都会获得独立采样的噪声等级;因果模型则学习根据部分带噪的历史内容对每个词元去噪。用这种方式训练出的单个模型,既可以像大型语言模型(LLM)预测下一个词元一样逐步生成序列,也可以像完整序列扩散模型一样将整个未来引导至目标方向。MIT 的 Boyuan Chen、Diego Martí Monsó、Yilun Du、Max Simchowitz、Russ Tedrake 和 Vincent Sitzmann 于 2024 年 7 月提出了这一方法,并发表论文 Diffusion Forcing: Next-token Prediction Meets Full-Sequence Diffusion,该论文发表于 NeurIPS 2024。
将噪声视为部分遮蔽#
教师强制训练自回归模型,让它根据干净的真实历史内容预测下一个词元;因此在生成时,模型第一次遇到的是自己不完美的输出,长时间的视频生成过程会因错误累积而逐渐偏离。完整序列扩散会在同一个噪声等级下对所有帧一起去噪,虽然支持引导,但序列长度固定,而且无法在中途根据新观测作出调整。
扩散强制将噪声视为部分遮蔽:干净词元完全可见,纯噪声会将其完全隐藏,而两者之间的每个等级都会隐藏其中一部分。对每个词元使用独立噪声等级进行训练,能让单个模型一次学会所有组合,包括历史帧干净、下一帧完全带噪的情况(即下一个词元预测),以及每一帧噪声相同的情况(即完整序列扩散)。论文证明,这个目标可以优化所有子序列似然的变分下界。其参考实现 Causal Diffusion Forcing 使用循环神经网络的隐藏状态总结带噪历史;作者后来还发布了 Transformer 版本。
采样调度#
由于任意噪声等级组合都属于分布内,生成过程可以按照去噪轮次和帧构成的二维调度进行。论文中的之字形调度会让每帧的去噪开始时间比前一帧稍晚:
import torch
torch.manual_seed(0)
frames, levels = 5, 4 # a 5-frame clip; noise levels run from 0 (clean) to 4 (pure noise)
# Training: every frame gets its own random noise level, so any mix of clean and noisy frames is seen
print("Training noise levels:", torch.randint(0, levels + 1, (frames,)).tolist())
# Sampling with a zig-zag schedule: each row is one denoising pass over all frames, and frame i
# starts denoising i passes after frame 0, so the near future is always cleaner than the far future
for step in range(levels + frames):
row = [min(max(levels - step + i, 0), levels) for i in range(frames)]
print(f"pass {step}: {row}")训练示意行会为一个片段绘制诸如 [4, 4, 3, 0, 3] 这样的等级组合,这种组合既不是教师强制也不是完整序列扩散所使用的。调度中,第 0 轮为纯噪声;到第 4 轮时,第一帧已经干净,而第五帧仍然完全带噪;经过 8 轮后,片段生成完成。论文在规划任务中使用这种形式,因为它将近期未来视为比远期未来更确定。
长时间生成过程还会用到另一个技巧。对每个新帧进行条件化时,使用之前生成帧的轻微带噪副本,而不是干净副本,可以让模型更能容忍自身的小错误。在 DMLab 导航数据集上,使用 36 帧片段训练的模型可以连续生成 2,000 帧而不发散,基线模型则会发散。
引导、规划与机器人#
完整序列引导同样适用:在采样过程中,奖励或目标可以引导带噪的未来帧。论文中的蒙特卡洛引导会生成多个可能的未来,并对引导梯度求平均;该方法改善了强化学习研究中使用的迷宫规划任务结果。在机器人方面,作者使用模仿学习训练真实机械臂交换两种水果的位置,并借助第三个空位完成操作。由于水果最初随机放置在不同位置,这项任务需要记忆。扩散强制的成功率为 80%,而不具备记忆能力的 Diffusion Policy 无法完成任务;即使加入视觉干扰,甚至完全遮挡摄像头,它的成功率仍达到 76%,而将受损帧视为真实数据的下一帧扩散基线只有 48%。同一个模型还可以处理时间序列预测。
视频模型中的扩散强制#
MIT 团队提出的扩散强制 Transformer(DFoT)源自 2025 年 2 月发表的 History-Guided Video Diffusion,可根据任意数量的过去帧进行条件化,并将这些历史帧用作引导信号。Skywork AI 于 2025 年 4 月发布的 SkyReels-V2,会将预训练的完整序列视频模型微调为扩散强制模型,其噪声等级从一帧到下一帧只增不减,因此视频可以逐块延长。预测场景在AI 智能体的操作下如何演变的视频世界模型,也需要同样稳定的因果生成过程。长序列生成能否保持对象一致性,可以通过对象跟踪来衡量:Ultralytics YOLO26的跟踪模式会为每个检测到的对象分配一个跨帧持续不变的 ID,因此,如果一辆汽车在生成片段中始终保有同一个跟踪 ID,就说明它的身份保持一致。










