15、Scalable Diffusion Models with Transformers

2024-04-04 00:28

本文主要是介绍15、Scalable Diffusion Models with Transformers,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

简介

官网
在这里插入图片描述
DiT(Diffusuion Transformer)将扩散模型的 UNet backbone 换成 Transformer,并且发现通过增加 Transformer 的深度/宽度或增加输入令牌数量,具有较高 Gflops 的 DiT 始终具有较低的 FID(~2.27),这样说明 DiT 是可扩展的(Scalable),网络复杂度(以 Gflops 度量)与样本质量(以 FID 度量)之间存在强相关性。

在这里插入图片描述

实现流程

在这里插入图片描述

Patchify

对于 256 × 256 × 3 256 \times256\times3 256×256×3 的图片, 中间特征 z 的维度是 32 × 32 × 4 32\times32\times4 32×32×4。DiT 的第1步和 ViT 一样,都是把图片 Patchify,并经过 Linear Embedding,最终变为 T 个 d 维的 tokens。在 Patchify 之后,将标准的基于 ViT 频率的位置编码 (sine-cosine 版本) 应用到所有的输入 tokens 上面。token T 的数量由 Patch 的大小 p 决定。Patch 的大小 p 和 token 的数量 T 之间满足 T = ( I / p ) 2 T=(I/p)^2 T=(I/p)2 的关系。当 Patch 的大小 p 越小时,token 的数量 T 越大。减半 p 将会使 T 变为4倍,使得计算量也变为4倍。尽管 p 对 GFLOPs 有显著的影响,但参数量没有很实质的影响。
在这里插入图片描述
在 DiT design space 里面使用 p = 2 , 4 , 8 p=2,4,8 p=2,4,8

DiT block design

在patchify之后,输入令牌由一系列转换器块处理。除了带噪声的图像输入,扩散模型有时还处理附加的条件信息,如噪声时间步长 t、类标签 c、自然语言等。

作者探索了4种不同类型的 Transformer Block,以不同的方式处理条件输入。这些设计都对标准 ViT Block 进行了微小的修改。

In-context conditioning

在这里插入图片描述
像这样的带条件输入的情况,In-context conditioning 的做法只需要将时间步长 t , 类标签 c 作为2个额外的 token 附加到输入的序列中。作者将它们视为与图像的 token 没有任何区别。这就有点类似于 ViT 的 [CLS] token。这就允许 DiT 使用标准的 ViT Block 而不用任何修改。经过了最后一个 Block 之后,删除条件 token 就行。这种方式带来的额外 GFLOPs 微不足道。

Cross-attention block

在这里插入图片描述
Cross-attention block 的做法是将 t和 c 的 Embedding 连接成一个长度为2的 Sequence,且与 image token 序列分开。这种方法给 Transformer Block 添加一个 Cross-Attention 块。这个操作带来的额外 GFLOPs 开销是大约 15%。

Adaptive layer norm (adaLN) block.

Adaptive Layer Norm (adaLN) Block 遵循 GAN[15]中的自适应归一化层,希望探索这个东西在扩散模型里面好不好用。没有直接学习缩放和移位参数 γ \gamma γ β \beta β ,而是改用噪声时间步长 t 和类标签 c 得到。adaLN 带来的额外的 GFLOPs 是最少的,因此计算效率最高。它也是唯一一种限制于将相同函数应用于所有令牌的条件调节机制

这里补充一些知识,归一化的一般公式是: z ˉ = z − μ σ 2 + ϵ ⊙ γ + β \bar{z} = \frac{z-\mu}{\sqrt{\sigma^2+\epsilon} }\odot \gamma + \beta zˉ=σ2+ϵ zμγ+β ,其中 z 是激活值, μ , σ 2 \mu,\sigma^2 μ,σ2 是根据激活值按照某个规则(如 BatchNorm、LayerNorm、GroupNorm等)计算出来的均值和方差。 γ , β \gamma,\beta γ,β 是两个可学习的参数。

主要是由于自适应归一化层(adaptive normalization layers)在 GAN 和 UNet backbone 中的广泛使用(归一化的参数(如均值和方差)是根据当前批次的数据或特定层的激活值计算得出的。而在自适应归一化层中,这些参数可能会根据另一组数据(如风格图像)进行调整,以实现特定的效果),考虑将 Transformer 块中的 standard layer norm layers 替换成 adaptive layer norm (adaLN)。不同的是,对于其中的 scale and shift parameters 即 γ , β \gamma,\beta γ,β ,并不是直接学习它们,而是从
t 和 c 的 embedding vector 的和去回归这两个参数。

adaLN-Zero block

在这里插入图片描述
在有监督学习中,对每个 Block 的第一个 Batch Norm 操作的缩放因子进行 Zero-Initialization 可以加速其大规模训练。基于 U-Net 的扩散模型使用类似的初始化策略,对每个 Block 的第一个卷积进行 Zero-Initialization。本文作者作了一些改进:除了回归计算缩放和移位参数 γ \gamma γ β \beta β 之外,还回归缩放系数 α \alpha α

作者初始化 MLP 使其输出的缩放系数 α \alpha α 全部为0,这样一来,DiT Block 就初始化为了 Identity Function。adaLN-Zero Block 带来的额外的 GFLOPs 可以忽略不计。

Transformer Decoder

在最后一个 DiT Block 之后,需要将 image tokens 的序列解码为输出噪声以及对角的协方差矩阵的预测结果。

而且,这两个输出的形状都与原始的空间输入一致。作者在这个环节使用标准的线性解码器,将每个 token 线性解码为 P × P × 2 C P\times P \times 2C P×P×2C 的张量,其中 C 是空间输入中到 DiT 的通道数。最后将解码的 tokens 重新排列到其原始空间布局中,得到预测的噪声和协方差。

模型尺寸

遵循 ViT 的做法,作者在缩放 DiT 时也是从下面几个维度进行考虑:深度 N ,hidden dimension d,head 数量。作者设计出4种不同尺寸的 DiT 模型 DiT-S, DiT-B, DiT-L 和 DiT-XL,从 0.3 到 118.6 GFLOPs,详细信息如下图所示。
在这里插入图片描述

实验

在这里插入图片描述
在这里插入图片描述

这篇关于15、Scalable Diffusion Models with Transformers的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/874366

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

Adblock Plus官方规则Easylist China说明与反馈贴(2015.12.15)

-------------------------------特别说明--------------------------------------- 视频广告问题:因Adblock Plus的局限,存在以下现象,优酷、搜狐、17173黑屏并倒数;乐视、爱奇艺播放广告。因为这些视频网站的Flash播放器被植入了检测代码,而Adblock Plus无法修改播放器。 如需同时使用ads

[论文笔记]LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale

引言 今天带来第一篇量化论文LLM.int8(): 8-bit Matrix Multiplication for Transformers at Scale笔记。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 大语言模型已被广泛采用,但推理时需要大量的GPU内存。我们开发了一种Int8矩阵乘法的过程,用于Transformer中的前馈和注意力投影层,这可以将推理所需

15 组件的切换和对组件的data的使用

划重点 a 标签的使用事件修饰符组件的定义组件的切换:登录 / 注册 泡椒鱼头 :微辣 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

使用亚马逊Bedrock的Stable Diffusion XL模型实现文本到图像生成:探索AI的无限创意

引言 什么是Amazon Bedrock? Amazon Bedrock是亚马逊云服务(AWS)推出的一项旗舰服务,旨在推动生成式人工智能(AI)在各行业的广泛应用。它的核心功能是提供由顶尖AI公司(如AI21 Labs、Anthropic、Cohere、Meta、Mistral AI、Stability AI以及亚马逊自身)开发的多种基础模型(Foundation Models,简称FMs)。

Differential Diffusion,赋予每个像素它应有的力量,以及在comfyui中的测试效果

🥽原论文要点 首先是原论文地址:https://differential-diffusion.github.io/paper.pdf 其次是git介绍地址:GitHub - exx8/differential-diffusion 感兴趣的朋友们可以自行阅读。 首先,论文开篇就给了一个例子: 我们的方法根据给定的图片和文本提示,以不同的程度改变图像的不同区域。这种可控性允许我们再现