我首先会仔细阅读用户指令,明确用户的需求是基于文章的前十页内容,对3.2节“Diffusion Transformer Design Space”中的“DiT block design”部分进行原文翻译,并且在翻译完成后进行总结。为了完成这个任务,我需要先定位到文章的3.2节,并且找到“DiT block design”这个子部分。
接下来,我会开始阅读“DiT block design”部分的内容。在阅读过程中,我会注意到这部分主要介绍了扩散变换器(DiT)块的不同设计变体,包括上下文条件化、交叉注意力块、自适应层归一化(adaLN)块和adaLN-Zero块。对于每一种设计变体,我都会关注其核心思想和实现方式,例如,上下文条件化是将条件信息作为额外的标记添加到输入序列中,交叉注意力块使用了多头交叉注意力机制,adaLN块使用了自适应层归一化,adaLN-Zero块则采用了特殊的初始化策略。
在理解了每种DiT块设计的基础上,我会开始着手进行原文翻译。我会力求翻译准确,忠实于原文的意思,并且保持语言的流畅和自然。在翻译过程中,我会注意一些专业术语的准确性,例如“cross-attention”、“adaptive layer norm”等,确保这些术语在译文中能够准确地传达原文的含义。同时,我也会注意句子的结构和语法,使得译文易于理解。
翻译完成之后,我会开始进行总结。总结的目标是提炼出“DiT block design”部分的核心内容,并以简洁明了的方式呈现出来。我会回顾之前阅读时标记的关键信息,例如不同DiT块的特点、优缺点以及实验结果。基于这些信息,我会组织总结的内容,首先概括介绍DiT块设计的整体目标,然后分别总结各种DiT块设计的特点和实验表现,并最终点明实验结果所揭示的结论,即adaLN-Zero块的优势。
在总结的过程中,我会注意突出重点,避免冗余信息,力求用最少的文字概括最多的内容。同时,我也会注意总结的语言表达,使其与原文的风格保持一致,并且符合学术写作的规范。最后,我会检查总结的内容是否完整准确地反映了原文的核心思想,并且确保总结与翻译部分相互呼应,共同完成用户指令的要求。
原文翻译
3.2. Diffusion Transformer Design Space中的DiT block design部分
我们引入了扩散变换器(DiTs),这是一种用于扩散模型的新型架构。我们的目标是尽可能忠实于标准的Transformer架构,以保留其扩展性。由于我们的重点是训练图像的扩散模型(特别是图像的空间表示),DiT基于Vision Transformer(ViT)架构,该架构对图像块序列进行操作[10]。DiT保留了许多ViT的最佳实践。图3展示了完整的DiT架构概览。在本节中,我们描述了DiT的前向传播及其设计空间的组件。
Patchify
DiT的输入是一个空间表示z(对于256×256×3的图像,z的形状为32×32×4)。DiT的第一层是“patchify”,它通过线性嵌入输入中的每个块,将空间输入转换为长度为T的令牌序列,每个令牌的维度为d。在patchify之后,我们对所有输入令牌应用标准的ViT基于频率的位置嵌入(正弦-余弦版本)。由patchify创建的令牌数量T由块大小超参数p决定。如图4所示,将p减半会使T增加四倍,从而至少使总的Transformer Gflops增加四倍。尽管对Gflops有显著影响,但改变p对下游参数数量没有实质性影响。
我们向DiT设计空间中添加了p=2,4,8。
DiT block design
在patchify之后,输入令牌由一系列Transformer块处理。除了噪声图像输入外,扩散模型有时还处理额外的条件信息,如噪声时间步t、类别标签c、自然语言等。我们探索了四种处理条件信息的Transformer块变体。这些设计对标准ViT块设计进行了小的但重要的修改。所有块的设计如图3所示。
• 上下文条件化
我们简单地将t和c的向量嵌入作为两个额外的令牌附加到输入序列中,就像ViTs中的cls令牌一样对待它们。这允许我们使用标准的ViT块而不做任何修改。在最后一个块之后,我们从序列中移除条件令牌。这种方法对模型的Gflops几乎没有新的增加。
• 交叉注意力块
我们将t和c的嵌入连接成一个长度为二的序列,与图像令牌序列分开。Transformer块被修改为在多头自注意力块之后包含一个额外的多头交叉注意力层,类似于Vaswani等人[60]的原始设计,也类似于LDM用于类别标签条件化的设计。交叉注意力对模型的Gflops增加最多,大约增加15%的开销。
• 自适应层归一化(adaLN)块
鉴于自适应归一化层[40]在GANs[2,28]和带有U-Net骨干的扩散模型[9]中的广泛应用,我们探索用自适应层归一化(adaLN)替换Transformer块中的标准层归一化层。我们不是直接学习维度方向的缩放和偏移参数γ和β,而是从t和c的嵌入向量的和中回归它们。在我们探索的三种块设计中,adaLN增加的Gflops最少,因此是最计算高效的。它也是唯一一种将相同函数应用于所有令牌的条件机制。
• adaLN-Zero块
在ResNets上的先前研究发现,将每个残差块初始化为恒等函数是有益的。例如,Goyal等人发现,在监督学习环境中,零初始化每个块中的最终批量归一化比例因子可以加速大规模训练[13]。扩散U-Net模型使用类似的初始化策略,在任何残差连接之前的每个块中零初始化最终的卷积层。我们探索了一种adaLN DiT块的修改版本,同样如此。除了回归γ和β外,我们还回归维度方向的缩放参数α,这些参数在DiT块内的任何残差连接之前立即应用。
表1. DiT模型的详细信息。我们遵循ViT[10]模型配置的小型(S)、基础(B)和大型(L)变体;我们还引入了XLarge(XL)配置作为最大的模型。
模型 | 层数 N | 隐藏大小 d | 头数 | Gflops(I=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 |
我们初始化MLP以对所有α输出零向量;这将完整的DiT块初始化为恒等函数。与普通的adaLN块一样,adaLN-Zero对模型的Gflops增加可以忽略不计。
我们将上下文条件化、交叉注意力、自适应层归一化和adaLN-Zero块纳入DiT设计空间。
模型大小
我们应用一系列N个DiT块,每个块在隐藏维度大小d上操作。遵循ViT,我们使用联合缩放N、d和注意力头的标准Transformer配置[10,63]。具体来说,我们使用四个配置:DiT-S、DiT-B、DiT-L和DiT-XL。它们涵盖了广泛模型大小和flop分配,从0.3到118.6 Gflops,使我们能够评估扩展性能。表1给出了配置的详细信息。
我们向DiT设计空间中添加了B、S、L和XL配置。
Transformer解码器
在最后一个DiT块之后,我们需要将图像令牌序列解码为输出噪声预测和输出对角协方差预测。这两个输出的形状等于原始空间输入。我们使用标准的线性解码器来完成此操作;我们应用最终的层归一化(如果使用adaLN则为自适应)并线性解码每个令牌为pxpx2C张量,其中C是DiT的空间输入通道数。最后,我们将解码后的令牌重新排列成其原始空间布局,以获得预测的噪声和协方差。
我们探索的完整DiT设计空间包括块大小、Transformer块架构和模型大小。