【论文阅读】Scalable Diffusion Models with Transformers

本文介绍了DiT,一种结合了扩散模型的加噪去噪特性与Transformer强大自注意力机制的新型架构。DiT通过使用Transformer模块替代U-Net,解决了传统模型的缺陷,尤其是在生成图片质量上有显著提升。关键组件如In-ContextConditioning和adaLN-Zero展示了如何有效地融合条件信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DiT:基于transformer架构的扩散模型。

paper:[2212.09748] Scalable Diffusion Models with Transformers (arxiv.org)

code:facebookresearch/DiT: Official PyTorch Implementation of "Scalable Diffusion Models with Transformers" (github.com)

有空看

1. 介绍

对于扩散模型来说,自2020年DDPM诞生以来,连续3年的工作仍然延续最初的经典U-Net架构,在网络结构设计上仍依赖早期的研究经验,有着很大的提升空间;

而Transformer一直被诟病的则是其“错误累积”问题,简单来说,错误扩散来源于Transformer“预测下一个词”的生成模式,如果说前面生成的词出现了错误,那么模型在生成后续的词时会“将错就错”,进而导致误差的累积,扩散模型由于同时对所有的像素去除噪声(这种范式我们称为非自回归,non-autoregressive),从生成范式上规避了这一问题。

如何同时解决好二者的存在的缺陷,成为了一个很好的研究课题。扩散模型基于早期工作的经验,在网络结构设计上仍有很大的提升空间。而这篇工作在隐空间扩散模型范式的启发下,成功将扩散模型中经典的U-Net结构替换成了Transformer,在进一步提升网络架构复杂度的前提下,能够显著提升生成图片的质量。

2. 方法

图3。DiT架构。左:我们训练条件潜在DiT模型。输入潜信号被分解成小块,并由多个DiT块进行处理。右:DiT块的详细信息。我们尝试了各种标准的变压器模块,这些模块通过自适应层规范、交叉注意和额外的输入令牌结合了条件反射。自适应层规范效果最好。 

DiT既有着扩散模型对图片加噪、去噪的特殊机制,又同时有Transformer强大的自注意力机制,以及Transformer“预测下一个词”的特点。给定输入图片时,DiT首先通过扩散模型标准的加噪过程对图像压缩后的特征进行污染,将带噪特征、条件特征、ground truth对应的特征拼接在一起输入Transformer后输出结果,完成一次DiT的前传过程。

  • DiT模块:在完成“块化”的操作之后,下一步要做的就是输入DiT进行相应的运算。DiT由DiT 模块的基本单元构成,其中,DiT模块中的大多数元素类似于标准的Transformer模块,包括多头自注意力机制(Multi-Head Self-Attention)、Layer Normalization、Feed Forward Layer等等。其中,为了融合外部的条件控制,DiT有三种变种形式,分别与In-Context Conditioning、Cross-Attention、adaLN-Zero相组合,它们都用于融合外部的标签条件,对应Diffusion Transformer模型架构图中由右到左的顺序:
    • In-Context Conditioning:从字面意思上来看,In-Context Conditioning可以翻译为”上下文条件化“。其实就是将条件拼接在输入词的后面。前面我们说到,Transformer的输出过程其实是在做“预测下一个词”,而in-context conditioning其实是给这一过程加上了一个前缀,在“预测下一个词”的过程中,模型会持续收到这个前缀的作用。具体来说,在DiT这篇工作的设定中,这个条件对应ImageNet中图片的类别,在模型生成图片“词”的时候,模型就会在知道生成图片的类别的前提之下完成输出过程。从技术层面上来看,这个设计跟ViT中的cls token大同小异。
    • Cross-Attention:跨注意力机制其实很简单,类似于经典latent diffusion models中U-Net的跨注意力机制,将条件对应的特征作为注意力机制的K和V,以图片特征作为Q进行运算,从而达到将条件融入图片生成过程中的效果。
    • adaLN-Zero:这个模块是这篇工作中的另一创新点,是针对Transformer原本layer normalization在图像生成任务上的一个创新。具体做法抛弃了layer norm原来直接学习增益(scale)和偏置(shift)的做法,而是通过自适应地学习加权系数(图中的 α1,α2,β1,β2),加权系数将输入条件的特征处理后,再加到每层layer norm的增益和偏置中去,以此完成条件的融合。
      • 这里adaLN-Zero的设计其实感觉跟SPADE[6]的思路类似。SPADE的提出是为了融合分割图的条件输入而提出了,其做法是将分割图处理成可学习的增益和偏置,再将增益和偏置加权到图像特征上,完成条件的融合。可以看到,SPADE和adaLN-Zero的异曲同工之妙,说明增益和偏置是融入条件信号是一个有效的方式。

参考:Diffusion Transformer Family:关于Sora和Stable Diffusion 3你需要知道的一切 - 知乎 (zhihu.com)

### 关于扩散模型的相关论文 #### Diffusion Models Beat GANs on Image Synthesis 该研究展示了扩散模型在图像合成方面超越了GAN的表现。通过一系列实验验证,证明了扩散模型不仅能在质量上胜过GAN,在多样性方面也有显著优势[^1]。 #### Classifier-Free Diffusion Guidance 此工作提出了无需分类器指导的扩散模型方法论,简化了传统依赖额外分类网络实现条件控制的方式,提高了生成效率与效果稳定性。 #### Denoising Diffusion Implicit Models (DDIM) DDIM引入了一种新的视角来看待扩散过程——即作为隐式模型下的去噪操作。这种方法允许更灵活地调整采样步数而不影响最终输出的质量,并且可以得到具有不同属性的结果集[^3]。 #### Scalable Diffusion Models with Transformers 为了应对大规模数据集带来的挑战,这项研究表明如何利用Transformer架构构建可扩展性强、计算资源消耗低的大规模扩散模型。这为解决实际应用场景中的复杂问题提供了可能途径。 #### Denoising Diffusion Probabilistic Models (DDPM) DDPM定义了一个基于马尔科夫链结构的生成流程,其中前向传播逐渐增加噪音直到完全随机化输入;而后向传播则相反,旨在从未知状态恢复原始信号。这种机制被广泛认为是现代扩散模型的基础之一[^2]。 ```python import torch.nn as nn class DDPM(nn.Module): def __init__(self, timesteps=1000): super().__init__() self.timesteps = timesteps def forward(self, x_0): # 前向过程:加噪声 pass def reverse(self, noisy_x_t, timestep): # 后向过程:去除噪声 pass ``` #### LafitE: Latent Diffusion Model with Feature Editing LafitE提出了一套完整的框架用于异常检测任务。它结合了潜在空间上的扩散建模技术和特征级编辑策略,在保持良好泛化能力的同时实现了精准的目标定位功能[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值