← 返回题目列表

什么是 DiT(Diffusion Transformer)?它和 Sora 有什么关系?

高频 困难 第 18 / 25 题 更新于 2026/09/25
DiTDiffusion TransformerSora视频生成
学习 AI 实战项目

简化版

DiT(Diffusion Transformer) 用 Transformer 取代经典扩散 U-Net 的主要去噪骨干:把潜变量切成 patch token,并在原始类别条件实验中用 adaLN-zero 注入时间步和类别。论文观察到增加模型计算量与降低 FID 高度相关,说明这种骨干具有良好的规模扩展趋势,但这不等于任意数据和预算下“加算力必然变好”。Sora 同样在压缩视频的时空 patch 上训练扩散 Transformer,可视为这条架构路线向视频的规模化发展;公开资料不足以把它的每个内部模块都等同于原始 DiT。

详细版

DiT 的核心改动

  1. 图像 → token 序列:在潜空间把 z(如 32×32×4)切成 patch,每个 patch 线性投影成一个 token,加位置编码,得到一串 token。
  2. Transformer 去噪:用标准 Transformer block(自注意力 + FFN)处理这串 token,预测每个 patch 的噪声。
  3. 条件注入用 adaLN-zero:把时间步 t、类别/文本条件编码后,生成 LayerNorm 的缩放/偏移参数(以及残差的缩放门控),且零初始化,让每个 block 初始等价于恒等映射,训练稳定。

为什么重要:可扩展性

  • U-Net 具有多尺度卷积与跳连等归纳偏置,扩大规模时需要同时设计通道、分辨率和注意力位置;重复 Transformer Block 的扩展路径相对规则。
  • DiT 实验显示,在其 ImageNet 设置和所比较的模型族内,较高 Gflops 与较低 FID 相关。它提供了有价值的经验趋势,但不是已经证明适用于所有任务的通用 Scaling Law。

Sora 的关键点

  • 时空 patch(spacetime patches):把视频看成时间×空间的三维数据,切成时空块当 token,Transformer 统一处理。
  • 潜空间压缩:先用视频压缩网络把视频压到时空潜表示,再在潜空间做扩散(Latent Diffusion 思想的视频版)。
  • 原生支持可变时长/分辨率/宽高比:token 序列长度灵活,可训练不同规格的视频,还能做变长生成。
  • 规模化表现:模型能生成较连贯的场景和运动,但仍会违反物理、混淆物体状态;“世界模型”是能力讨论,不是已证明具备物理理解。

完整版教学

一、动机:为什么要把 U-Net 换掉

U-Net 在扩散里很成功,但它有「结构负担」:多尺度下采样、跳连、卷积 + 若干注意力,是一个手工设计、归纳偏置很重的架构。这带来两个问题:

  • 不好扩展:把 U-Net 放大到几十亿参数时,结构里的各种设计选择(在哪加注意力、通道怎么涨)都要重调,缺乏 Transformer 那种「照着一个 block 堆下去就行」的干净可扩展性。
  • 难以统一多模态:语言、图像、视频若都用 Transformer,就能共享一套工程、经验和 Scaling 规律。

DiT(Peebles 与 Xie)的核心问题是:能否像 ViT 那样,用规则的 Transformer 骨干完成潜空间扩散去噪,并研究模型大小与计算量的扩展趋势。论文在其 ImageNet 基准上得到有竞争力的结果;这支持该架构路线,但不能推出 DiT 在任意数据、延迟或参数预算下都优于 U-Net。

二、DiT 怎么把图像变成 token

沿用 ViT 的 patch 化思路,但作用在潜空间(省算力):

  1. VAE 把图像压成潜表示 z(如 256×256 图 → 32×32×4 潜图)。
  2. 把 z 切成 p×p 的 patch(如 2×2),每个 patch 展平后线性投影成一个 D 维 token。
  3. 加位置编码,得到 token 序列,长度 = (32/2)² = 256。
  4. 送入 L 层 Transformer block,输出每个 token 的噪声预测,再拼回潜图形状。

patch 大小 p 是关键旋钮:p 越小 → token 越多 → 计算越贵但越精细。

三、adaLN-zero:DiT 注入条件的巧思

DiT 处理的条件是「时间步 t + 类别/文本」,这类全局条件用 adaLN(adaptive LayerNorm) 注入最合适:

  • 把条件编码成向量,用一个小 MLP 回归出每个 Transformer block 里 LayerNorm 的缩放 γ 和偏移 β,以及自注意力/FFN 残差前的缩放门控 α。
  • 特征先 LayerNorm,再 γ·x + β 调制,残差乘 α。条件由此调制每一层的行为。

为什么加 “zero”:把调制 MLP 的输出层零初始化,使训练开始时残差门控为 0,各 DiT Block 的残差更新初始不改变输入。这样深层网络从近似恒等的残差路径开始优化。原论文在类别条件 ImageNet 实验中发现 adaLN-zero 优于所比较的 in-context 与 cross-attention 变体;文本生成模型仍可能需要交叉注意力或联合文本—图像注意力,不能跨条件形式照搬排名。

把三处「零初始化」串起来记:DiT 的 adaLN-zero、ControlNet 的零卷积、扩散残差常用的零初始化——都是「让新模块开局零影响、再让梯度把它慢慢养大」,这是稳定训练大生成模型的通用招式。

四、DiT 的关键实验:计算量与 FID 的扩展趋势

DiT 论文系统改变层数、宽度与 patch 大小,观察到在所测模型族中,较高前向计算量通常对应更低 FID;较小 patch 同时增加 token 数与计算量。这个结果说明 Gflops 比单看参数量更能解释其实验质量变化,也表明 Transformer 去噪骨干可以平滑扩展。

它仍不是“只堆算力就够”的承诺:数据规模与质量、训练步数、优化配方、条件编码和采样器都会改变结果,FID 也只覆盖分布质量的一部分。SD3 的 MMDiT、PixArt 系列和视频扩散 Transformer 都沿用了 patch/token 化思想,但条件交互和网络模块并不等同于原始 DiT。

五、Sora:把 DiT 搬到视频

Sora 是 DiT 思路在视频上的规模化延伸,几个要点:

  1. 视频潜空间压缩:先训一个视频压缩网络,把视频在空间和时间上同时压缩成时空潜表示,扩散在这个潜空间进行(Latent Diffusion 的视频版)。
  2. 时空 patch(spacetime patches):把时空潜表示切成三维块,每块当一个 token。这样图像(单帧)不过是「一帧的视频」,Sora 用同一套 token 化统一了图像和视频。
  3. 可变时长/分辨率/宽高比:公开报告描述了在原始尺寸数据上训练,并以不同排列的时空 patch 表示不同视频规格。可变 token 网格提供了统一接口,但不应单因果地断言它决定了画质和构图。
  4. 规模化涌现:DiT + 海量视频 + 大算力,Sora 展现出较强的时空一致性、镜头连贯和一定的物理/世界直觉(但仍会违反物理、出现穿模等错误,说明它是数据驱动的近似,而非真正的物理引擎)。

六、算清 Patch 化后的序列长度

一张 256×256 的潜空间特征图若空间尺寸为 32×32,用 2×2 patch 切分会得到 16×16=256 个 token;若直接把分辨率翻倍到 512×512,潜空间变为 64×64,同样 patch 下 token 数变成 1024。全局注意力的位置对从 256²=65,536 增到 1024²=1,048,576,放大 16 倍。

扩展轴token 数变化主要压力
空间分辨率翻倍约 4 倍注意力约 16 倍
视频帧数翻倍约 2 倍时空注意力约 4 倍
Patch 边长翻倍约降至 1/4细节分辨率下降
256px -> 256 tokens -> 65,536 attention pairs
512px -> 1024 tokens -> 1,048,576 attention pairs

DiT 的优势是可复用 Transformer 的规模化训练、条件注入和并行经验,但视频模型还要处理时间一致性和巨大 token 序列。实际架构常用时空分解、窗口化或潜空间压缩控制成本,不能把“换成 Transformer”理解为自动解决长视频计算。

七、常见误区与追问

  • 误区:DiT 是全新的扩散理论。 不是,扩散的数学(加噪、预测噪声、采样)完全不变,DiT 只是把去噪网络从 U-Net 换成 Transformer。
  • 误区:Sora 是”世界模型/物理引擎”。 它是数据驱动的生成模型,有一定世界一致性但会犯物理错误,不等于真的理解物理。
  • 追问:DiT 相比 U-Net 的主要优势? 可扩展性强(清晰的 Scaling Law)、结构统一简洁、易于放大和跨模态复用。
  • 追问:adaLN-zero 为什么比交叉注意力好(在 DiT 里)? 对「时间步+类别」这种全局条件,adaLN 调制更高效稳定;零初始化保证训练平滑。(文生图里对文本这种序列条件仍常配合交叉注意力/更长 token 拼接。)
  • 追问:Sora 怎么支持不同时长和分辨率? 时空 patch 让序列长度可变,可在原生尺寸上训练与生成。
  • 追问:DiT 的计算瓶颈? 自注意力对 token 数是 O(N²),视频 token 极多,故需潜空间压缩、较大 patch、以及高效注意力来控成本。

八、加强记忆

DiT 记「潜变量 patch 化、Transformer 去噪、条件调制、规模实验」:原始 DiT 用 adaLN-zero 注入时间与类别条件,并在其基准上展示计算量增加时 FID 改善的趋势。Sora 记「压缩视频、时空 patch、扩散 Transformer、可变视频规格」;它属于同一技术路线,但公开信息不足以把内部结构与原始 DiT 逐层画等号。最后守住边界:扩展趋势不是“只堆算力必胜”,架构、数据、优化、采样和评测仍需共同验证。