目录
总结
一、Introduction
二、Methods
2.1 Decoder
2.2 Prior
三、Image Manipulations
3.1 Variations
3.2 Interpolations
3.3 Text Diffs
四、Probing the CLIP Latent Space
五、Text-to-Image Generation
5.1 Importance of the Prior
5.2 Human Evaluations
5.3 Improved Diversity-Fidelity Trade-off with Guidance
5.4 Comparison on MS-COCO
5.5 Aesthetic Quality Comparison
六、Limitations and Risks
参考(具体细节见原文)
类似CLIP的对比模型已经被证明可以学习图像语义和风格稳健的图像表征。为了利用这些表示来生成图像,作者提出了一个两阶段模型:
- prior:给定文本标题生成CLIP图像embedding。
- decoder:以图像embedding为条件生成图像。
作者表明,明确地生成图像表征提高了图像的多样性,在逼真度和标题的相似度方面损失最小。作者以图像表征为条件的解码器也能产生图像的变化,保留其语义和风格,同时改变图像表征中不存在的非必要细节。此外,CLIP的联合嵌入空间使语言指导下的图像操作能够以zreo-shot的方式进行。作者对解码器使用扩散模型,并对先验的自回归和扩散模型进行实验,发现后者在计算上更有效率,并产生更高质量的样本。
CLIP embeddings有一些理想的特性:它们对图像分布的偏移是稳健的,有惊人的zero-shot能力,并已被微调以在各种视觉和语言任务上取得最先进的结果。同时,扩散模型作为一个有前途的生成性建模框架出现,推动了图像和视频生成任务的最先进水平。扩散模型利用一种guidance技术,以样本的多样性为代价提高了样本的保真度(对于图像来说,就是逼真度)。
作者将这两种方法(CLIP、diffusion)结合起来,用于文本条件下的图像生成问题。作者首先训练一个扩散解码器来反转CLIP图像编码器。由于反转器并不是固定的,可以产生对应于给定图像embedding的多个图像。编码器和解码器的存在允许文本到图像的翻译能力。正如在GAN中,对输入图像进行编码和解码会产生语义上相似的输出图像(图3)。还可以通过对输入图像的图像embeddings进行反转插值来实现输入图像之间的插值(图4)。
DALL-E 2 的亮点如下:
- DALL-E 2 展示了深度学习中扩散模型(Diffusion)的强大功能,因为 DALL-E 2 中的先验和图像生成子模型都是基于扩散的。虽然在过去几年才开始流行,但扩散模型已经证明了自身价值,一些关注深度学习研究的人也期望在未来看到更多进展。
- 展示了使用自然语言作为训练深度学习 SOTA 模型的手段的必要性和力量。这一点并非源于 DALL-E 2,但重要的是认识到, DALL-E 2 的力量是源于可在互联网上获得大规模匹配的自然语言 / 图像数据。使用这些数据消除了手动标注数据集的高成本和相关瓶颈,但这类数据嘈杂、未经处理的性质也反映了深度学习模型必须具备面对真实数据的鲁棒性。
- DALL-E 2 重申了 Transformer 的地位,鉴于它们具有令人印象深刻的并行性,因此对于在网络规模数据集上训练的模型来说是至高无上的。
模型主要架构如图2所示(作者将DALL-E 2在文章中称为unCLIP),上部是一个CLIP,输入为文本图像对,文本信息和图像信息分别经过文本编码器和图像编码器提取文本特征C和图像特征C,文本特征C和图像特征C也是成对存在。下方作为DALL-E 2主体部分,主要由prior和decoder两阶段。首先,文本信息经过文本编码器提取文本特征D,然后prior根据文本信息D生成图像特征D。训练过程中,图像特征C作为图像特征D的ground truth进行训练,也就是说训练时DALLE2生成的图像特征D时不时的看一下CLIP生成的对应文本的图像特征C。最后通过一个解码器decoder根据图像特征D生成图像。
作者使用扩散模型来产生以CLIP图像embedding为条件的图像(以及可选择的文本标题)。具体来说,作者将CLIP embedding投射到现有的时间步长的嵌入中,并将CLIP embedding投射到四个额外的上下文标记中,这些标记被串联到GLIDE文本编码器的输出序列。 作者保留了原始GLIDE模型中存在的文本调节途径,假设它可以让扩散模型学习CLIP未能捕捉到的自然语言的各个方面(例如变量绑定),但发现它在这方面提供的帮助很小(原文第7节)。
虽然可以直接从解码器的条件分布中取样,但过去使用扩散模型的工作表明,使用对条件信息的指导可以大大改善样本质量。为了生成高分辨率的图像,作者训练了两个扩散上采样模型:一个将图像从64×64的分辨率上采样到256×256,另一个将图像进一步上采样到1024×1024的分辨率(这也是标题中层级的意思)。为了提高上采样器的鲁棒性,作者在训练过程中对条件图像进行了轻微的破坏。对于第一个升采样阶段,我们使用高斯模糊,而对于第二个阶段,我们使用更多样化的BSR退化。
虽然解码器可以反转CLIP图像嵌入 以产生图像
,但需要一个从标题
产生
的先验模型,以使图像从文本标题中产生。作者为先验模型探索两种不同的模型类别:
- AR(Autoregressive) prior:CLIP图像嵌入
被转换为一串离散的代码,并以标题
为条件进行自回归预测。
- Diffusion prior:连续矢量
直接使用高斯扩散模型,以标题
为条件进行建模。
为了更有效地训练和从AR prior中取样,作者首先通过PCA来降低CLIP图像嵌入的维度 。特别是,我们发现在用SAM训练CLIP时,CLIP表示空间的维度急剧减少,同时略微改善评价指标。 作者对文字标题和CLIP文本嵌入的AR prior进行编码,将它们作为序列的前缀。此外,作者在前面加上一个标记,表示文本嵌入和图像嵌入之间的(量化的)点积,
。这使能够以较高的点积作为模型的条件,因为较高的文本-图像点积对应于能够更好地描述图像的标题。在实践中,作者发现从分布的上半部分取样点积是有益的。
对于Diffusion prior,作者在一个序列上训练一个带有causal attention mask 的只有解码器的Transformer。作者不选择像AR prior中那样将Diffusion prior置于上;相反,通过生成两个
的样本并选择与
有较高点积的样本来提高采样时间的质量。作者直接训练模型来预测未噪声的
,并对这个预测使用均方误差损失:
DALL-E 2会把任何给定的图像 编码成一个潜在表征对
,足以让解码器产生一个准确的重建。
描述了被CLIP识别的图像的各个方面,而
则编码了解码器重建
所需的所有剩余信息。前者是通过简单地用CLIP图像编码器对图像进行编码得到的。后者是通过使用解码器将DDIM反转应用于
,同时以
为条件得到的。
给定一个图像 ,可以产生相关的图像,这些图像具有相同的基本内容,但在其他方面有所不同,如形状和方向(图3)。
为了做到这一点,作者使用DDIM将解码器应用于表征对 ,用
进行采样。当
时,解码器成为确定性的,将重建给定的图像
。较大的
值将随机性引入到连续的采样步骤中。随着
的增加,这些变化告诉我们哪些信息在CLIP图像嵌入中被捕获(因此在不同的样本中被保留),哪些被丢失(因此在不同的样本中变化)。
也有可能混合两幅图像 和
的变化(图4)。为了做到这一点,作者使用球面插值在它们的CLIP嵌入
和
之间进行旋转,当
从0到1变化时,产生中间的CLIP表示
。
沿着轨迹产生中间的DDIM有两种选择。第一种方案是在它们的DDIM倒置潜点 和
之间进行内插(通过设置
)。第二种方法是将DDIM的潜点固定为轨迹中所有插值的随机抽样值。这导致在
和
之间有无限多的轨迹,尽管这些轨迹的端点通常不再与原始图像重合。作者在图4中使用了这种方法。
与其他图像表征模型相比,使用CLIP的一个关键优势是,它将图像和文本嵌入到相同的潜在空间,从而使我们能够应用语言引导图像操作(即text diffs)。作者在图5中展示了这一点。
为了修改图像以反映一个新的文本描述 ,首先获得其CLIP文本嵌入
,以及描述当前图像的标题的CLIP文本嵌入
。然后,通过取其差值和归一化,从这些文本中计算出一个文本差异向量
。可以使用球形插值在图像CLIP嵌入
和文本扩散向量
之间进行旋转,产生中间的CLIP表示
,其中θ从0线性增加到一个最大值,通常在[0.25, 0.50]。通过解码插值
产生最终输出,在整个轨迹中把基础DDIM噪声固定为
。
解码器允许直接可视化CLIP图像编码器所看到的东西来探索CLIP的潜在空间。作者重新审视CLIP做出不正确预测的情况,比如字体攻击。在这些对抗性图像中,一段文字被叠加在一个物体之上,这导致CLIP预测由文字描述的物体而不是图像中描绘的物体。在图6中,作者展示了一个来自这种攻击的例子,其中一个苹果会被错误地归类为一个iPod。
PCA重构提供了另一个探测CLIP潜在空间结构的工具。在图7中,作者采取了少数源图像的CLIP图像嵌入,并用逐渐增加的PCA维度来重构它们,然后用解码器和固定种子上的DDIM来可视化重建的图像嵌入。
早期的PCA维度保留了粗粒度的语义信息,如场景中的物体类型,而后期的PCA维度则编码了更细粒度的细节,如物体的形状和具体形式。例如,在第一个场景中,早期的维度似乎编码了有食物,而后期的维度则具体编码了西红柿和瓶子。图7也是AR prior的可视化,因为AR prior明确地预测这些主成分的顺序。
尽管训练了一个prior,以便从字幕中生成CLIP图像嵌入,但prior对于字幕到图像的生成并非严格必要。例如,解码器可以对CLIP图像嵌入和字幕进行调节,但在训练过程中,CLIP图像嵌入有5%的时间被放弃,以便实现classifier-free guidance。因此,在采样时,可以只以标题为条件,尽管这低于完全以这种方式训练的模型(如GLIDE)。另一种是把CLIP的文本嵌入当作图像嵌入来喂给解码器。
图8的前两行描述了以这两种方式获得的图像,第三行描述了以prior获得的图像。仅以标题为条件的解码器显然是最差的,但以文本嵌入的zero-shot 为条件确实产生了合理的结果。基于这一观察,另一种方法是训练解码器以CLIP文本嵌入为条件,而不是CLIP图像嵌入。
鉴于prior的重要性,值得对不同的训练方法进行评估。作者在整个实验中比较了AR prior和扩散prior。结果表明,在模型规模和减少的训练计算量方面,扩散 prior优于AR prior。
在图1中观察到,unCLIP(DALL-E 2)能够合成复杂、真实的图像。虽然可以使用FID将样本质量与过去的模型进行比较,但它并不总是与人工的判断相一致。为了更好地衡量模型的生成能力,作者进行了系统的人工评估,将unCLIP与GLIDE在逼真度、标题相似度和样本多样性方面进行比较。
表1中展示了结果。一般来说,在与GLIDE的配对比较中,扩散 prior比AR prior表现得更好。在逼真度方面,人类仍然略微偏爱GLIDE而不是unCLIP,但差距非常小。即使有相似的逼真度,unCLIP在多样性方面也比GLIDE更受青睐,这突出了它的一个优点。
与GLIDE相比,从质量上观察到unCLIP能够产生更多不同的图像,同时利用guidance来提高样本质量。对于GLIDE,语义(相机角度、颜色、大小)随着增加guidance规模而收敛,而对于unCLIP,场景的语义信息被冻结在CLIP图像嵌入中,因此在引导解码器时不会崩溃。
在第5.2节中,unCLIP实现了与GLIDE相似的逼真度,同时保持了更多的多样性,但是它的标题匹配能力略差。那么GLIDE的guidance尺度是否可以降低,以获得与unCLIP相同的多样性水平,同时保持更好的字幕匹配能力 。在图10中,作者对这个问题进行了更仔细的研究,在GLIDE的几个指导尺度上进行了人类评价。发现GLIDE在引导尺度为2.0时,非常接近unCLIP的逼真度和标题相似度,而产生的样本种类仍然较少。最后,在图11中,作者计算了MS-COCO的zero-shot FID,同时对unCLIP和GLIDE的guidance规模进行了扫描,发现guidance对unCLIP的FID的减少比GLIDE小得多。
在文本条件下的图像生成文献中,在MS-COCO验证集上评估FID已经成为标准做法。作者在表2中介绍了这个基准的结果。像GLIDE和DALL-E一样,unCLIP没有直接在MS-COCO训练集上进行训练,但是仍然可以归纳到验证集的zero-shot。与这些其他的zero-shot模型相比,unCLIP在用扩散 prior取样时达到了新的最先进的FID,即10.39。在图12中,作者将unCLIP与最近在MS-COCO的几个标题上的各种文本条件图像生成模型进行了直观的比较。结果发现,和其他方法一样,unCLIP产生了捕捉文本提示的真实场景。
作者还对unCLIP和GLIDE进行了自动美学质量评估。这一评估的目的是评估每个模型在制作艺术插图和照片方面的表现。作者使用GPT-3生成了512个 "艺术性 "标题,用现有艺术品(包括真实的和AI生成的)的标题来提示它。接下来,使用AVA数据集训练一个CLIP来预测人类的审美判断。
图13展示了美学质量评估的结果。GLIDE和unCLIP来说,guidance都能提高审美质量。对于unCLIP,只对解码器进行引导(guidance prior会损害结果)。作者还绘制了审美质量与Recall的对比图。 有趣的是,我guidance unCLIP并没有降低召回率,而根据这个指标,仍然可以提高审美质量。
虽然以CLIP嵌入为条件的图像生成提高了多样性,但这种选择确实有一定的局限性。特别是,unCLIP在将属性与对象绑定的能力比GLIDE模型差。在图14中,发现在必须将两个单独的对象(立方体)与两个单独的属性(颜色)结合起来的提示下unCLIP比GLIDE更加艰难。作者猜想这是因为CLIP嵌入本身没有明确地将属性绑定到对象上,并且发现来自解码器的重建经常将属性和对象混在一起,如图15所示。
unCLIP在产生连贯的文本方面很糟糕,如图16所示。可能是CLIP的嵌入没有精确地编码渲染文本的拼写信息。这个问题可能变得更糟,因为使用的BPE编码对模型来说掩盖了标题中单词的拼写,所以模型需要独立地看到训练图像中写出的每个标记,以便学习渲染它。
unCLIP仍然很难在复杂场景中产生细节(图17)。作者猜想这是解码器层次的限制,在64×64的基本分辨率下产生一个图像,然后对其进行升采样。在更高的基础分辨率下训练unCLIP解码器应该能够缓解这个问题,但要付出额外的训练和推理计算的代价。
正如GLIDE论文中所讨论的,图像生成模型具有欺骗性和其他有害内容有关的风险。unCLIP的性能改进也提高了GLIDE的风险状况。随着技术的成熟,它的输出在人工智能生成的痕迹和指标方面越来越少,这使得人们更容易将生成的图像误认为是真实的图像。还需要对如何改变模型在训练数据中学习偏见的方式进行更多研究。这些模型的风险应结合特定的部署环境进行评估,其中包括训练数据、防护措施、部署空间以及权限。
原文链接:https://doi.org/10.48550/arXiv.2204.06125https://doi.org/10.48550/arXiv.2204.06125
代码:GitHub - lucidrains/DALLE2-pytorch: Implementation of DALL-E 2, OpenAI's updated text-to-image synthesis neural network, in Pytorchhttps://github.com/lucidrains/DALLE2-pytorch
李沐视频讲解:DALL·E 2【论文精读】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV17r4y1u77B/?spm_id_from=333.999.0.0
推荐一些博客: