---
layout: post.njk
source: https://blog.qiaomu.ai/dit-diffusion-transformers-scalable
speaker: 向阳乔木
title: 超越U-Net：Transformer在扩散模型中的高效与稳定表现 · 乔木博客
date: '2026-05-12'
summary: 本文介绍了 Diffusion Transformers (DiT) 如何用 Transformer 架构取代扩散模型中的 U-Net，并证明了 Transformer 的规模扩展定律同样适用于图像生成。文章强调 Gflops 是比参数量更关键的性能指标，详细阐述了 DiT 的 Patchify、条件注入（adaLN-Zero）及训练稳定性，并指出其对 Stable Diffusion 3、FLUX.1 和 Sora 等后续模型发展产生了深远影响，标志着扩散模型进入了与语言模型一致的 Transformer 发展轨道。
area: tech-engineering
category: ai-ml
tags:
  - diffusion-models
  - transformers
  - scaling-laws
  - architecture
  - gflops
people:
  - William Peebles
  - Saining Xie
  - Alexei Efros
companies_orgs:
  - UC Berkeley
  - New York University
  - Meta AI
  - Facebook AI Research
  - OpenAI
  - Stability AI
  - Black Forest Labs
products_models:
  - U-Net
  - Transformer
  - DiT
  - GPT-3
  - GPT-4
  - ViT
  - DDPM
  - ADM
  - DALL-E 2
  - Imagen
  - Stable Diffusion
  - FLUX.1
  - Stable Diffusion 3
  - Sora
  - ResNeXt
  - MMDiT
  - BigGAN-deep
  - StyleGAN-XL
  - LDM-4-G
  - DiT-S
  - DiT-B
  - DiT-L
  - DiT-XL
media_books: []
draft: true
status: evergreen
---

乔木博客

全部

AI工具

AI教程

AI生成

AI资讯

健脑房

播客解读

论文学习

# 超越U-Net：Transformer在扩散模型中的高效与稳定表现

论文学习

·

2026年5月12日

·

594 次阅读

·

约 37 分钟

> 论文原文：Scalable Diffusion Models with TransformersarXiv：https://arxiv.org/abs/2212.09748发布日期：2022-12-19作者：William Peebles et al.（UC Berkeley / New York University）

2022 年底，两个年轻研究者，William Peebles 和 Saining Xie（谢赛宁）。

想把扩散模型里那个人人都在用的 U-Net 换掉，换成 Transformer。

这个想法听起来像折腾。

U-Net 在扩散模型上已经跑得很顺畅了，DALL-E 2、Imagen、Stable Diffusion，清一色用 U-Net，没有人抱怨。

更重要的是，扩散模型生成图片是一个高度依赖空间结构的任务，U-Net 那种"下采样再上采样，中间加跳跃连接"的设计，看起来天然就是为图像而生的。

Transformer？它是处理序列的，图片不是序列。

结果他们做出来了，而且好到让整个领域震动。

FID 从之前的最优 3.60 降到了 2.27，同时证明了一件更深远的事：扩散模型也遵循 Transformer 的规律，越大越好，且好得可以精确预测。

这篇论文叫 DiT，全称 Diffusion Transformers。

从发表到今天（2026 年 5 月），不到 4 年，它已经是 FLUX.1、Stable Diffusion 3、以及据说是 Sora 背后架构的核心来源。

## U-Net 是怎么统治扩散模型的

要理解 DiT 的意义，得先回到 2020 到 2022 年那段时间，弄清楚 U-Net 是怎么成为扩散模型默认骨干的。

扩散模型的基本思路很简单：给图片加噪声，加到完全是随机噪声，然后训练一个网络学会把噪声一步步去掉，还原回真实图片。

去噪的每一步，网络拿到的输入是当前这步的带噪图片和时间步信息，输出是对噪声的预测。

这个去噪网络需要处理的是图像，一个有宽有高有通道的二维张量。

> U-Net：一种卷积神经网络架构，因整体形状像字母 U 而得名。编码器部分逐步下采样、压缩图像，提取高级语义特征；解码器部分逐步上采样还原空间分辨率；两侧通过"跳跃连接"把相同分辨率的编码器特征直接传给解码器，帮助还原高频细节。最初由 Ronneberger 等人 2015 年提出，用于医学图像分割，后来被 Ho 等人引入扩散模型。

Ho 等人 2020 年的 DDPM 把 U-Net 带进扩散模型，当时这是一个很自然的选择。

U-Net 保留了完整的空间结构，能在不同分辨率上同时感知局部纹理和全局语义，跳跃连接还能把精细的空间细节直通到解码端。

对于图像去噪这个任务，实在是太合适了。

2021 年，Dhariwal 和 Nichol 发了一篇对 U-Net 做系统性消融实验的论文（ADM）。

他们改了注意力层的位置、改了归一化方式、调整了通道数，把这个结构调到了极致，让扩散模型第一次在 FID 上全面超越了曾经不可一世的 GAN。

那篇论文几乎成了扩散模型架构设计的"圣经"，后来的 DALL-E 2、Imagen、Stable Diffusion，基本都在它的 U-Net 改进版基础上做的。

但 U-Net 有一个问题，当时没人多提，慢慢开始让研究者头疼：它不太好 scale。

> Scale（规模扩展）：在深度学习里，scale 通常指通过增大模型参数量、增加训练数据或增加计算量来持续提升模型性能。一个架构"可扩展"意味着投入更多资源，性能可以预期、可以量化地提升。反之，如果增大模型效果不稳定或不可预测，就叫"扩展性差"。

语言模型的成功给整个领域上了一课。

GPT-3、GPT-4，从几亿参数到几千亿参数，性能曲线平滑上升，而且这个规律可以用数学来描述，叫做 Scaling Laws（规模扩展定律）。

视觉领域的 ViT（Vision Transformer）也展示了类似的特性，在大规模数据和计算下，ViT 的性能可以超过精心调教的 ResNet。

U-Net 的扩展就没那么顺滑。

它的参数分散在不同分辨率的卷积层、自注意力层和跳跃连接里，层与层之间有复杂的耦合，调整起来牵一发而动全身，没有一个清晰的"把这个旋钮拧大，性能就按这个曲线提升"的规律。

Peebles 在这时想到了一个问题：如果扩散模型的骨干换成 Transformer，会不会也继承这种漂亮的 scaling 特性？他的直觉是肯定的。

但要验证这个想法，首先要解决一个工程问题：图片怎么变成 Transformer 能吃的 token 序列？

## 把图像变成 Token 序列：Patchify

DiT 最核心的工程决策，叫 Patchify，把图像切成小块（patch），每块变成一个 token。

这不是 Peebles 的发明，这是 ViT 的基础操作。

但把它用到扩散模型的去噪骨干上，这是 DiT 的核心创意。

具体操作是这样的：原始图像先通过一个预训练的 VAE（变分自动编码器）压缩到潜在空间。

一张 256×256×3 的 RGB 图像，经过 VAE 编码器会变成 32×32×4 的潜在表示，尺寸缩小了 8 倍。

然后这个潜在表示以 patch size=2 切割，每个 2×2 的小块变成一个 16 维的 token，总共得到 (32/2)×(32/2)=256 个 token。

加上位置编码，这 256 个 token 排成一行，送进标准的 Transformer 处理。

> Patchify（分块化）：将图像或潜在表示切分成大小相等的小方块（patch），每个 patch 展平后通过线性投影变成一维向量，作为 Transformer 的输入 token。Patch size 越小，切出来的 token 越多，计算量越大，但模型看到的信息越细粒度。

> 潜在空间（Latent Space）：VAE 等自编码器将高维图像压缩到的低维连续表示空间。在 DiT 里，扩散过程在这个压缩后的低维空间里进行，而不是直接在像素空间操作，大幅降低了计算量。Stable Diffusion 也用了类似的 Latent Diffusion 思路。

> VAE（变分自动编码器，Variational Autoencoder）：一种生成模型，包含编码器和解码器两部分。编码器把输入数据压缩到低维潜在表示，解码器把潜在表示还原成数据。在 DiT 和 Stable Diffusion 里，VAE 用来在像素空间和潜在空间之间转换，扩散过程本身只在潜在空间里运行。

看这张图，左边那组气泡图说了一件关键的事：DiT 模型的计算量（Gflops，气泡大小）越大，FID 越低（图像质量越好），而且这个关系非常规律，几乎是一条斜线。右边那组图展示了 DiT-XL/2 在同样计算量下，比之前所有 U-Net 扩散模型都好。

这就是为什么研究者们兴奋。

这不只是"做出了一个更好的模型"，而是"找到了一个可以预期地提升性能的路径"。

这就像建筑工人发现了一种新材料：不管盖多高的楼，这种材料的强度都随计算量线性增加。

之前的 U-Net 就像旧材料，盖到某个高度就开始出问题，加再多参数也不一定有用。但 DiT 不会。

## 条件信息怎么注入：四种策略的比较

扩散模型需要接受条件输入。

最常见的两种：一是时间步 t（告诉网络现在是第几步去噪），二是类别标签 c（告诉网络要生成什么类别的图片）。这些额外信息怎么塞进 Transformer？Peebles 测试了四种方案。

方案一：In-Context Conditioning（上下文条件化）。

直接把时间步 t 和类别 c 的嵌入向量当成两个额外 token，和图像 token 一起送进 Transformer。

最简单，对模型结构改动最小，但效果一般。

方案二：Cross-Attention（交叉注意力）。

专门加一层交叉注意力，让图像 token 去"查阅"条件信息。

这是 Stable Diffusion 里处理文本条件的标准做法，但额外增加了约 15% 的计算开销。

方案三：自适应层归一化（adaLN）。

不改网络结构，而是用条件信息来预测 LayerNorm 的缩放参数 γ 和偏移参数 β。

比交叉注意力轻量，但效果也一般。

方案四：adaLN-Zero（零初始化自适应层归一化）。

在 adaLN 基础上做了一个关键改动：额外预测一个维度缩放参数 α，作用在残差连接之前；

同时在初始化时，让 MLP 输出零向量，把整个 DiT block 初始化为恒等映射（identity function）。

> 自适应层归一化（adaLN，Adaptive Layer Normalization）：在标准 Layer Normalization 的基础上，不用固定的归一化参数，而是从条件信息（比如时间步或类别嵌入）中动态预测缩放因子 γ 和偏移因子 β。这让归一化层能感知当前条件，从而调整每个 token 的处理方式。

> 恒等映射初始化（Identity Initialization）：把神经网络的某个 block 初始化成什么都不做，输入直接等于输出。对于残差网络，这意味着训练开始时该 block 的贡献为零，随着训练推进逐渐被激活。这种初始化策略来自 ResNet 的研究，被发现能显著稳定大模型的训练过程。

结果很明显，adaLN-Zero 赢了，而且赢得很干净。

训练到 400K 步时，adaLN-Zero 的 FID 几乎是 In-Context Conditioning 的一半。

为什么 adaLN-Zero 这么好？从两个角度来理解：

其一，adaLN 的条件调制是全局的，对每个 token 施加相同的归一化变换。

这听起来是个限制，但对扩散去噪任务来说恰好合适，因为时间步和类别标签是整张图的全局属性，不需要在不同位置有不同的响应。

其二，零初始化残差连接让训练更稳定。

训练开始时，每个 DiT block 等于什么都没做，整个网络等于 identity 函数，梯度可以无阻塞地流回早期层。

随着训练推进，每个 block 慢慢学会了它需要做的变换，而不是从一开始就承受所有梯度压力。

这就像一个新员工入职，第一天什么都不做，先观察、先学，然后慢慢承担工作。

比第一天就被扔一堆任务、手忙脚乱，效率要高得多。

从这张架构图里，你能看到完整的 DiT 流程：输入潜在表示先被 Patchify 切成 token，加位置编码，然后过一系列 DiT block，最后通过一个线性层解码回与输入同样大小的噪声预测和协方差预测。

每个 DiT block 里，adaLN-Zero 的条件嵌入通过一个共享 MLP 预测出六个参数，分别控制自注意力和前馈网络之前的归一化，以及残差连接之前的维度缩放。

## Patch Size 是关键旋钮

DiT 的设计空间里，patch size 是个被低估的旋钮。

patch size 越小，切出来的 token 数越多，Gflops 越大，图像质量越好，但训练成本也越高。

对于 32×32 的潜在表示：patch size=8 得到 16 个 token，patch size=4 得到 64 个，patch size=2 得到 256 个。

token 数量翻 4 倍，Gflops 至少也翻 4 倍（注意力的计算复杂度是 token 数的平方）。

> Patch Size（块尺寸）：DiT 中将潜在表示切分成小块时每块的边长。DiT 论文里测试了 p=2、p=4、p=8 三种配置。p 越小，token 序列越长，计算量越大，模型能感知的空间细节越精细，生成质量一般也越好。实践中 p 是在质量和计算成本之间权衡的关键参数。

这张图直观展示了：同样的 32×32×4 潜在表示，patch size=8 时得到 16 个 token，patch size=4 时得到 64 个，patch size=2 时得到 256 个。

每个格子代表一个 token，token 越多，模型处理的信息越细粒度。

这给了工程师一个灵活的旋钮：如果预算有限，加大 patch size 节省计算；如果追求质量上限，缩小 patch size 让模型看到更细粒度的信息。

这种设计还有一个优势：patch size 的调整不影响模型参数量，只影响 token 数量和 Gflops，这让计算和参数解耦了，方便分别研究两者对性能的影响。

这个设计让后来的工作受益匪浅。

比如 FLUX.1 用了更小的 patch size 来提升细节质量，同时通过其他架构优化来控制计算开销。

## Gflops 才是真正的度量衡

DiT 最让人意外的发现，不是它跑赢了 U-Net，而是它揭示了一个之前被整个领域忽视的规律：参数量不是衡量扩散模型能力的好指标，计算量（Gflops）才是。

过去评估一个扩散模型的"规模"，大家默认看参数量。但参数量会误导人。

Peebles 做了一个实验：同样是 DiT-S（最小的 DiT 模型），如果 patch size 从 8 改成 4，参数量几乎不变，但 token 数量从 16 个变成 64 个，Gflops 增加了约 4 倍。结果 FID 从 153.6 大幅下降到 100.4。

参数量一样，性能差这么多，靠什么解释？唯一能解释的变量，是 Gflops。

> FID（Fréchet Inception Distance，弗雷歇初始距离）：衡量生成图像质量的标准指标，通过比较真实图像和生成图像在 Inception 网络特征空间中的分布距离来计算。FID 越低表示生成图像越接近真实图像的分布质量。FID-50K 表示用 50000 张生成图像计算得到的 FID 值。

> Gflops（Giga Floating Point Operations，十亿次浮点运算数）：衡量模型每次前向传播所需计算量的指标。Gflops 越大，意味着模型计算越复杂，但也通常意味着它能完成的变换越精细。与参数量不同，Gflops 会随着输入序列长度的变化而变化，更能反映实际的计算能力。

这张图是整篇论文里最有力的一张。

横轴是不同 DiT 模型的 Gflops，纵轴是 FID-50K。

不同模型大小（S、B、L、XL）和不同 patch size（/8、/4、/2）的模型散布在图上，但几乎沿着同一条曲线排列。

只要 Gflops 接近，FID 就接近，无论这些 Gflops 是来自更深的 Transformer 还是更小的 patch size。

这个发现有直接的实用价值。

如果你有固定的计算预算，你可以在设计模型时权衡：选大模型配大 patch size（参数多但 token 少），还是选小模型配小 patch size（参数少但 token 多）。

总 Gflops 接近，性能就接近，但设计空间更大。

这就像你有 1000 块钱买食材，发现影响菜好不好吃的是"总烹饪时间"，而不是"用了多少种食材"。

那你就可以专注地把时间花在刀工上，或者花在火候上，灵活组合。

## 为什么 Transformer 能处理图像去噪？

在解释 DiT 的实验结果之前，有必要停下来问一个更基础的问题：为什么 Transformer 能处理图像去噪这个任务？它的注意力机制和这个任务到底有什么契合之处？

扩散模型的去噪本质上是一个"局部修复+全局一致性"的双重任务。

局部修复：在当前这步，我要预测哪些噪声加在了哪些像素上，这需要感知局部纹理和边缘信息。卷积网络天生擅长这个，因为卷积操作有空间局部性偏置。

全局一致性：生成一只猫，猫的左眼和右眼要对称，猫的颜色要在全图保持一致，整体光照要合理。这需要感知全图的上下文关系。这是 Transformer 注意力机制的强项。

> 注意力机制（Self-Attention）：Transformer 的核心计算模块。每个 token 会计算它和序列中所有其他 token 的相似度（注意力权重），然后用这些权重加权汇总所有 token 的值，更新自身表示。这使得每个位置都能直接感知全序列的任何一个位置，无论距离多远。对图像而言，就是每个 patch 都能感知图像中任意其他 patch 的内容。

U-Net 通过在不同分辨率上加自注意力层来解决全局一致性问题，但这些注意力层是"加上去的"，不是架构的主体。

而在 Transformer 里，注意力是每层的核心计算，全局感受野是内置的。

从另一个角度看，扩散模型的去噪任务有一个特点：时间步 t 越大（加噪越多），网络需要处理的是"用有限的语义线索重建全局结构"；时间步 t 越小（接近真实图像），网络需要处理的是"精细化局部细节"。

前半段更需要全局推理，后半段更需要局部精确。

Transformer 在前半段天然有优势。

而且，通过注意力机制，模型可以动态地根据内容决定"这个 patch 应该关注哪些其他 patch"，这比 U-Net 固定拓扑的跳跃连接更灵活。

还有一点经常被忽视：U-Net 的注意力层通常只加在低分辨率特征图上（为了控制计算量），高分辨率层还是纯卷积。这意味着在高分辨率处理细节时，U-Net 依赖卷积的局部感受野，看不到全图。

而 DiT 工作在潜在空间，压缩比已经处理了分辨率问题，Transformer 的每层都能在全局范围内做注意力。

这些分析解释了为什么 Transformer 能在这个任务上表现好。

不是因为它"更聪明"，而是因为任务的结构和 Transformer 的归纳偏置有一种深层的契合。

## 训练稳定性：DiT 从不崩溃

这是论文里不起眼但值得细品的一句话。

Peebles 提到，他们在训练所有 12 种 DiT 模型时，从未观察到任何损失爆炸（loss spike）。

这在 Transformer 训练里是罕见的，大型语言模型训练时经常会突然出现损失跳升，需要回退检查点、调整学习率、甚至重新设计训练策略。

DiT 的训练稳定性，很大程度上来自 adaLN-Zero 的初始化设计。

把每个 DiT block 初始化成恒等映射，意味着训练开始时，整个网络等于什么都没做，梯度可以无阻碍地流过所有 block，直达最早的层。

这种"零初始化"的思想来自 ResNet 的研究，但 Peebles 把它扩展到了 adaLN 的条件调制参数上，效果比预期的更好。

训练超参数方面，DiT 用的是非常保守的设置：常数学习率 1e-4，没有学习率预热，没有权重衰减，只有水平翻转一种数据增强。

这些设置跟 ViT 的通常做法不同（ViT 通常需要仔细的学习率调度），但 DiT 不需要，直接用就很稳定。

> 指数移动平均（EMA，Exponential Moving Average）：一种在训练时维护模型参数"历史加权平均版本"的技术。EMA 权重对训练步骤的最新变化不那么敏感，通常比当前时刻的模型权重产生更稳定的推理效果。DiT 使用 0.9999 的衰减率维护 EMA 权重，所有最终结果都用 EMA 模型评估。

这种训练稳定性有实际价值。

当一个架构设计本身就"不容易出问题"，研究者可以把精力用在有意义的方向上，而不是花大量时间在"这次为什么又崩了"的调试上。

大规模工程项目里，可靠性和性能同样重要。

## 四种规模，十二个模型：系统性的规模扩展实验

为了系统研究规模扩展规律，Peebles 同时训练了 12 个 DiT 模型：4 种模型大小（S、B、L、XL）× 3 种 patch size（8、4、2）。

这四种模型大小借鉴了 ViT 的命名惯例：

模型

Transformer 层数

隐藏层维度

注意力头数

Gflops（latent 32×32, p=4）

DiT-S

12

384

6

1.4

DiT-B

12

768

12

5.6

DiT-L

24

1024

16

19.7

DiT-XL

28

1152

16

29.1

把这 12 个模型的训练曲线并排放在一起，就能看到规模扩展规律有多稳健。

上半部分固定 patch size，增大模型：从 S 到 B 到 L 到 XL，FID 在训练的每一个阶段都持续下降，没有例外。

下半部分固定模型大小，减小 patch size：FID 同样稳定下降。两个方向都有效，都可预期。

这意味着什么？意味着研究者在训练早期就能预判最终哪个模型会更好。如果在 100K 步时 XL/2 已经明显优于 L/2，那没有理由相信继续训练到 7M 步会反转这个结论。

这让资源分配更理性，不用把每个候选配置都跑完整才能做决定。

这张图用相同的初始噪声和类别标签，从所有 12 种模型各采样一张图。

从左上角的模糊噪声到右下角清晰的图像，规模扩展的效果肉眼可见。

小模型（DiT-S/8）几乎生成不出有意义的内容，而 DiT-XL/2 已经能生成细节丰富的照片级图像。

## 更大的模型更"高效"

这是一个反直觉的结论，但实验数据非常清晰。

Peebles 测量了在相同训练计算量（training Gflops × 训练步数）下，不同 DiT 模型的 FID。

结果发现：大模型在每单位计算量上，比小模型更高效。

换句话说，把计算预算全押在一个大模型上，比把同样预算分散在多个小模型上，最终得到的性能更好。

这张图的横轴是训练总 Gflops（模型 Gflops × batch size × 训练步数），纵轴是 FID。

小模型（S 系列）的曲线随训练计算量增加而缓慢下降，但到后期趋于平缓，继续训练收益越来越小。

大模型（XL 系列）的曲线虽然起点更高（因为每步消耗更多计算），但斜率更陡，最终以更低的 FID 结束。

具体举个例子：DiT-L/2 用 1000 步采样大约需要 80.7 Tflops 生成每张图，DiT-XL/2 用 128 步采样只需要 15.2 Tflops，是前者的五分之一，但 FID 更低（23.7 vs 25.9）。

这个结论和语言模型的 Scaling Laws 一脉相承：在 Transformer 家族里，投资大模型是更划算的选择，即使它看起来更"贵"。

这一点对预算有限的研究团队和公司来说尤其有价值。

以前大家会问"我们应该训练一个大模型还是几个小模型"，DiT 的数据给出了一个清晰的回答：把有限的算力押在一个更大的模型上，远比分散在多个小模型上更高效。

大模型不是奢侈品，在 Transformer 的逻辑下，它是性价比更高的选择。

## 在 ImageNet 上刷新记录

经过以上所有实验的设计权衡，Peebles 继续把 DiT-XL/2 训练到 7M 步，在 ImageNet 的标准基准上测了最终成绩。

256×256 分辨率：

模型

FID (↓)

sFID (↓)

Inception Score (↑)

Gflops

BigGAN-deep

6.95

7.36

171.4

-

StyleGAN-XL

2.30

4.02

265.12

-

ADM-G（U-Net 最强基线）

4.59

5.25

186.70

1120

LDM-4-G（Stable Diffusion 前身）

3.60

-

247.67

103.6

DiT-XL/2-G（本文）

2.27

4.60

278.24

118.6

FID 2.27，打破了所有此前发布的扩散模型和 GAN 的记录。

而且注意那个 Gflops 列：ADM-G 用了 1120 Gflops，DiT 只用了 118.6 Gflops，计算量不到 ADM-G 的十一分之一，FID 从 4.59 降到了 2.27。

这不只是"更好"，这是"用更少的计算做出了更好的东西"。

工程意义远比数字本身更重要。

512×512 分辨率同样拿下第一名，FID 3.04，而此前最优的 ADM 是 3.85，且 ADM 用了 1983 Gflops，DiT 只用了 524.6 Gflops。

值得一提的是 sFID（spatial FID）这个指标，它专门衡量生成图像的空间频率一致性，DiT 在这个指标上同样优于此前的方法。

这说明 DiT 不是靠牺牲某些维度的质量来换取低 FID，而是整体上的全面提升。

## 采样步数不能替代模型规模

扩散模型有一个独特的特性：可以在推理时增加采样步数来提升质量，而不需要重新训练。

这引出了一个合理的问题：小模型多跑几步，能不能赶上大模型少跑几步的效果？

答案是：不能。

Peebles 测了这个实验。

DiT-L/2 用 1000 步采样，计算代价是 80.7 Tflops；DiT-XL/2 用 128 步采样，计算代价是 15.2 Tflops，是前者的五分之一。但 FID 是 DiT-XL/2 更好（23.7 vs 25.9）。

换句话说，在相同或更少的推理计算量下，大模型仍然比小模型好。

采样计算无法弥补训练时的模型能力差距。

这个结论对工程部署有直接影响：如果想在推理成本固定的情况下获得最佳质量，应该选更大的模型配更少的采样步数，而不是用小模型跑很多步。

## 架构之外：这篇论文真正的遗产

表面上看，DiT 是一篇讲扩散模型架构的论文，把 U-Net 换成了 Transformer。

但它更深的贡献是一个框架转变：扩散模型可以跟语言模型一样，在同一套 Transformer scaling 逻辑下运作。

这意味着语言模型领域几年来积累的那些"让 Transformer 更大更强"的工程技巧，原则上都可以迁移过来。

从那之后，扩散模型的发展轨迹确实变了。

2024 年，Stability AI 发布了 Stable Diffusion 3，使用的是 MMDiT（Multimodal Diffusion Transformer）架构，在 DiT 基础上增加了对文本和图像的双流处理，使文本和图像信息在 Transformer 的每一层都能充分交互。

> MMDiT（Multimodal Diffusion Transformer）：一种扩展自 DiT 的多模态架构，由 Esser 等人在 2024 年提出（也称 SD3 架构）。它为文本和图像分别维护独立的 token 序列，在自注意力时把两个序列拼接在一起计算，然后再分开。这让文本和图像信息的交互比传统交叉注意力更充分。FLUX.1 和 SD3 都使用了这个架构。

同年，Black Forest Labs（由 Stable Diffusion 原班人马创立）发布了 FLUX.1，同样基于 DiT + MMDiT 思路，目前被认为是开源文字生图的最强模型之一。

FLUX.1 的参数量达到 120 亿，是 DiT 原版的一百倍，但架构思想一脉相承。

OpenAI 的视频生成模型 Sora 的官方技术报告（2024 年 2 月）明确提到：将视频压缩成时空 patch 序列，然后用 Diffusion Transformer 处理。

这几乎就是 DiT 思路的直接应用，只是从图像扩展到了视频。

## Classifier-Free Guidance 让结果更上一层楼

DiT 论文里有一个技术细节值得单独说一下，虽然它不是 DiT 的发明，但它是最终 FID 2.27 这个成绩的重要贡献者。

这个技术叫 Classifier-Free Guidance（无分类器引导），简称 CFG。

扩散模型在生成图片时，可以设置一个"引导强度"参数 s，当 s=1 时，网络做普通的有条件生成；

当 s>1 时，网络会用公式 ε̂ = ε(x, ∅) + s × (ε(x, c) − ε(x, ∅)) 来增强条件的影响，让生成的图片更符合指定类别，但多样性会稍微下降。

> Classifier-Free Guidance（无分类器引导，CFG）：一种在推理时增强条件影响的技术，不需要额外训练一个分类器。训练时随机把条件 c 替换成空标签，让模型同时学会有条件和无条件生成；推理时用两个预测的差值来强化条件信号，提升生成图像对条件的符合度。引导强度 s 越大，图像越符合条件，但多样性（Recall）越低。

DiT-XL/2 在不使用引导时 FID 是 9.62，加入 CFG（引导强度 1.5）后降到了 2.27。

这个差距非常大，说明 CFG 对最终质量的贡献几乎和模型本身一样重要。

但 CFG 有代价：引导强度越高，Recall（多样性）越低。

从表格里可以看到，引导强度 1.25 的 Recall 是 0.62，引导强度 1.5 的 Recall 降到了 0.57。

这是一个可控的质量-多样性权衡，用户可以根据需求调节。

这种精度和多样性之间的权衡，在工程领域处处存在。

高引导强度像是让工匠只专注一件作品，做出来的精度极高，但失去了随机性；

低引导强度像是让工匠在多个作品间游走，每件都有独特的细节，但单件精度更低。

哪种更好，取决于你的目标。

CFG 之所以在 DiT 上效果这么好，也和 adaLN-Zero 的条件注入方式有关系。

adaLN-Zero 让模型能精确地感知和响应类别条件，使得"有条件生成"和"无条件生成"之间的差距足够大，从而让 CFG 的引导有了充分的发挥空间。

条件注入机制和推理时的引导策略，在设计上是相互协作的。

## 架构统一的更大意义

DiT 的成功，放在一个更大的视野里看，是深度学习"架构统一"趋势的一部分。

2017 年 Transformer 提出时，它的应用场景是机器翻译，一个序列到序列的任务。

没人预料到它会席卷整个领域。

5 年后的 2022 年，Transformer 已经是语言模型的标配（GPT、BERT、T5），视觉识别模型在 ViT 之后也开始向 Transformer 迁移，扩散模型一直是卷积 U-Net 的最后一块阵地。

DiT 的出现，标志着这块阵地也被攻克了。

> 架构统一（Architecture Unification）：指不同任务和领域逐渐共享同一种基础神经网络结构的趋势。Transformer 就是目前最典型的统一架构：NLP 任务、视觉任务、多模态任务、强化学习任务，越来越多都在用 Transformer。统一架构的优势是技术积累可以跨领域复用，工程工具链可以共享。

架构统一的实际意义，是加速进步。

当扩散模型和语言模型共享同一个 Transformer 骨干时，语言模型领域的工程优化（比如 Flash Attention、混合精度训练、高效的并行策略）可以直接用在扩散模型上，不需要从零开始重新摸索。

这也是为什么 DiT 之后，扩散模型的能力提升突然加速了。

不只是因为有了更好的架构，而是因为新的架构让它能借助整个 Transformer 生态的力量。

两年后，FLUX.1 能实现连 Midjourney 都做不到的文字渲染准确率，背后有工程层面的原因：Transformer 对 token 内容的处理天然就是"语义感知的"，它能更好地把文本 token 和图像 patch 关联起来。

这不是偶然，是架构层面的结构性优势。

从 U-Net 到 DiT，从 DiT 到 MMDiT，从 MMDiT 到 FLUX.1，这条架构演化的线索清晰可见。

而它的起点，就是 Peebles 那个听起来"没必要"的想法：把 U-Net 换掉，用 Transformer。

## 写在后面

2022 年底这篇论文出来的时候，大多数人的反应是："有意思，但 U-Net 也没什么问题。"

这种反应很正常。

U-Net 确实没什么问题，当时的扩散模型已经能生成非常好看的图片，DALL-E 2 和 Stable Diffusion 刚刚让普通人第一次接触到了 AI 生成图片的震撼。

在这种时候去质疑骨干架构，像是在拆一栋已经建好的房子的地基。

但 Peebles 这篇论文的价值，不只是换了一个骨干架构，而是给扩散模型找到了一个新的"第一性原理"：Gflops 决定质量，Gflops 可以用模型大小和 token 数量来调节，而这两个参数都可以独立地、可预期地扩展。

这个原理一旦成立，扩散模型就进入了和语言模型相同的发展轨道：有了明确的努力方向（堆 Gflops），有了可预测的结果（FID 随 Gflops 下降），有了可复用的技术积累（所有 Transformer 的工程优化都能用）。

值得说的是 Peebles 的经历。

这篇论文是他在读博士期间、在 Meta AI 实习时完成的。他的导师是大名鼎鼎的 Alexei Efros。Saining Xie 此前在 Facebook AI Research 做视觉模型，是 ResNeXt 等架构的作者之一。两个来自视觉研究背景的人，把 Transformer 引入了扩散模型这个他们并不"主场"的领域，然后打了个漂亮的胜仗。有时候，局外人视角恰恰是最有价值的视角。

2024 年初，OpenAI 发布视频生成模型 Sora，震惊了整个行业。

官方技术报告里写道：Sora 将视频压缩成时空 patch，用 Diffusion Transformer 处理。Peebles 此前已经加入了 OpenAI，参与了 Sora 的研发。从 2022 年的那篇论文到 2024 年的 Sora，中间只有两年，一个架构想法扩展到了视频时间维度，规模放大了百倍。

今天（2026 年 5 月），如果你打开 FLUX.1 生成一张图，看到精细的毛发纹理和准确的手指细节，背后支撑它的 120 亿参数 MMDiT 架构，其根基就是这篇 2022 年十二月、两个人写的论文。

从发表到被广泛采用，不到两年。

深度学习历史上的很多转折点都有这个特点：一篇论文做的事情看起来"没必要"，因为现有方案已经够好了，但它解开的那个绳结，会在之后的几年里让所有东西都松动、重排。

那个绳结叫 U-Net 的统治地位。

那根松动的绳子，叫扩散模型的 scaling 轨道。

2022 年 12 月，这根绳子解开了。

> 论文原文：Scalable Diffusion Models with TransformersarXiv：https://arxiv.org/abs/2212.09748发布日期：2022-12-19作者：William Peebles et al.（UC Berkeley / New York University）

© 2026

·

向阳乔木