【Transformer 与注意力机制】47|Diffusion + Transformer:DiT 与 Sora 为什么用 Transformer

💡 原文中文,约14700字,阅读约需35分钟。
📝

内容提要

本文介绍DiT(扩散Transformer),用Transformer替代U-Net作为扩散模型去噪网络。DiT在潜在空间通过patchify和adaLN-Zero条件注入,以更少计算量取得更优FID,但U-Net经调优仍具竞争力。视频生成中,时空token数量爆炸,联合注意力成本随帧数平方增长,需用分解式注意力平衡效率与一致性。Sora架构细节未公开,且承认物理模拟等局限。

🔎

延伸解读

条件注入方式对生成质量影响巨大

DiT论文对比了四种条件注入方式,在相同计算量下,adaLN-Zero的FID(19.47)几乎是in-context(35.24)的一半。这说明条件信息如何进入网络并非无关紧要的细节,而是影响生成质量的关键设计。adaLN-Zero通过零初始化残差缩放,让每个block初始为恒等映射,借鉴了ResNet的初始化技巧,使得深层网络训练更稳定。

Gflops与FID相关,但“更大”不等于“更好”

DiT论文的核心结论是Gflops与FID强相关,但Gflops可以通过增加模型规模或减少patch size(增加token数)两种方式提升。固定模型规模,仅将patch size从8减到2,FID从106.41降至19.47,而参数量几乎不变。因此,衡量扩散模型复杂度应使用Gflops而非参数量,后者对分辨率、token数等因素不敏感。

U-Net并未被淘汰,架构之争仍在继续

DiT论文发表后,simple diffusion通过精调噪声调度和架构细节,使像素空间U-Net在无guidance下FID达到3.76,优于DiT-XL/2的9.62。这表明U-Net的归纳偏置在特定条件下仍有优势。实际工程中,Stable Diffusion 3采用MM-DiT纯Transformer路线,但U-Net在中等规模任务上仍具竞争力,架构选择取决于具体场景。

视频生成中,分解式注意力是效率与一致性的权衡

视频DiT若采用联合时空注意力,计算量随帧数平方增长(16帧时是单帧的256倍),而分解式注意力(先空间后时间)仅增长约17倍,但可能损伤时间一致性。Latte实验显示,堆叠过多空间注意力模块会导致帧间关系倒挂。Sora未公开架构细节,但承认长样本不连贯等局限,与分解式注意力的副作用方向一致。

Q&A

DiT(扩散Transformer)是什么?它和传统的U-Net扩散模型有什么不同?

DiT(Diffusion Transformer)是一种将Transformer作为扩散模型去噪网络的架构,用于替代传统的U-Net。它仍然遵循标准的扩散过程,从噪声逐步去噪,但用Transformer来预测噪声。DiT在潜在空间(latent space)中操作,通过patchify将图像切分成token,并采用adaLN-Zero条件注入方式,以更少的计算量(Gflops)获得更好的FID分数。与U-Net相比,DiT在同等计算预算下能取得更好的样本质量,但U-Net经过调优后仍具有竞争力。

DiT中adaLN-Zero条件注入方式是什么?为什么它比in-context和cross-attention效果更好?

adaLN-Zero是DiT中一种条件注入方式,它通过一个小MLP从时间步和类别嵌入回归出LayerNorm的缩放和偏移参数(γ, β)以及残差缩放参数α,其中α初始化为0,使得每个Transformer块在训练初期等价于恒等映射。相比in-context(将条件作为额外token拼接)和cross-attention(单独一层交叉注意力),adaLN-Zero在相同Gflops下取得了更低的FID(19.47 vs 35.24和26.14),因为零初始化有助于稳定训练,让网络可以堆叠得更深而不破坏信号。

DiT论文中Gflops与FID的关系是什么?为什么说“scaling不只是加参数”?

DiT论文发现,网络的Gflops与FID强相关,增加Gflops(无论是通过增大模型还是增加token数)都能降低FID。例如,固定DiT-XL模型,将patch size从8减小到2,token数从16增加到256,Gflops从7.4增加到118.6,FID从106.41降至19.47。这表明scaling不仅指增加参数,还包括增加token数,因此用Gflops衡量复杂度比参数量更合适。

DiT和U-Net在图像生成上的对比结果如何?U-Net是否被完全淘汰?

在ImageNet 256×256上,DiT-XL/2(118.6 Gflops)无guidance的FID为9.62,优于同计算量的LDM-4(104 Gflops,FID 10.56),且远优于像素空间U-Net ADM(1120 Gflops,FID 10.94)。但Hoogeboom等人的simple diffusion通过调优噪声调度和架构细节,像素空间U-Net在无guidance下FID达到3.76,优于DiT-XL/2。因此U-Net并未被淘汰,在中等规模任务上仍有优势,而DiT更适合大规模扩展。

视频生成中,为什么联合时空注意力成本会随帧数平方增长?分解式注意力如何解决?

视频生成中,token数随帧数线性增加,但联合时空注意力(joint spacetime attention)的计算量是O((FS)^2 d),其中F是帧数,S是每帧空间token数,因此相对单帧,计算量增长为F^2倍。例如16帧时,token数增加16倍,注意力计算量增加256倍。分解式注意力(factorized attention)将空间和时间注意力分开,先做空间注意力(每帧内),再做时间注意力(跨帧),总计算量为O(FS(S+F)d),相对单帧增长约17倍(16帧时),大幅节省计算。但分解式注意力可能损伤时间一致性,如Latte实验显示帧间相似度下降。

Sora的技术报告公开了哪些架构细节?它承认了哪些局限性?

Sora的技术报告公开了其使用视频压缩网络将视频压缩到低维潜在空间,并沿空间和时间切分为spacetime patch作为Transformer的token,从而能处理不同分辨率、时长和宽高比的视频和图像。但报告明确表示不包含模型和实现细节,如层数、宽度、注意力类型等。Sora承认的局限性包括:不能准确模拟基本物理交互(如玻璃破碎)、物体状态变化不正确(如进食)、长样本出现不连贯、物体突然出现等。

🏷️

标签

➡️

继续阅读