基于对角蒸馏的流式自回归视频生成 Streaming Autoregressive Video Generation via Diagonal Distillation
对角蒸馏实现31FPS实时视频生成,加速277倍
前置知识
扩散模型(Diffusion Models)
扩散模型是一类生成模型,通过两个过程工作:前向扩散过程逐步向数据添加高斯噪声,将其从真实分布逐渐扰动为纯噪声;反向去噪过程则学习从噪声中逐步恢复原始数据。在时间步t处,扰动样本服从 q_t(x_t|x) ~ N(alpha_t x, sigma_t^2 I)。分数函数定义为 s_real(x_t, t) = -(x_t - alpha_t * mu_real(x_t, t)) / sigma_t^2。采样通常需要数十到数百步迭代去噪,计算成本高昂。本文的核心目标就是加速扩散模型的采样过程,理解扩散模型的基本机制是理解对角蒸馏的前提。
本文的核心目标就是加速扩散模型的采样过程,理解扩散模型的基本机制是理解对角蒸馏的前提。
分布匹配蒸馏(DMD)
DMD是一种将多步扩散模型压缩为单步生成器的蒸馏方法。其核心思想是最小化生成分布与真实分布在扩散空间的KL散度。具体而言,通过匹配两个分布的分数函数来实现:梯度为负的期望值乘以真实分数与假分数之差再乘以生成器的雅可比。DMD还通常配合回归损失作为正则项。虽然DMD在图像生成中效果显著,但直接应用于视频时忽略了帧间时间一致性,这也是本文要解决的问题之一。
DiagDistill建立在DMD框架之上,扩展了其时间建模能力,理解DMD是理解本文技术贡献的基础。
自回归视频生成与暴露偏差
自回归视频生成模型按chunk逐步生成视频帧,每次以前序帧为条件预测下一组帧。暴露偏差指的是:训练时模型以干净的ground-truth帧作为条件,但推理时必须以自身生成的(可能有误差的)帧作为条件。这种训练-推理不匹配会导致误差随时间步累积,表现为后续帧质量下降、过度饱和等问题。Self-Forcing等方法试图在训练中使用模型自身生成的内容来缓解此问题,但仍无法完全解决长序列的质量衰减。
暴露偏差是本文要解决的核心问题之一,Diagonal Forcing机制正是针对这一问题提出的创新训练范式。
KV Cache机制
在Transformer架构中,Key-Value缓存是一种常用的推理优化技术。在自回归生成中,前序token的Key和Value矩阵可以在后续生成中复用,避免重复计算。在视频生成中,KV cache存储前序chunk的上下文信息,使后续chunk生成时能访问到之前的语义和视觉信息。滚动KV cache机制维护一个固定大小的缓存窗口(本文使用最近4个chunk约12帧),以恒定内存占用实现长视频生成。
Diagonal Forcing的核心设计之一就是将噪声帧的KV表示作为上下文传递给后续chunk,KV cache是实现这一机制的技术载体。
光流分布匹配
光流描述了视频中相邻帧之间像素的运动模式。光流分布匹配是本文提出的新损失函数,通过匹配教师模型和学生模型生成的视频在运动流场分布上的一致性来保持动态质量。本文使用轻量级可学习的运动特征提取模块直接在隐空间操作,避免依赖外部光流估计器。该模块由卷积层和MLP组成,学生版本可训练,教师版本通过EMA更新。
在极少步去噪中后期chunk的运动幅度会衰减,光流分布匹配是解决这一问题的关键技术。
研究动机
当前的视频生成领域面临一个核心矛盾:高质量的视频扩散模型需要双向注意力对所有帧同时去噪,无法支持流式实时生成;而自回归模型虽然天然适合逐chunk合成,但传统GPT风格AR模型的视觉质量有限。近年来的混合方法如Causvid和Self-Forcing将扩散过程融入AR框架,但每个chunk仍需多次去噪步骤,严重阻碍实时部署。例如原始Wan2.1模型生成5秒视频需要约103秒,吞吐量仅0.78 FPS,远低于实时播放所需的帧率。更严重的是,现有的视频蒸馏方法大多直接从图像蒸馏方法移植而来,忽略了视频特有的时间维度信息,导致在少步采样时出现运动连贯性下降、误差累积、过度饱和等问题。
本文的目标是本文旨在实现真正的实时流式视频生成,目标是将视频生成速度提升到实时甚至超实时水平(超过播放帧率),同时保持与全步模型可比的视觉质量和时间一致性。具体而言,研究团队希望在单张H100 GPU上实现超过30 FPS的生成速度,将首帧延迟压缩到毫秒级,并使该方法能够支持长达45秒甚至更长的视频生成,且质量不会随时间显著衰减。这些目标需要同时解决计算效率和生成质量两个维度的挑战。
与已有工作不同的是,本文的独特切入角度在于发现了自回归视频生成中的一个关键洞察:预测下一个chunk本质上需要隐式预测下一个噪声水平。这意味着如果早期chunk经过充分去噪建立了清晰的结构先验,那么后续chunk即使用更少的去噪步骤也能生成相对清晰的帧。基于此,本文提出了一个与现有方法正交的新思路:不再对所有chunk施加相同数量的去噪步数,而是为早期chunk分配更多步数逐步减少后续chunk的步数。这种非对称策略利用了自回归生成中上下文结构先验的时间递减特性,是现有方法从未探索过的维度。
核心方法
DiagDistill的整体思路可以分两个层次理解。直觉层面,在自回归视频生成中,第一个chunk承担了建立全局外观和运动结构的重任,需要大量去噪步骤来确保质量;而后续chunk已经有了清晰的前序帧作为条件,因此可以用更少的步骤就能获得不错的效果。技术层面,本文在DMD框架上进行三项核心扩展:对角去噪策略逐步递减各chunk的去噪步数,对角强制训练通过在训练时注入噪声帧模拟推理时的对角去噪轨迹,光流分布匹配确保少步生成时运动质量不衰减。三者协同工作在保持空间质量的同时维护时间一致性。
核心创新点与已有方法的本质区别在于时间维度上的非对称计算分配。现有方法如Causvid和Self-Forcing对所有chunk施加相同数量的去噪步骤,本质上是将图像蒸馏思路直接套用到视频上。DiagDistill的关键洞察是:在自回归框架中,早期chunk的去噪质量会通过KV cache传递给后续chunk,因此前期投入更多计算能产生乘数效应,后续chunk无需同等计算量就能获得高质量输出。具体实现上,对角去噪为前3个chunk分别分配5、4、3步,第4个chunk起统一使用2步。对角强制训练则在训练时从每个chunk的最终去噪状态注入高斯噪声作为下一个chunk的KV cache条件,使训练分布与推理分布对齐。
方法步骤详情
DiagDistill的完整方法步骤如下。第一步,基础阶段:对前4个chunk使用逐渐递减的去噪步数。对于每个chunk从高斯噪声出发使用对应的精馏模型进行去噪。在倒数第二步时调用CACHENOISYRESULT操作,对中间去噪状态添加噪声并计算其KV表示存入缓存。第二步,扩展阶段:使用固定的2步去噪,条件信号从前一个chunk的噪声状态导出。第三步,KV cache管理:使用滚动KV cache机制维护最近4个chunk的上下文,内存占用恒定17.5GB。第四步,训练目标:总损失为空间DMD损失加回归损失加光流DMD损失加光流回归损失的加权组合,同时优化空间保真度和时间动态一致性。
技术新颖性
DiagDistill的技术新颖性体现在三个层面。第一,对角去噪是一个全新的计算分配范式,此前所有视频蒸馏方法都对每个chunk使用相同步数,本文首次提出基于时间重要性的非对称分配策略。实验表配置4322222在34 NFE下实现31 FPS吞吐量和84.48总分,相比Self-Forcing的相同NFE配置实现了全面超越。第二,对角强制是一种统一的训练范式同时在时间维度和去噪步数维度上操作,通过在训练时显式模拟对角去噪轨迹直接弥合了训练与推理的分布差距。第三,光流分布匹配是首次在蒸馏框架中引入显式的时间动态建模,通过可学习的隐空间运动特征提取器匹配教师学生的运动流分布。
实验结果
本文在VBench基准上进行了全面评估,核心发现如下。第一,DiagDistill实现了277.3倍加速(相比原始Wan2.1),在单张H100 GPU上达到31 FPS吞吐量和0.37秒首帧延迟,生成5秒视频仅需2.61秒。第二,在质量上几乎无损:总分84.48对比原始模型84.26,质量分85.26对比85.30,语义分81.73对比80.09反而超越原始模型。第三,相比同为加速方法的Self-Forcing的149.3倍加速,DiagDistill在相同NFE预算34 NFE下实现1.53倍延迟降低和更高质量。第四,消融研究表明三个核心组件缺一不可:去掉对角强制后总分降至83.58,去掉光流损失后降至84.18,去掉对角去噪后降至84.46。第五,对角强制噪声步数在100步时达到最优。第六,长视频45秒评估中DiagDistill保持稳定质量,而Self-Forcing和Causvid出现明显的饱和失真和质量衰减。93人用户研究表明DiagDistill在所有对比中获得超过50%的偏好率,最高达66.1%。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 视频生成加速与质量 | 总分VBench | 84.48 | Self-Forcing 84.31 / Causvid 81.20 | 比Self-Forcing高0.17,比Causvid高3.28 |
| 视频生成吞吐量 | FPS | 31.0 | Self-Forcing 17.0 / Wan2.1 0.78 | 比Self-Forcing高1.82倍,比Wan2.1高39.7倍 |
| 视频生成首帧延迟 | Latency (s) | 0.37 | Self-Forcing 0.69 / Wan2.1 103 | 比Self-Forcing低46.4%,比Wan2.1低99.6% |
| 语义一致性 | Semantic Score | 81.73 | Self-Forcing 81.28 / Wan2.1 80.09 | 比Self-Forcing高0.45,比Wan2.1高1.64 |
| 视觉质量 | Quality Score | 85.26 | Wan2.1 85.30 / Self-Forcing 85.07 | 与Wan2.1持平仅差0.04,比Self-Forcing高0.19 |
| 相同NFE下的效率 | 延迟和FPS在34 NFE下 | 0.23s / 31.0 FPS | Self-Forcing 0.43s / 25.9 FPS | 延迟降低46.5%,FPS提高19.7% |
局限与改进
本文存在以下局限性。首先,模型基于Wan2.1-T2V-1.3B(1.3B参数)进行实验,尚未在更大规模模型上验证,模型规模的扩展性有待进一步探索。其次,所有实验在832x480分辨率下进行,更高分辨率如1080p或4K的表现未被评估。第三,流式生成的chunk大小固定为3帧,虽然这是通过消融确定的最优设置,但缺乏自适应chunk大小的机制。第四,对角去噪策略中的步数分配4322222是手动调优的,虽然消融表明单调递减是最优的,但自动化调度策略仍有探索空间。第五,光流分布匹配使用轻量级可学习模块提取运动特征,虽然避免了外部光流估计器的依赖,但其表达能力可能不如RAFT等专用光流模型。第六,KV cache窗口从6个chunk缩减到4个chunk虽然降低了延迟和内存,但继续增大窗口仍有微小的质量提升空间,存在一定的质量效率权衡。
独立分析的弱点
本文的一个明显弱点是步数分配策略相对简单且手动调优。虽然消融实验证明了单调递减是最优的,但4322222这种固定模式对于不同类型的内容可能不是最优的,慢速运动和快速运动场景可能需要不同的步数分配。改进方向可以是设计一个基于内容自适应的步数分配器,根据前序chunk的去噪难度动态调整后续chunk的步数。第二个弱点是光流分布匹配的特征提取器过于简单,仅使用两层卷积加MLP,虽然论文声称其计算开销几乎可忽略,但在处理复杂运动场景如多人交互快速旋转时可能无法充分捕捉运动细节。第三个弱点是17.5GB的内存占用对于移动端部署仍然偏高,可以探索KV cache压缩或量化技术来进一步降低内存需求。
未来方向
基于本文的成果有以下几个有前景的研究方向。第一,将对角蒸馏应用于更大规模的视频生成模型,探索该方法在模型规模扩展时的加速效果是否保持线性。第二,将对角去噪策略与模型架构优化结合,如结合Flash Attention和稀疏注意力等技术进一步降低单步计算成本。第三,将方法扩展到图像到视频和视频到视频任务,探索对角蒸馏在有条件生成中的适用性。第四,探索更长视频如分钟级别的生成稳定性。第五,研究自适应步数分配策略,可能通过一个小网络预测每个chunk所需的最优步数。第六,将动态提示能力与语言模型结合实现由AI驱动的长视频叙事生成。第七,将该方法应用于具身智能中的实时世界模型模拟。
复现评估
本文的可复现性较高。论文声明所有源代码、训练模型权重和配置文件将公开发布,且提供了详细的附录包含伪代码、超参数设置、训练细节和评估协议。具体而言,模型基于Wan2.1-T2V-1.3B公开模型进行蒸馏,训练数据来自VidProM数据集的过滤和LLM扩展版本,评估使用公开的VBench基准。所有速度测试在单张H100 GPU上进行,使用Tiny VAE进行tokenization。KV cache窗口大小、chunk大小、步数分配等关键参数均有明确记录。主要的复现挑战在于需要H100级别的GPU进行推理测试,DMD训练本身需要先训练一个假数据分数模型,消融实验较多完整复现需要较多算力。
论文图表
展示了Causvid框架中一个有趣的现象:当训练数据使用显式噪声帧作为条件时,下一个chunk的预测本质上等同于隐式的下一个噪声水平预测。图中显示即使使用单步预测,图像也会随着时间逐步变得更加清晰,暗示噪声水平的隐式预测在起作用。
这张图揭示了本文方法的理论基础,自回归视频生成中隐式噪声水平预测的存在是对角蒸馏设计的关键动机。
对比了6种方法在吞吐量FPS、首帧延迟、加速比、质量分、语义分上的表现。DiagDistill实现31 FPS、0.37秒延迟、277.3倍加速、85.26质量分、81.73语义分,在速度和质量上均优于或持平所有基线。
这是论文的核心定量结果表,全面对比了DiagDistill与现有SOTA方法的性能。
消融实验表格,对比了去掉对角强制、去掉光流损失、去掉对角去噪后的性能变化。去掉对角强制后总分降至83.58,去掉光流损失后降至84.18,去掉对角去噪后降至84.46。
定量验证了三个核心组件的必要性,每个组件对最终性能都有不可替代的贡献。
评估了6种去噪步数配置,7位数字表示各chunk的步数,展示了质量效率权衡。5333333质量最高达95.0/63.9/29.1需要46 NFE,4222222吞吐量最高达93.4/62.3/27.8仅需32 NFE达32 FPS,最终选择的4322222在34 NFE下实现31 FPS和接近最高质量的表现。
展示了不同步数分配策略的效果,验证了4322222作为最优权衡配置的合理性。
KV cache窗口大小从3帧到27帧的缩放分析。总分从80.9提升到84.5但12帧后出现边际递减。延迟从0.37秒增至0.68秒,内存从14.9GB增至21.8GB。最终选择12帧窗口达84.3分、0.46秒、17.5GB。
为KV cache窗口大小的选择提供了定量依据,展示了质量延迟内存的三维权衡。
在相同NFE预算下对比Diagonal Forcing和Self Forcing。所有配置下Diagonal Forcing都实现更低延迟和更高吞吐量。例如34 NFE时Diagonal达0.23秒和31 FPS对比Self的0.43秒和25.9 FPS,46 NFE时Diagonal达0.34秒和22.5 FPS对比Self的0.56秒和19.8 FPS。
证明Diagonal Forcing的优势不仅来自步数减少,还来自架构层面的优化如KV cache效率和注意力窗口等。
系统比较了三类步数分配策略:基线策略如5333333和4322222,强调早期帧的策略如5522222,非单调动态策略如4343232。结果表明单调递减策略最优,非单调策略不会带来一致性优势甚至可能损害运动质量。
为单调递减分配策略提供了全面的实证支持,排除了其他可能的分配方案。
对比chunk级别chunk size为3和帧级别chunk size为1的流式变体。Chunk级别达31 FPS、0.37秒延迟、277.3倍加速、84.48总分。帧级别达16.5 FPS、0.25秒延迟、412.0倍加速、84.29总分。Chunk级别在吞吐量和总分上更优。
为chunk大小的选择提供了依据,展示了chunk级别流式生成的优势。
对比Full VAE和Tiny VAE的参数量和解码速度。Full VAE有73.3M参数和1.67秒解码时间。Tiny VAE有9.84M参数和0.12秒解码时间,解码速度提升超过10倍。
展示了Tiny VAE在流式应用中的关键作用,消除了VAE解码瓶颈。
对比了7种运动特征提取器变体的效果。原始隐空间达92.5/60.8/27.8,隐空间差分达93.8/61.5/28.2,隐空间相关性达94.2/62.1/28.4,低频分量达93.5/61.8/28.1,高频分量达94.0/62.3/28.5,可学习MLP达94.6/63.2/28.7,可学习加卷积达94.9/63.4/28.9。最终选择的可学习加卷积变体在所有指标上最优。
为运动特征提取器的设计选择提供了全面的消融支持,展示了从简单差分到可学习模块的逐步改进。