DiT: Scalable Diffusion Models with Transformers
Peebles & Xie (NYU/UC Berkeley)
把 U-Net 换成 Transformer——证明 diffusion 也遵循 scaling law;Sora / SD3 / FLUX 都跟进。
arXiv:2212.09748核心贡献
- 01Latent patch + adaLN-Zero 模块注入 timestep/class
- 02FID 随 GFLOPs / 参数量稳定下降——diffusion 也 scale
- 03DiT-XL/2 在 ImageNet 256×256 上 FID 2.27(SOTA at time)
- 04为 Sora、SD3、PixArt、FLUX 等后续工作的架构基础
U-Net 是 CV 时代遗产,convolution + skip connection,scaling 表现不如 Transformer。DiT 把 latent 切 patch,做标准 Transformer 但条件信息(t、class)通过 adaLN-Zero 注入:先 zero-init affine 让初始模块等价 identity,训练时再慢慢吃进 condition。结果:参数/FLOPs 翻倍 FID 单调下降,符合 Transformer scaling 直觉。
DiT vs U-Net 实际差别? 同 FLOPs 下 DiT 更好;但小模型/低算力 U-Net 仍有优势(inductive bias 强)。adaLN-Zero 为啥比 cross-attn 好? AdaLN 注入条件是 element-wise,cross-attn 是 token-wise——前者参数少、收敛快。Sora 是不是 DiT? OpenAI 没明说,但技术报告暗示是 DiT 的视频版(spacetime patches)。SD3 / FLUX 在 DiT 上加了什么? MM-DiT:text 和 image token 拼在同一序列里走 joint self-attention,跨模态信息流动更充分。为什么必看? 想理解 2024+ 任何 SOTA 生成模型都绕不开 DiT。