DALL·E

3年前更新 57,248 0 0

OpenAI从文本到图像,超现实主义的图像生成器

收录时间:
2023-12-27

DALL·E 模型是 OpenAI 推出的文本-图像生成工具,目前为止 OpenAI 推出了三个版本:DALL·E 、 DALL·E2 、DALL·E3,这三个版本的技术架构并不同,DALL·E 是基于 VQ-VAE和GPT的,而 DALL·E2 是基于扩散模型的。

DALL·E vs DALL·E2 vs DALL·E3

DALL·E2 的效果远超 DALL·E。

DALL·E 3与前两代DALL·E、DALL·E 2相比,在语义理解、图片质量、图片修改、图片解读、长文本输入等方面实现了质的飞跃,尤其是与ChatGPT的相结合,成为OpenAI全新的王牌应用。

论文地址:https://cdn.openai.com/papers/dall-e-3.pdf‌

相比之前的DALL.E2,DALL.E3对细节方面把握的更好。此外之前的文生图模型对prompt要求比较高,这样促使人人都是prompt工程师,这给一些新用户或者文生图小白设置了一定的门槛,而DALL.E3能够轻松地将想法转化为非常准确的图像。

DALL·E 3 最厉害之处在于它与ChatGPT进行强强联合,ChatGPT可以作为prompt的优化器,当输入prompt后,ChatGPT将自动为DALL·E 3生成量身定制的更加详细的prompt。如果你喜欢某个特定的图像,但是无法很好的表述prompt时,可以输入ChatGPT几个字就可以进行调整生成更加详细的表述。

DALL-E 历史

DALL-E是一个可以通过文本描述中生成图像的人工智能程序。于2021年1月5日由OpenAI发表。

2022年4月,OpenAI宣布了新版本的DALL-E 2,声称它可以从文本描述中生成照片般逼真的图像,另外还有一个允许对输出进行简单修改的编辑器。

OpenAI称DALL-E 2是一个“可以从文本描述中生成原创、逼真的图像和艺术”的模型。

2022年9月28日,DALL·E 2向所有人开放,并取消了等候名单要求。

2023 年 9 月,OpenAI 发布了他们最新的图像模型 DALL·E 3,与以前的迭代相比,该模型能够理解“明显更多的细微差别和细节”。

 

DALL-E名称由来

DALL·E的名称是皮克斯动画机器人角色 WALL-E 和西班牙超现实主义艺术家萨尔瓦多·达利 (Salvador Dalí) 名字的组合。

DALL-E3模型

DALL·E 3与前两代DALL·E、DALL·E 2相比,在语义理解、图片质量、图片修改、图片解读、长文本输入等方面实现了质的飞跃,尤其是与ChatGPT的相结合,成为OpenAI全新的王牌应用。

论文地址:https://cdn.openai.com/papers/dall-e-3.pdf‌

下面「AIGC开放社区」将根据DALL·E 3的论文为大家解读其主要技术原理,各个模块的功能。

研究人员发现,文本生成图像模型在遵循详细的图片描述时经常存在各种难题,会忽略提示中的词语或混淆其含义,根本原因就是训练数据集中图像描述的质量较差。

为了验证这一假设,研究人员首先训练了一个生成描述性图像字幕的模型。该模型经过精心训练,可以为图像生成详细和准确的描述。

在使用这个模型为训练数据集重新生成描述后,研究人员比较了在原始描述和新生成描述上训练的多个文本生成图像模型。

结果表明,在新描述上训练的模型在遵循提示方面,明显优于原始描述模型。随后在大规模数据集上使用这种方法训练了——DALL-E 3。

从DALL-E 3的技术架构来看,主要分为图像描述生成和图像生成两大模块。

图像描述生成模块

该模块使用了CLIP(Contrastive Language-Image Pretraining)图像编码器和GPT语言模型(GPT-4),可为每张图像生成细致的文字描述。

研究人员通过构建小规模主体描述数据集、大规模详细描述数据集以及设置生成规则等方法,使模块输出的图像描述信息量大幅提升,为后续生成图像提供强力支持。主要各个模块功能如下:

1)CLIP图像编码器

CLIP是一个训练好的图像文本匹配模型,可以将一张图像编码成一个固定长度的向量,包含了图像的语义信息。DALL-E 3利用CLIP的图像编码器,将训练图像编码为图像特征向量,作为条件文本生成的一部分输入。

2)GPT语言模型

DALL-E 3基于GPT架构建立语言模型,通过最大化随机抽取文本序列的联合概率,学习生成连贯的文字描述。

3)条件文本生成

将上述两者结合,图像特征向量与之前的单词序列一同输入到GPT语言模型中,就可以实现对图像的条件文本生成。通过训练,该模块学会为每张图像生成细致Descriptive的描述。

4)优化训练

尽管DALL-E 3的基础架构已经完成了,但直接训练的结果还不够理想,无法生成细节丰富的描述。所以,研究人员进行了以下技术优化:

  • 构建小规模数据集,专门收集主体物详细描述,微调语言模型,倾向于描述图像主体。
  • 构建大规模详细描述数据集,描述主体、背景、颜色、文本等各个方面,通过微调进一步提升描述质量。
  • 设置生成描述的长度、样式等规则,防止语言模型偏离人类风格。

图像生成模块

该模块先用VAE将高分辨率图像压缩为低维向量,降低学习难度。然后,使用T5 Transformer将文本编码为向量,并通过GroupNorm层将其注入diffusion模型,指导图像生成方向。

研究人员认为,额外加入的Diffusion模型显著增强了图片细节生成的效果。具体流程如下:

1)图像压缩

将高分辨率图像先通过VAE模型压缩为低维向量,以降低图像生成的难度。DALL-E 3采用8倍下采样,256px图像压缩为32×32大小的latent向量。

2)文本编码器

使用T5 Transformer等网络将文本提示编码为向量,以便注入到图像生成模型中。

3)Latent Diffusion

这是图像生成的核心技术,将图像生成问题分解为多次对噪声向量的小规模扰动,逐步邻近目标图像。关键是设计恰当的前向过程和反向过程。

4)文本注入

将编码好的文本向量,通过GroupNorm层注入到Latent Diffusion模型中,指导每轮迭代的图像生成方向。

5)优化训练

研究人员发现,在压缩image latent空间上再训练一个Diffusion模型,可以进一步提升细节生成质量。这也是DALL-E 3比前两代生成的图片质量更好的原因之一。

CLIP评估数据

研究人员首先利用CLIP模型计算DALL-E 3生成图片与原描述文本的相似度,即CLIP得分。他们随机抽取了MSCOCO数据集中4096条图像描述作为提示文本,分别让DALL-E 2、DALL-E 3和Stable Diffusion XL生成对应图片,然后计算三者的平均CLIP得分。

结果显示,DALL-E 3的CLIP得分达到32.0,优于DALL-E 2的31.4和Stable Diffusion XL的30.5。

这表明DALL-E 3生成的图片与原始描述文本的契合度更高,文本指导图像生成的效果更好。

Drawbench评估数据

在Drawbench数据集上比较了各模型的表现。该数据集包含许多脆弱的文本提示,考验模型对提示的理解力。

研究人员使用GPT-V这个配备视觉能力的语言模型来自动判断生成图片的正确性。

在短文本提示的子测试中,DALL-E 3正确生成图像的比例达到70.4%,显著超过DALL-E 2的49%和Stable Diffusion XL的46.9%。

在长文本提示上,DALL-E 3的正确率也达到81%,继续领先其他模型。

T2I-CompBench评估

通过T2I-CompBench中的相关子测试,考察模型对组合类提示的处理能力。在颜色绑定、形状绑定和质感绑定三项测试中,DALL-E 3的正确绑定比例均高居各模型之首,充分展现了其理解组合提示的强大能力。

人工评估

研究人员还邀请了人工在遵循提示、风格连贯性等方面对生成样本进行判断。在170条提示的评估中,DALL-E 3明显优于Midjourney和Stable Diffusion XL。

DALL·E

DALL-E2模型

DALL·E 的模型是 GPT-3的多模式实现,具有 120 亿个参数,“将文本交换为像素”,并根据来自互联网的文本-图像对进行训练。

具体来说,Transformer 模型的输入是一系列标记化图像标题后跟标记化图像补丁图像标题为英文,通过字节对编码进行标记(词汇大小 16384),最长可达 256 个标记。 每个图像都是 256×256 RGB 图像,分为 32×32 个块,每个块 4×4。 然后,每个补丁由离散变分自动编码器转换为令牌(词汇量大小 8192)。

DALL·E与CLIP(对比语言-图像预训练)联合开发并向公众公布。CLIP 是一个基于零样本学习的独立模型,它是在 4 亿对带有从互联网上抓取的文本标题的图像上进行训练的。其作用是通过从数据集中随机选择的 32,768 个标题(其中一个是正确答案)中预测哪一个标题最适合图像,来“理解并排序”DALL·E 的输出。 该模型用于过滤 DALL·E 生成的更大的初始图像列表,以选择最合适的输出。

DALL·E 2 使用 35 亿个参数,比其前身要少。 DALL·E 2 使用以 CLIP 图像嵌入为条件的扩散模型,在推理过程中,该扩散模型是由先前模型从 CLIP 文本嵌入生成的。

DALL·E

DALL·E的目标是把文本token和图像token当成一个数据序列,通过Transformer进行自回归。由于图片的分辨率很大,如果把单个pixel当成一个token处理,会导致计算量过于庞大,于是DALL·E引入了一个dVAE模型来降低图片的分辨率。

DALL·E的整体流程整理如下:

1.第一个阶段,先训练一个dVAE把每张256×256的RGB图片压缩成32×32的图片token,每个位置有8192种可能的取值(也就是说dVAE的encoder输出是维度为32x32x8192的logits,然后通过logits索引codebook的特征进行组合,codebook的embedding是可学习的)。

2.第二阶段,用BPE Encoder对文本进行编码,得到最多256个文本token,token数不满256的话padding到256,然后将256个文本token与1024个图像token进行拼接,得到长度为1280的数据,最后将拼接的数据输入Transformer中进行自回归训练。

3.推理阶段,给定一张候选图片和一条文本,通过transformer可以得到融合后的token,然后用dVAE的decoder生成图片,最后通过预训练好的CLIP计算出文本和生成图片的匹配分数,采样越多数量的图片,就可以通过CLIP得到不同采样图片的分数排序(详细过程可以看非官方实现DALLE-pytorch/dalle_pytorch.py)。

从以上流程可知,dVAETransformerCLIP三个模型都是不同阶段独立训练的。下面讲一下dVAE、Transformer和CLIP三个部分。

dVAE

DALL·E

DALL·E

先简单讲一下VAE的原理,VAE就是在AntoEncoder的基础上给lantent vector添加限制条件,让其服从高斯分布,这样我们通过训练得到的decoder就可以直接使用,将随机生成的一个高斯分布喂给decoder就能生成图片,如上面第一张图所示。

相比于普通的VAE,dVAE有两点区别:

1.和VQVAE方法相似,dVAE的encoder是将图像的patch映射到8192的词表中,论文中将其分布设为在词表向量上的均匀分类分布,这是一个离散分布,由于不可导的问题,此时不能采用重参数技巧,DALL·E使用Gumbel Softmax trick来解决这个问题(简单来说就是arg max不可导,可以用softmax来近似代替max,而arg softmax是可导的,后面补一篇Gumbel Softmax的文章)。

2、在重建图像时,真实的像素值是在一个有界区间内,而VAE中使用的Gaussian

分布和Laplace分布都是在整个实数集上,这造成了不匹配的问题。为了解决这个问题,论文中提出了logit-Laplace分布,如下式所示:

DALL·E

Transformer

DALL·E

DALL·E中的Transformer结构由64层attention层组成,每层的注意力头数为62,每个注意力头的维度为64,因此,每个token的向量表示维度为3968。如图所示,attention层使用了行注意力mask、列注意力mask和卷积注意力mask三种稀疏注意力。

DALL·E

Transformer的输入如图所示,文本不满256个token时,使用pad embed填充,文本token需要加上pos embed,图片token需要加上行列的embed,这些embed都是可学习的。

CLIP

DALL·E

对比语言-图像预训练(CLIP)

对比语言-图像预训练是一种训练一对模型的技术。 一个模型接收一段文本并输出一个向量。 另一个接收图像并输出单个向量。

CLIP的推理过程:

1.先将预训练好的CLIP迁移到下游任务,如图(2)所示,先将下游任务的标签构建为一批带标签的文本(例如 A photo of a {plane}),然后经过Text Encoder编码成一批相应的word embedding。

2.然后将没有见过的图片进行zero-shot预测,如图(3)所示,通过Image Encoder将一张小狗的图片编码成一个feature embedding,然后跟(2)编码的一批word embedding先归一化然后进行点积,最后得到的logits中数值最大的位置对应的标签即为最终预测结果。

在DALL·E中,CLIP的用法跟上述过程相反,提供输入文本和一系列候选图片,先通过Stage One和Stage Two生成文本和候选图片的embedding,然后通过文本和候选图片的匹配分数进行排序,最后找到跟文本最匹配的图片。

生成结果

下面看几个DALL·E图像生成效果

输入文本:一个穿着芭蕾舞裙的小白萝卜遛狗的插图

DALL·E

输入文本:一个专业高质量的颈鹿乌龟嵌合体插画。模仿乌龟的长颈鹿。乌龟做的长颈鹿。

DALL·E

超现实主义,DALL·E对于文本的理解,非常的逻辑自洽,太夸张了

Reference

  • [1] Zero-Shot Text-to-Image Generation
  • [2] 如何评价DALL-E模型的实现?
  • [3] 维基百科
  • [4] DALL·E—从文本到图像,超现实主义的图像生成器
  • [5] AIGC开放社区

相关导航