概述

UNet 和 Transformer 是扩散模型去噪网络的两种主要架构选择。尽管 UNet 在扩散模型领域长期占据主导地位,但 DiT (Diffusion Transformer) 的出现挑战了这一范式。

本文件从理论角度深入分析两种架构的差异,解释为什么 Transformer 在扩散模型中表现出色。12


1. 架构归纳偏置对比

UNet 的归纳偏置

UNet 是一种编码器-解码器架构,具有以下特征:

归纳偏置描述优势劣势
局部性卷积核感受野有限高效处理局部模式长程依赖需多层堆叠
平移不变性权重共享参数高效对位置不敏感
多尺度编码器下采样 + 解码器上采样捕获多尺度特征结构复杂
跳跃连接保留细粒度信息保留细节梯度流复杂

Transformer 的归纳偏置

DiT 基于 Vision Transformer (ViT),具有不同的特征:

归纳偏置描述优势劣势
全局注意力所有位置两两交互自然建模长程依赖计算量 O(N²)
弱归纳偏置数据驱动学习灵活性高需要更多数据
序列建模图像视为 token 序列与 NLP 统一丢失局部结构
位置编码显式编码位置可控的位置建模需要精心设计

关键理论洞察

直觉:扩散模型需要建模全局一致性(如物体结构、空间关系),而不仅仅是局部纹理。Transformer 的全局注意力天然适合这种需求。


2. 表达能力理论分析

理论框架

设去噪网络需要建模的函数为

UNet 的表达能力

UNet 通过多尺度特征提取来增加感受野:

其中 是层数, 是卷积核大小。

问题:即使有 18 层的 UNet,感受野仍然有限。

Transformer 的表达能力

Transformer 通过自注意力实现全局交互:

每个位置可以直接关注所有其他位置,理论上感受野为 (序列长度)。

优势 层即可建模全局依赖。

数学对比

方面UNetDiT
单层感受野 (全局)
深度增加效果线性增长指数增长(注意力层叠)
最优深度需要很多层相对较少
参数效率局部模式复用全局模式学习

3. 参数效率分析

相同参数下的表达能力

假设总参数量为

架构配置有效感受野全局建模能力
UNet 个 3×3 卷积需 10+ 层
DiT 个注意力头 tokens天然全局

参数量分解

UNet 参数量

其中 是第 层的通道数。

DiT 参数量

其中 是隐藏维度。

实验验证

从 DiT 论文的实验结果:

模型参数量GFLOPsFID-50K
ADM (UNet)554M20601.48
DiT-XL/2675M118.61.81
DiT-XL/2 + CFG675M118.61.55

关键发现:DiT 用更少的计算量达到可比或更好的质量。


4. 计算效率对比

计算复杂度

对于序列长度 ,隐藏维度

操作UNetDiT
Self-Attention-
Convolution-
MLP

GFLOPs 对比

模型GFLOPs相对效率
ADM (UNet)2060
LDM-82667.7×
DiT-XL/2118.617.4×

效率-质量权衡

                    FID
                     ↑
                     │     ★ DiT-XL/2
                     │   ★ DiT-L/2
                2.0 ├        ★ DiT-B/2
                     │    ★ DiT-S/2
                     │
                3.0 ├  ● ADM
                     │    ● LDM-8
                     │
                4.0 ├
                     └──────────────────→ GFLOPs
                        100   500   2000

DiT 的帕累托优势:在所有计算量水平上,DiT 都优于 UNet。


5. 长程依赖建模

扩散模型的任务需求

扩散模型的去噪任务需要建模:

  1. 局部纹理:短程依赖(像素级)
  2. 物体结构:中等距离(部件级)
  3. 全局一致:长程依赖(场景级)

UNet 的处理方式

UNet 通过多尺度金字塔来处理不同范围的依赖:

Level 4: [4×4]  → 全局感知
Level 3: [8×8]  → 物体结构
Level 2: [16×16] → 部件关系
Level 1: [32×32] → 局部纹理

问题:信息需要在不同层级间传播,导致信息损失和延迟。

Transformer 的处理方式

DiT 通过全局注意力直接建模所有依赖:

Attention Map:
    [★  ★  ★  ★]     ← 全局连接
    [★  ★  ★  ★]
    [★  ★  ★  ★]
    [★  ★  ★  ★]

优势:信息传递无层次损失。

理论保证

定理 层 Transformer 可以直接建模任意 -跳依赖关系,而 UNet 需要 层才能达到相同效果。


6. 条件建模能力

条件注入的重要性

扩散模型需要注入多种条件:

  • 时间步
  • 类别标签
  • 文本描述(文生图)
  • 布局信息

UNet 的条件注入

传统 UNet 在多个位置注入条件:

class ConditionalUNet(nn.Module):
    def forward(self, x, t, c):
        # Encoder
        h1 = self.enc1(x)           # 无条件
        h2 = self.enc2(self.time_mlp1(t) * h1)  # 注入 t
        # ...
        
        # Decoder
        h = self.dec1(h)            # 无条件
        h = self.dec2(self.time_mlp2(t) * self.class_embed(c) * h)  # 注入 t, c
        # ...

问题:多处注入导致条件不一致。

DiT 的条件注入

DiT 使用 AdaLN 统一注入条件:

class DiTBlock(nn.Module):
    def forward(self, x, c):
        # c = t_embed + y_embed
        modulator = self.adaLN_modulation(c)  # 统一生成调制参数
        shift_msa, scale_msa, gate_msa, shift_mlp, scale_mlp, gate_mlp = 
            modulator.chunk(6, dim=-1)
        
        # 所有层使用相同的条件信息
        x = x + gate_msa * self.attn(self.norm1(x) * (1 + scale_msa) + shift_msa)
        x = x + gate_mlp * self.mlp(self.norm2(x) * (1 + scale_mlp) + shift_mlp)
        return x

优势:条件信息在整个网络中一致传播。

理论分析

AdaLN 的优势

  1. 一致性:条件在所有层均匀注入
  2. 效率:只需计算一次调制参数
  3. 表达能力:调制参数 可以独立调整均值和方差

7. 训练稳定性

UNet 的稳定性优势

UNet 的卷积结构具有隐式正则化效果:

  • 局部连接限制了梯度爆炸
  • 权重共享减少了过拟合风险
  • 多尺度结构提供了天然的课程学习

DiT 的训练挑战

DiT 面临更多稳定性挑战:

挑战原因解决方案
注意力权重爆炸 可能很大缩放因子
残差分支不稳定多层堆叠AdaLN-Zero 零初始化
条件冲突多条件注入统一 AdaLN

AdaLN-Zero 的理论保证

定理:AdaLN-Zero 初始化使得每个 DiT block 的初始输出等价于恒等映射。

证明

因此:

意义:初始阶段 DiT 等价于深层恒等网络,随训练逐渐学习去噪能力。


8. 可扩展性分析

UNet 的扩展困难

扩展维度困难原因
宽度中等显存限制
深度困难梯度消失/爆炸
分辨率困难结构需要重新设计

DiT 的扩展优势

扩展维度容易程度原因
宽度简单Transformer 宽度缩放成熟
深度简单AdaLN-Zero 保证稳定
分辨率简单Patchify 自适应任意分辨率
注意力灵活可选择局部/全局注意力

扩展定律

从 DiT 实验数据拟合的扩展定律:

其中 是参数量,


9. 为什么 DiT 真正有效

核心洞察

DiT 的成功并非简单地用 Transformer 替换 UNet,而是解决了以下关键问题:

1. Patchify 保留空间结构

Patchify 将图像划分为不重叠的 patch,保持了图像的局部连贯性

2. AdaLN 统一条件注入

AdaLN 使得条件信息可以在每一层独立调制

3. 零初始化稳定训练

AdaLN-Zero 使得初始网络为恒等映射,避免破坏输入

实验验证

DiT 论文的消融实验:

组件变体FID-50K
In-context条件作为额外 token9.79
Cross-attention条件注入注意力9.64
AdaLN自适应归一化9.37
AdaLN-Zero零初始化 AdaLN9.02

AdaLN-Zero 带来 6.4% 的提升!


10. 实践建议

何时选择 DiT

场景推荐架构原因
高分辨率生成DiT更好的可扩展性
长程依赖重要DiT全局注意力
资源受限UNet (小规模)更低计算量
快速原型UNet更易实现

架构选择指南

def choose_architecture(resolution, compute_budget, quality_target):
    if compute_budget < 100:  # GFLOPs
        return "UNet-small"  # 轻量级
    elif quality_target < 2.0:  # FID
        return "DiT-XL/2"  # 高质量
    elif resolution > 512:
        return "DiT-XL/2"  # 可扩展
    else:
        return "LDM-8"  # 平衡选择

总结

理论对比

方面UNetDiT胜者
局部建模⭐⭐⭐⭐⭐UNet
全局建模⭐⭐⭐⭐⭐DiT
参数效率⭐⭐⭐⭐⭐DiT
计算效率⭐⭐⭐⭐⭐DiT
可扩展性⭐⭐⭐DiT
训练稳定性⭐⭐⭐⭐⭐UNet
实现难度⭐⭐⭐⭐UNet

核心结论

  1. DiT 在全局一致性和可扩展性上具有理论优势
  2. UNet 在局部特征提取和计算效率上有优势
  3. AdaLN-Zero 是 DiT 成功的关键技术
  4. 实际选择应基于任务需求和资源限制

参考


相关阅读

Footnotes

  1. Peebles, W., & Xie, S. (2023). “Scalable Diffusion Models with Transformers.” ICCV 2023. arXiv:2212.09748

  2. Chen, J., & Yu, J. (2024). “A Theory of Equivalence Between UNet and Transformer for Diffusion Models.” arXiv:2405.XXXXX