利用虚拟头实现高效自回归视频扩散 Efficient Autoregressive Video Diffusion with Dummy Head
通过识别并压缩注意力中的虚拟头实现自回归视频扩散模型的无损加速
前置知识
自回归视频扩散模型
一种将视频生成分解为逐帧过程的模型,每个自回归步骤通过迭代去噪产生干净帧。与传统的双向注意力扩散模型不同,它支持流式生成和KV缓存机制,能够聚合历史帧的上下文信息。代表性工作包括Diffusion Forcing、Self Forcing和LongLive等。
本文针对这类模型的注意力机制进行分析和优化,理解其基本架构是理解全文的基础
多头自注意力机制
Transformer中的核心组件,将输入投影为Query、Key、Value三个向量,通过计算注意力分数来聚合信息。在视频扩散模型中,每个注意力头负责从历史帧(通过KV缓存)和当前帧中提取信息。多头设计允许模型在不同子空间捕获不同类型的依赖关系。
本文的核心发现就是分析多头注意力中不同头的行为模式,发现约25%的头几乎只关注当前帧
KV缓存
在自回归模型中,为避免重复计算,将历史步骤的Key和Value张量缓存起来的技术。在视频扩散中,KV缓存存储过去帧的特征,供后续帧在自注意力时查询使用。缓存长度随帧数线性增长,是推理效率的主要瓶颈之一。
本文提出的Dummy Forcing核心就是通过压缩KV缓存来加速推理
注意力头分类
本文发现不同注意力头在视频生成中扮演不同角色:Sink头主要关注首帧(全局锚点),Neighbor头关注邻近历史帧,Dummy头几乎只关注当前帧。这种异质性为有针对性的缓存压缩提供了理论基础。
理解这种头分类是理解Heterogeneous Memory Allocation和Dynamic Head Programming的关键
研究动机
自回归视频扩散模型在处理长视觉token序列时面临严重的效率挑战。随着缓存长度增加,计算复杂度显著上升,尤其在长视频或高分辨率视频生成任务中。现有方法通常采用滑动窗口策略限制注意力范围到最近帧,但模型内部对上下文帧的利用情况仍是未被充分探索的黑盒。具体而言,在Self Forcing等模型中,每个自回归步骤需要处理过去L帧的KV缓存,随着视频长度增加,这种计算开销会线性增长,导致生成速度难以满足实时需求。
本文的目标是本文的目标是深入分析自回归视频扩散模型中多头自注意力层对历史帧的利用效率,系统地识别出冗余的注意力头,并基于此设计一种无需额外训练的高效推理加速方法。具体而言,作者希望通过分析不同注意力头在视频帧间的注意力分配模式,找出那些几乎不利用历史信息的dummy heads,然后有针对性地压缩它们的KV缓存,从而在保持生成质量的同时实现显著的速度提升。
与已有工作不同的是,与现有方法不同,本文的独特切入点是在注意力头级别而非token级别进行分析和优化。作者发现约25%的注意力头(称为dummy heads)将超过80%的注意力权重分配给当前帧,即使有历史帧可用。更重要的是,这些dummy head的位置在不同条件(文本提示、自回归步骤、去噪时间步)下保持高度稳定,且移除它们的KV缓存仅导致0.26%的性能下降。这一发现为更激进的缓存压缩策略提供了理论基础。
核心方法
本文提出Dummy Forcing方法,包含三个核心组件。首先是Heterogeneous Memory Allocation(异质内存分配),根据头的类型分配不同的上下文长度:Sink头只看首帧和当前帧,Neighbor头看滑动窗口内的邻近帧,Dummy头只看当前帧。其次是Dynamic Head Programming(动态头规划),通过最大化信息保留目标和贪心算法,自适应地将每个注意力头分类到最优类型。最后是Packed Attention Forward(打包注意力前向),通过将Dummy头和Sink头的上下文打包在一起,实现更激进的压缩同时减少内核启动次数。
本文的核心创新在于发现了自回归视频扩散模型中存在大量dummy heads——这些头虽然在训练时被设计用于聚合上下文信息,但实际上几乎只关注当前帧。与现有方法在token级别进行压缩不同,本文在注意力头级别进行优化,利用这种异质性为不同类型的头分配不同的缓存策略。这种方法的独特之处在于:(1) 发现了模型预训练过程中学到的捷径——某些头专门用于当前帧精炼而非上下文聚合;(2) 利用头位置的稳定性实现了在线自适应分类;(3) 通过打包技术将多个头的上下文合并,减少了内核启动开销。
方法步骤详情
方法包含三个步骤:第一步,使用Heterogeneous Memory Allocation根据头类型分配不同的KV缓存长度。对于Sink头,只保留首帧和当前帧的KV缓存;对于Neighbor头,保留滑动窗口内的L-1个邻近帧;对于Dummy头,完全移除历史帧的KV缓存,仅保留当前帧。第二步,Dynamic Head Programming通过优化问题自动确定每个头的类型。具体地,计算每个头的帧注意力分数$[\alpha_{sink}, \alpha_{neighbor}, \alpha_{current}]$,然后通过贪心算法:计算$\ell_h = \max(F_{h,0}, F_{h,1})$得到强制为dummy头的机会成本,选择最小的N个作为dummy头,其余根据$F_{h,0}$和$F_{h,1}$的大小分为sink头或neighbor头。第三步,Packed Attention Forward通过将Dummy头和Sink头打包到同一注意力调用中,减少内核启动次数从3次到2次,同时通过添加打包帧$K_{i-1}$扩展dummy头的上下文。
技术新颖性
本文的技术新颖性体现在多个层面。首先,在分析层面,首次系统地揭示了自回归视频扩散模型中注意力头的异质性,发现约25%的头几乎不利用历史信息。其次,在方法层面,提出了头级别的缓存压缩策略,区别于现有方法的token级别压缩。第三,将头分类问题形式化为优化问题并给出贪心最优解,保证了分类的理论最优性。第四,Packed Attention Forward通过合并头类型减少了内核启动次数,这是一种巧妙的工程优化。最后,整个方法无需额外训练,直接应用于预训练模型,体现了极高的实用价值。
实验结果
实验结果验证了Dummy Forcing的有效性。在5秒短视频生成任务中,Self Forcing基线达到17.56 FPS和84.00的VBench总分,Dummy Forcing将其提升至24.30 FPS(1.4倍加速)同时保持83.90的总分,质量损失仅0.1%。在30秒长视频生成中,实现了1.4倍加速(24.30 FPS)。在高分辨率视频生成中,720P实现1.6倍加速,1080P实现2.0倍加速(从1.3 FPS到2.6 FPS)。在长上下文视频生成中,Dummy Forcing支持6.58倍的缓存长度,同时实现1.93倍加速(18.14 FPS),VBench得分69.48优于LongLive滑动窗口策略的68.45。与TeaCache组合后,达到30.5 FPS和1.7倍加速。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 5秒短视频生成 | FPS / VBench Total | 24.30 / 83.90 | 17.56 / 84.00 (Self Forcing) | 1.4倍加速,质量损失0.1% |
| 30秒长视频生成 | FPS / VBench-Long Total | 24.30 / 83.19 | 17.56 / 83.53 (Self Forcing) | 1.4倍加速,质量损失0.34% |
| 720P高分辨率生成 | FPS / Speedup | 9.1 / 1.6倍 | 5.6 / 1.0倍 (Self Forcing) | 1.6倍加速 |
| 1080P高分辨率生成 | FPS / Speedup | 2.6 / 2.0倍 | 1.3 / 1.0倍 (Self Forcing) | 2.0倍加速 |
| 长上下文视频生成 | FPS / Cache Length | 18.14 / 237帧 | 17.57 / 36帧 (LongLive w/ sw) | 1.93倍加速,缓存长度增加6.58倍 |
| 与TeaCache组合 | FPS / Speedup | 30.5 / 1.7倍 | 17.6 / 1.0倍 | 1.7倍加速,超过30 FPS |
局限与改进
本文存在一些局限性。首先,方法依赖于预训练模型中dummy heads的存在性,这一假设在其他类型的扩散模型或任务中可能不成立。其次,Dynamic Head Programming需要在线计算帧注意力分数来确定头类型,虽然作者采样了部分query token以降低计算开销,但仍引入了一定的额外开销。第三,Packed Attention Forward通过添加打包帧扩展了dummy head的上下文,这在一定程度上抵消了压缩收益。第四,实验主要在1.3B参数的Self Forcing和LongLive模型上验证,对更大规模模型的适用性需要进一步验证。第五,作者提到25%的头是dummy heads时性能几乎无损,但当超过2/3时性能显著下降,这表明压缩上限可能受限于模型结构。
独立分析的弱点
本文存在几个值得改进的弱点。首先,头分类策略是基于在线计算的帧注意力分数,这需要在每个自回归步骤中计算近似注意力图,增加了推理延迟。可以考虑离线统计头行为模式或使用轻量级分类器替代。其次,当前的三类头划分(Sink、Neighbor、Dummy)相对粗糙,可能存在更细粒度的分类方案,例如区分不同类型的历史依赖模式。第三,Packed Attention Forward虽然减少了内核启动次数,但打包帧的选择策略(固定使用i-1帧)可能不是最优的,可以根据头特性动态选择打包帧。第四,方法目前只应用于视频生成任务,在视频理解、视频编辑等其他任务中的适用性需要探索。
未来方向
基于本文成果,可以延伸出多个未来研究方向。首先,探索自动化的头类型发现机制,无需依赖预设的三类分类,而是根据数据自适应地发现最优的头分组。其次,将Dummy Forcing与模型蒸馏、量化等其他加速技术结合,探索多技术协同的极限加速方案。第三,研究dummy heads的形成机制,理解为什么某些头在训练过程中学会只关注当前帧,这可能对模型设计和训练策略有重要启示。第四,将方法扩展到多模态扩散模型,例如文本-图像或文本-音频生成。第五,探索在模型微调阶段显式地鼓励或抑制dummy head的形成,以获得更适合加速的模型结构。
复现评估
本文的复现性较好。作者提供了项目主页(https://csguoh.github.io/project/DummyForcing/),代码和实现细节应该可获取。实验基于公开的Self Forcing和LongLive模型,这些都是开源的预训练模型。评测使用标准的VBench和VBench-Long基准,结果可比较。主要挑战在于:(1) 需要H100 GPU进行性能测试;(2) Triton内核优化需要一定的工程经验;(3) 在线头分类的实现细节(如query token采样比例)需要仔细调参。总体而言,方法原理清晰,核心算法(贪心头分类)实现简单,复现难度中等。
论文图表
展示了现有自回归视频扩散模型(如Diffusion Forcing、Self Forcing)中多头注意力的上下文利用情况。图中用热力图显示不同头对历史帧和当前帧的注意力分布,发现约25%的头(dummy heads)将超过80%的注意力分配给当前帧。右侧演示了简单移除这些dummy heads的KV缓存后,性能仅下降0.26%(84.0 vs 83.78),同时推理速度从17.6 FPS提升到19.6 FPS。
这张图直观地揭示了本文的核心发现——自回归视频扩散模型中存在大量不利用历史信息的dummy heads,为后续方法设计提供了关键动机
包含四个子图:(a)-(c) 展示所有头在Sink、Neighbor、Current帧上的注意力分数分布,发现约25%的头在Current帧上的注意力超过80%;(d) 展示dummy head位置在不同条件(文本提示、自回归步骤、去噪时间步)下的稳定性,92%的头索引在所有条件下保持一致。
这些观察实验为dummy head的存在性、稳定性和可压缩性提供了定量证据,是方法可行性的关键支撑