论文地址:https://arxiv.org/pdf/2211.08332.pdf
源码地址:https://github.com/shi-labs/versatile-diffusion
摘要
扩散模型的最新进展在许多生成任务中都取得了令人印象深刻的里程碑,而DALL-E2、Imagen和Stable diffusion等趋势作品引起了人们的极大兴趣。尽管形势变化很快,但最近的新方法关注的是扩展和性能,而不是容量,因此需要为单独的任务使用单独的模型。在这项工作中,我们将现有的单流扩散管道扩展为一个多任务多模态网络,称为通用扩散(VD),该网络在一个统一的模型中处理文本到图像、图像到文本和变体的多个流。VD的pipeline设计实例化了一个统一的多流扩散框架,由可共享和可交换的层模块组成,实现了超越图像和文本的跨模态通用性。
1. 引言
对多模态生成模型的研究仍然很少。以前,表现最好的生成视觉模型,生成对抗网络(GAN)仅仅关注特定的领域(即面孔,字体,自然场景等)以及具体的任务(图像修复,超分辨率,图像到图像的翻译等)。
扩散模型是基于似然的模型,它逐渐从高斯破坏中恢复图像内容。它已被证明在连接模态和任务方面是有效的,例如无条件生成、密度估计、超分辨率和文本到图像的生成。扩散模型的成功可以归因于几个方面。
- 训练比GAN网络更健壮,基于似然模型使得原理性更强,迭代精细化推理过程也以增加运行时间为代价扩展了模型能力。
- 最近的扩散模型如DALL-E2、Imagen和Stable diffusion的竞争性能得益于出色的数据收集,如LAION[80]、CC12M[12]、COYO[10]等。早期扩散模型的缺点,如数据饥饿和高推理成本,逐渐被更高效的结构和调度器所缓解。
- 到目前为止,这些工作几乎完全取决于单流扩散管道。尽管它们是跨模态的,但它们中的大多数都是在单个专门的生成任务(例如,文本到图像)上进行训练和评估的。
多功能扩散(VD),在一个统一的生成模型中全面解决文本,图像和变化。关键的底层技术是一种新的多流扩散框架,它将现有的单流扩散管道推广到同时处理多种模式和任务,同时有效地在它们之间共享信息。由于更大的容量以及捕获跨模态语义,VD不仅在上述支持的任务上表现良好,而且显著地派生了许多新功能,包括语义风格解耦、跨模态双上下文或多上下文生成(混合)。我们的主要贡献总结如下:
- 介绍了一种多模态、多任务的扩散网络,采用了一种新的广义多流管道,不同于现有的单流扩散模型。
- VD在一个统一的模型中解决多种模式和任务,包括图像生成(文本到图像、图像变化)和文本生成(图像到文本、文本变化)。且分数和质量上都优于基线。
- VD独特的多流多模态特性使更多新颖的衍生任务成为可能,这可能进一步促进下游用户参与该技术,包括语义风格解耦、双上下文和多上下文混合等。
2. 相关工作
多模态是不同形式的信息的结合,包括但不限于视觉、文本、音频等。早期深度学习工作学习了音频和视频的融合表示。类似的思路也被用于跨视觉和文本标签,以及跨视觉和语言。多模态方法的一部分专注于零样本学习,例如,DiViSE目标将图像映射到语义空间上,从语义空间中可以预测未见的类别标签。Socher等人训练了一个具有类似思想的识别模型,该模型将图像投影到文本语料库空间上。另一组研究侧重于通过多模态训练来提高分类精度:其中[65]和[41]对多模态嵌入进行了简单的拼接;[3]提出了一种门控单元来控制网络中的多模态信息流;[42]用多种融合方法对FastText进行了调查[36]。同时,在一次性检测和分割中也广泛采用了多模态训练[24,28,35]。另一个课题VQA进行了跨模态推理,将视觉概念转化为语言答案。将视觉概念提取为神经符号。
多模态生成任务:多模态生成任务涉及同步表征学习和生成/合成[91],其中具有对比损失的表征网络[99,45,25,96,64,95][66,15,1,93,94]发挥了重要作用。具体来说,我们的模型VD采用VAEs[45]和CLIP[66]作为网络的两个关键模块——潜在编码器和上下文编码器。VD还具有常见的跨模态概念,如领域转移[34,112]和联合表示学习[88,102,92]。
[45] Diederik P Kingma and Max Welling. Auto-encoding variational bayes. arXiv preprint arXiv:1312.6114, 2013. 2, 3
[66] Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, et al. Learning transferable visual models from natural language supervision. In International Conference on Machine Learning, pages 8748–8763. PMLR, 2021. 2, 3, 4
[34] Phillip Isola, Jun-Yan Zhu, Tinghui Zhou, and Alexei A Efros. Image-to-image translation with conditional adversarial networks. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 1125–1134, 2017. 2, 3
[112] Jun-Yan Zhu, Taesung Park, Phillip Isola, and Alexei A Efros. Unpaired image-to-image translation using cycleconsistent adversarial networks. In Proceedings of the IEEE international conference on computer vision, pages 2223– 2232, 2017. 2, 3
[88] Nitish Srivastava and Russ R Salakhutdinov. Multimodal learning with deep boltzmann machines. Advances in neural information processing systems, 25, 2012. 3
[102] Mike Wu and Noah Goodman. Multimodal generative models for compositional representation learning. arXiv preprint arXiv:1912.05075, 2019. 3
[92] Masahiro Suzuki, Kotaro Nakayama, and Yutaka Matsuo. Improving bi-directional generation between different modalities with variational autoencoders. arXiv preprint arXiv:1801.08702, 2018. 3
扩散模型(DM)[83,31]整合了大量的方法,包括VAEs[45,96,71]、马尔可夫链[6,83,78,85]和分数匹配模型[86,87]等。与基于gan的模型[25,8,39]和基于流的模型[72,44]不同,DM在逆向扩散过程中最小化了下界似然[31,86],而不是在流动过程中精确地逆求[72]或进行对抗性训练[25]。在最近的研究中,DDPM[31]促进了ε-预测,通过退火朗之万动态采样建立了扩散和分数匹配模型之间的联系[98,86]。DDPM在无条件生成任务中也显示出与gan相当的有希望的结果。另一项研究,DDIM[84],提出了一种隐式生成模型,从潜在变量中产生确定性样本。与DDPM相比,DDIM在不损失采样质量的前提下降低了采样成本。在效率方面,FastDPM[47]研究了连续扩散步骤,并以更快的采样时间表推广了DDPM和DDIM。另一项研究[79]用可学习的噪声估计取代了原始的固定采样方案,从而提高了速度和质量。[32]引入了一种递进增加维度的层次结构,加速了DM的图像生成。关于质量,
文生图:在最近的研究中,GLIDE[62]采用了预训练的语言模型和级联扩散结构进行文本到图像的生成。DALL-E2[69]是DALL-E[70]的升级版本,它利用CLIP模型[66]生成文本嵌入,并采用类似的层次结构,先生成256张文本引导图像,再扩展到1024张。同样,Imagen[76]使用条件扩散模型探索了多个文本编码器[16,68,66],并通过各种权重采样器探索了内容对齐和保真度之间的权衡。LDM[73]引入了一个新的方向,即模型在VAE潜空间而不是像素空间上扩散。这种设计减少了推理时间所需的资源,并且它的后一个版本SD已被证明在文本到图像的生成中同样有效。
3. 方法
3.1 扩散基础
正向扩散:正向扩散过程 p(xT |x0) 是一个马尔可夫链,具有 T 步,通过随机高斯噪声逐渐将 x0 降低到 xT(等式 1)。
后向扩散:给定前向扩散过程作为先验,训练扩散模型通过去除添加的高斯噪声来反转过程并从 xT 中恢复信号 x0。这被称为后向扩散过程,每个步骤 pθ (xt−1|xt) 是从具有网络预测均值 μθ (xt, t) 和方差 Σθ (xt, t) 的高斯分布中采样的,如公式 2 所示。
训练扩散模型的目标函数是最小化负对数似然的变分界,如式3所示。在实践中,许多工作假设方程1中步骤t的αt和βt是确定性的。考虑到前向和后向过程都是高斯过程,目标可以被简化为真实值和预测平均值之间的变分加权l2损失。
3.2 多流多模态扩散框架
通用扩散(VD)的核心部分是多流多模态扩散框架,以各种跨模态上下文(如图像,文本,音频等)为条件,能够生成各种形式的输出(如图像、文本、3D等)。VD中单个流的正式定义是使用模态m的上下文来合成模态n的特征。
说到细节,VD由于其多流框架而处理跨模式任务组,在该框架中,可以根据输入上下文和输出结果的模式激活或静音层。如图2所示,我们将所有扩散器层分为三组:全局层、数据层和上下文层。
全局层:是与流无关的层,将始终被激活。全局层是时间嵌入层
数据层:是输出相关层,当网络生成相应的输出类型时,这些层将被激活。数据层是残差块
上下文层:是上下文相关层,当输入相应的上下文类型时,这些层将被激活。上下文层是交叉注意力。
参考SD,VD的一个流将前馈传递路由通过共享的全局层和所选的数据和上下文层,而其他不相关的层将保持沉默(见图2)。以文本图像为例,t步中间结果xt将被馈送到图像数据块和文本上下文块,以生成下一步结果xt-1。同样,如果我们的目标是执行图像变化,我们需要使用图像数据块和图像上下文块。
有人可能会注意到,这种多流多模态框架极大地促进了参数共享。在这项工作中,VD默认设置是一个四流模型。为了复制这种四流VD,总共需要四个扩散模型(即大小是SD的四倍),而VD通过框架中的共享层将参数的数量减少了一半。VD 的一个更通用的版本处理 N × M 跨模态任务,具有 N 种类型的输出和 M 种类型的上下文。然后将模型的大小变为 O (max(N, M )),这明显小于需要累积大小为 O(N × M ) 的普通模型集成。
3.3 Versatile Diffusion(多功能扩散)
任务:文本到图像和图像到文本是两个众所周知的任务。图像变化 (IV,Image-variation) 是一个相当新的任务,用户可以生成在语义上与参考图像相似的新图像。IV 与 SD 的图像到图像 (I2I) [73] 相差两点 a) IV 从纯噪声扩散,而 I2I 从半混合噪声的图像扩散; b) IV 保持高级语义但放松低级结构,而 I2I 仅复制低级结构,不能保证高级语义。最后,VD 还可以生成文本的变化,因为它的多流性质,其目标是从参考文本生成相似的表达式。
网络:VD 的完整模型包括三个组件:a) 多流多模态扩散框架; b) VAE:将数据样本转换为潜在表示; c) 上下文编码器:将上下文编码为嵌入embedding。整个网络图如图3所示。Diffuser:我们使用带有交叉注意的UNet作为扩散器网络的主要结构。UNet 部分遵循 SD [73],我们采用残差块作为图像数据层,交叉注意作为文本和图像上下文层。对于文本数据层,我们提出了全连接残差块 (FCResBlock),它将 768 维文本潜在向量扩展为 320 × 4 的隐藏特征,并遵循与 GroupNorms [103]、SiLU [20] 和跳过连接类似的残差块范式(见图 4)。VAE:采用SD中得Autoencoder-KL[73] 作为图像VAE。同时,我们采用 Optimus [53] 作为我们的文本 VAE。Optimus 由 Bert [16] 文本编码器和 GPT2 [67] 文本解码器组成,通过该解码器可以将句子双向转换为 768 维正态分布的潜在向量。上下文编码器:我们使用 CLIP [66] 文本和图像编码器作为 VD 的上下文编码器。与SD使用原始文本嵌入作为上下文输入不同,我们使用归一化和投影嵌入来最小化 CLIP 文本图像对比损失。在我们的实验中,我们注意到上下文(即图像和文本)之间越接近嵌入空间越有助于快速收敛。
损失:训练VD非常简单。对于每个流,我们计算公式3中描述的变分加权l2损失,并进行规则的反向传播(见算法1)。当所有流的梯度累积时,模型权重将更新。此外,在更新权重时,我们手动设置数据层和上下文层参数的梯度尺度,以更好地适应我们的多流模型设置。
4. 实验
4.1 数据集
使用Laion2B-en[80]和COYO-700M[10]作为VD的训练数据。Laion2B 和 COYO 都是英文图像-文本对的集合,其中图像是从网站收集的,相应的字幕是从 HTML 页面中提取的。我们进一步用以下标准过滤所有数据:a) 图像-文本 CLIP 相似度得分高于 0.3; b) 安全分数(即 NSWF)低于 0.3; c) 包含水印低于 0.3 的概率; d) 图像纵横比在 0.6 到 1.66667 以内; e) 高于 2562 × 0.75 的图像区域。这些过滤后的样本作为我们所有 VD 实验的训练数据。此外,我们注意到网络爬取字幕往往是嘈杂的,因此我们使用附录 C.1 中描述的定制算法清理它们。
4.2 训练
我们通过三种设置逐步训练VD:单流、双流和四流,其中单流是图像变化模型;双流是文本到图像和图像变化模型;四流是具有我们在这项工作中主要描述的四个任务的主要VD模型。
在训练过程中,我们保留了接近DDPM[31]和SD[73]的扩散设置,即1000个扩散步骤,并根据步骤将β从8.5e−5线性增加到1.2e−2。单流和双流的学习率设置为 1.e - 4,四流学习率设置为 5.e - 5。单流模型使用 SD 检查点 v1.4 [73] 作为其初始权重,其他模型继续微调先前模型的最新检查点。在训练期间,我们为不同层的不同梯度尺度设置不同的梯度尺度,以最好地配合初始权重。可以在表1中找到这些细节。单流的有效批处理大小为2048,双流为1024,四流为512。学习率、批量大小和梯度尺度背后的逻辑是在训练期间大致平衡每个梯度步骤。所有模型都使用分辨率为 256 的 3000 万个样本进行训练,然后是分辨率为 512 的 640 万个样本。与 SDv1.4 相比,SDv1.4 在分辨率为 256 和 512 的 5亿 加上 2.3 亿个样本进行训练,VD 的训练成本更实惠,有利于研究人员长期。
4.3 性能
我们选择SDv1.4[73]作为文本到图像的基线;SD-variation[37](即图像变化的微调SD)作为我们的图像变化基线;和BLIP[54]作为图像到文本的基线。我们对基线和各种版本的VD进行了定性和定量比较,即文本到图像的双流和四流模型,以及图像变化的所有三种模型。虽然DALLE2[69]和Imagen[76]也实现了文本到图像的SOTA,但由于没有公开可用的代码和模型,没有对它们进行比较。对于图像到文本(即图像字幕),我们只将BLIP[54]与我们的四流VD进行比较,因为其他设置不支持此任务。
图5将VD的定性性能与其基线进行了比较,其中每行中的图像都是用相同的随机种子创建的,以便更好地进行质量检查。我们还通过将30000个随机生成的样本与COCO-caption的验证集进行比较来计算文本到图像和图像变化的FID分数[56]。在图6中,我们列出了VD的性能以及其他相关工作。我们还根据无条件指导量表(即无分类器指导量表)绘制了VD的FID变化。最后,我们对来自COCO-Caption[56]的2000个样本进行了用户研究,这些样本由四个版主划分,其中版主被要求投票选择质量更好或“同样好”(见图7)。
4.4 风格与语义分离
VD的一个令人兴奋的发现是,它可以在没有进一步监督的情况下从语义上增强或减少图像样式。这种现象激发我们去探索一个新的领域,在这个领域中,风格和语义之间的分离可以发生在具有任意风格的任意内容的图像上。回想一下,先前的工作,如[5,26],在GAN潜在空间中探索了类似的特性,但他们的研究领域仅限于对齐良好的数据,如人脸或教堂。据我们所知,我们是第一个探索:a)在没有领域规范的自然图像上的无监督语义和风格分离;B)扩散模型潜在空间的语义和风格分离。图8显示了VD的解缠结果。实际上,我们注意到两流和四流模型都具有相似的性能,而单流模型的性能略低。这可能是由于标题不可知和训练不足,降低了模型的能力。更多的细节和分析可以在附录A.1中找到。
4.5 双上下文和多上下文混合器
图9比较了使用一个文本和一个图像的双上下文结果,其中我们使用SDv1.4[73](文本到图像)和SD变体[37](图像变体)的混合作为我们的基线(标记为SD)。VD的良好性能很大程度上归功于它的多流结构,通过这种结构,可以在更深层(即层级或注意力级)上合并来自不同上下文的中间特征,而不是在扩散步骤之间的浅层模型级上合并。有关混合水平的更多细节可在附录A.2中找到。
我们进一步将这个任务扩展为一个具有多上下文的更广义的形式,从而产生了多上下文blender应用程序。用于VD的多上下文搅拌器支持可选的文本上下文,多个图像上下文和可选的图像蒙版,以便通过更详细的控件指导生成过程。图10显示了我们的多上下文搅拌器的性能。请注意,还有其他最近的作品,如[30,9,109,13,75,50,40],专注于更广泛的图像编辑主题。我们鼓励读者查看附录A.2和A.3以获得更多细节和比较。
5. 结论
在本文中,我们提出了多功能扩散,它可以同时处理文本、图像和变体,从中我们概括了一个多流多模态框架,可以进一步扩展到新的任务和领域。通过包容性实验,我们证明了这种多流多模态扩散方法在主要任务和应用中都能很好地完成任务。此外,VD可以成为通用人工智能研究的启发式步骤。