1. DiT项目概述:当扩散模型遇上Transformer
去年在arXiv上看到DiT论文时,我的第一反应是"终于有人把这两大热点结合起来了"。作为同时跟进Diffusion模型和Transformer发展的研究者,我亲历了Stable Diffusion如何颠覆图像生成领域,也见证了Transformer在CV任务中的攻城略地。DiT(Diffusion with Transformers)的提出,本质上是在探索一个核心问题:当我们将扩散模型的U-Net骨干网络替换为Transformer架构,能否同时获得更好的扩展性(Scalability)和生成质量?
论文中最让我印象深刻的是这张对比图:在ImageNet 256×256生成任务上,DiT-XL模型在FID指标上直接碾压了之前的SOTA模型LDM(Latent Diffusion Model),将分数从3.60提升到2.27。这不仅仅是数字游戏——在实际生成效果中,DiT展现出更清晰的细节处理和更稳定的多物体组合能力。比如生成"戴着厨师帽的柯基犬在厨房做煎饼"这种复杂场景时,传统扩散模型经常会出现肢体错位或物体粘连,而DiT的生成结果在空间关系上明显更加合理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 核心架构解析:Transformer如何重构扩散模型
2.1 传统扩散模型的瓶颈
经典扩散模型(如DDPM、LDM)依赖U-Net作为主干网络,这种编码器-解码器结构虽然擅长捕捉局部特征,但在处理长程依赖时存在天然缺陷。我在复现Stable Diffusion时深有体会:当提示词包含多个需要精确空间对应的物体时(例如"左侧站着大象,右侧坐着熊猫"),模型经常会出现位置混淆。U-Net的卷积归纳偏置(convolutional inductive bias)就像一把双刃剑——既帮助模型快速学习图像局部结构,又限制了其对全局语义的理解。
2.2 DiT的三大创新模块
论文提出的DiT架构包含三个关键设计:
- Patchify处理层:
将输入图像分割为N×N的patch(默认16×16),这与ViT的处理方式类似。但扩散模型的特殊性在于需要处理不同噪声水平的输入,这里作者采用了动态位置编码:python复制class DiTBlock(nn.Module): d
