文章主题:DALL-E 3, 合成caption, 高质量训练数据集, LAION-coco数据集

666AI工具大全,助力做AI时代先行者!

1706894830220.jpg点蓝色字关注“机器学习算法工程师

设为星标,干货直达!

1706894830829.jpg

在大家都在猜测DALL-E 3技术架构的时候,没想到OpenAI在最近放出了DALL-E 3的技术报告,这不得不给OpenAI点个赞。但是,DALL-E 3的这篇技术报告重点是放在了如何通过合成图像的文本描述(caption)来提升模型的生成能力(论文的题目为Improving Image Generation with Better Captions,这里提升的主要是prompt following能力,即生成的图像和输入的text prompt的一致性),而对于DALL-E 3具体的模型架构和实现细节并没有给出,所以OpenAI还是保留了很多细节。OpenAI这个技术报告可以分成两个部分,第一个部分是讲如何通过合成训练数据集中图像的caption来提升模型的生成能力,而第二部分是关于DALL-E 3,但其实这部分主要是讲DALL-E 3和其他文生图模型的评测对比。这篇文章我们也分这两个部分进行解读。1706894833759.jpg

合成图像caption

目前文生图模型的一个很大的问题是模型的文本理解能力,这个文本理解能力指的是生成的图像是否能和文本保持一致,也就是论文里面所说的prompt following能力。对于稍微复杂的文本,目前的文生图模型生成的图像往往会容易忽略部分文本描述,甚至无法生成文本所描述的图像。这个问题主要还是由于训练数据集本身所造成的,更具体的是说是图像caption不够准确。一方面,图像常规的文本描述往往过于简单(比如COCO数据集),它们大部分只描述图像中的主体而忽略图像中其它的很多信息,比如背景,物体的位置和数量,图像中的文字等。另外一方面,目前训练文生图的图像文本对数据集(比如LAION数据集)都是从网页上爬取的,图像的文本描述其实就是alt-text,但是这种文本描述很多是一些不太相关的东西,比如广告。训练数据的caption不行,训练的模型也就自然而然无法充分学习到文本和图像的对应关系,那么prompt following能力必然存在问题。OpenAI给出的解决方案是训练一个image captioner来合成图像的caption。这里选用的模型架构是谷歌的CoCa,CoCa相比CLIP额外增加了一个Multimodel Text Encoder来生成caption,它训练的损失也包含CLIP的对比损失和captioing的交叉熵损失。所以CoCa不仅可以像CLIP那样进行多模态检索,也可以用于caption生成。1706894834766.jpg为了提升模型生成caption的质量,OpenAI对预训练好的image captioner进行了进一步微调,这个微调包括两个不同的方案,两个方案构建的微调数据集不同。第一个方案的微调数据集是只描述图像主体的短caption(类似COCO风格的caption),而第二个方案的微调数据集是详细描述图像内容的长caption。相应地,两个微调模型分别可以生成短caption(short synthetic captions)长caption(descriptive synthetic captions)。下图展示了三个样例图像的原始caption(ground-truth),以及生成的短caption和长caption。这里的原始caption是从网页上得到的alt-text,其质量较差,合成的短caption简洁地描述了图像的主体内容,合成的长caption详细描述了图像的内容,细节比较丰富。1706894835450.jpg接下来就是来通过实验来分析合成caption对文生图模型性能的影响,另外一点是探讨训练过程中合成caption和原始caption的最佳混合比例。这里之所以要混合合成caption和原始caption,主要是为了防止模型过拟合到合成caption的某些范式,比如最常见的例子是合成的caption往往以”a”和”an”开头。在训练过程中,在合成caption中混入原始caption,相当于一种模型正则化。首先是合成caption对模型性能的影响,这里共训练了三个模型,它们的差异是采用不同类型的caption,分别是只用原始caption,5%的原始caption+95%的合成短caption,5%的原始caption+95%的合成长caption。这里训练的文生图是latent diffusion模型,其VAE和SD一样都是8x下采样,而text encoder采用T5-XXL,之所以用T5-XXL,我觉得主要有两个原因,一方面T5-XXL可以编码更长的文本,另外一方面是T5-XXL的文本编码能力也更强。这里训练的图像尺寸为256×256(这只是实验,所以低分辨率训练就足够了),采用batch size为2048共训练50W步,这相当于采样了1B样本。这里并没有说明UNet模型的具体架构,只是说它包含3个stages,应该和SDXL类似(SDXL包含3个stage,只下采样了2次,第一个stage是纯卷积,而后面两个stages包含attention)。1706894836233.jpg这里只是想分析模型的prompt following能力,所以采用了CLIP score来评价模型,这里的CLIP score是基于CLIP ViT-B/32来计算生成图像的image embedding和text prompt对应的text embedding的余弦相似度(这里是生成了50000个图像并取平均值,并乘以100)。下图展示了采用三种caption训练的模型在CLIP score上的差异:1706894836438.jpg左图在计算CLIP score时,text采用原始caption,从整体上来看,无论是采用合成的长caption还是短caption,其CLIP score要比只采用原始caption要好一点,但是波动比较大。右图计算CLIP score时,text采用合成的长caption,这里就可以明显看到:长caption > 短caption > 原始caption,而且CLIP score要比左图要高很多。这说明采用长caption来计算CLIP score是比较合理的,因为图像的image embedding信息很大,而短文本信息少,所以两者的相似度就会低一些,而且还可能存在一定的波动。总之,从上面的实验来看,采用合成的长caption对模型的prompt following能力是有比较大的提升的,接下来的问题就是通过实验来找到最佳的数据混合比例。所以又增加了混合比例为65%、80%、90%的实验,下图展示了不同混合比例训练出来的模型其CLIP score的差异,可以看到采用95%的合成caption训练的模型在效果上要明显高于采用更低比例的caption训练的模型。1706894836685.jpg所以最终的结论是采用合成的caption对模型提升帮助比较大,而且要采用描述详细的长caption,训练的混合比例高达95%,这也是后面DALL-E 3的数据训练策略。不过采用95%的合成长caption来训练,得到的模型也会“过拟合”到长caption上,如果采用常规的短caption来生成图像,效果可能就会变差。为了解决这个问题,OpenAI采用GPT-4来“upsample”用户的caption,下面展示了如何用GPT-4来进行这个优化,不论用户输入什么样的caption,经过GPT-4优化后就得到了长caption:1706894836893.jpg下图展示了三个具体的例子,可以看到使用优化后的长caption其生成图像效果要优于原来的短caption:1706894837721.jpg所以,DALL-E 3接入ChatGPT其实是不得已而为之的事情,因为这样才能保证DALL-E 3的输入不偏离训练的分布。

DALL-E 3

DALL-E 3这部分主要是关于模型评测,而对于DALL-E 3的具体实现只有两点:首先,DALL-E 3也采用95%的合成长caption和5%的原始caption混合训练,这也应该是DALL-E 3性能提升的关键;另外,DALL-E 3的模型是上述实验中所采用的模型的一个更大版本(基于T5-XXL的latent diffusion模型),同时加上其它的改进,但是这里也没有说是具体的哪些改进,而且技术报告中也说DALL-E 3也不应简单地归功于在合成caption的数据集上训练,所以DALL-E 3的其它改进应该也会比较重要。目前DALL-E 3生成的图像的分辨率都是在1024×1024以上,所以DALL-E 3的模型应该类似于SDXL,采用递进式的训练策略(256 -> 512 -> 1024),而且最后也是采用了多尺度训练策略来使模型能够输出各种长宽比的图像。另外附录里面给出了一个细节是DALL-E 3额外训练了一个latent decoder来提升图像的细节,特别是文字和人脸方面,这个应该是为了解决VAE所产生的图像畸变。这里采用的扩散模型是基于DDPM中的架构,所以是pixel diffusion,同时为了加速,基于Consistency Models中提出的蒸馏策略将去噪步数降低为2步,所以推理是相当高效的。从直观上来看,这个latent decoder就是替换原始的VAE decoder,因此这个扩散模型的condition是VAE的latent,但是具体是怎么嵌入到扩散模型的UNet中,这里没有说明,最简单的方式应该是通过上采样或者一个可学习的网络将latent转变为和噪音图像一样的维度,然后与噪音图像拼接在一起。1706894838362.jpg对于DALL-E 3的评测,论文是选取了DALL-E 2和SDXL(加上refiner模块)来进行对比。模型评测包括自动评测和人工评测。自动评测主要有3个指标。首先是计算CLIP score,评测数据集是从COCO 2014数据集中选择4096个captions。然后是采用GPT-4V来进行评测,这里的评测数据集是Imagen中所提出的DrawBench评测集(共包括200个包含不同类型的prompts),这里的评测是将生成的图像和对应的text输入到GPT-4V,然后让模型判断生成的图像是否和text一致,如果一致就输出正确,否则就输出不正确。下面是评测所采用的具体prompt:1706894838550.jpg最后是采用T2I-CompBench来评测,这个评测集包含6000个组合类型的text prompts,它包括多个方面,这里只选择color binding、shape binding和texture binding三个方面进行评测,评测是通过BLIP-VQA model来得到评分。下表给出了DALL-E 3与其它模型的对比结果,可以看到DALL-E 3还是明显优于DALL-E 2和SDXL。不过自动评测所选择的三个指标都是评测模型的prompt following能力,并不涉及到图像质量。1706894838760.jpg人工评测主要包括三个方面。第一个是prompt following,给出两张不同的模型生成的图像,让人来选择哪个图像和文本更一致:1706894838995.jpg第二个是style,这里不给文本,只给两张图像,让人选择更喜欢的那个图像:1706894839337.jpg第三个是coherence,这里也不给文本,让人从两张图像中选择包含更多真实物体的图像:1706894839709.jpg可以看到后面的两个方面其实就是评测模型生成图像的质量。对于prompt following和style,这里使用的评测集是DALL-E 3 Eval,它共包含170个captions,是从真实应用场景收集得到的。而coherence方面的评测集是从COCO数据集抽样的250个captions,因为coherence是评测真实性,所以采用更偏真实场景的COCO数据集。另外,之前DrawBench评测集是采用GPT-4V来自动评测的,但是GPT-4V也会犯错,比如在计数方面,所以这里也额外增加了DrawBench评测集的人工评测。所有人工评测的对比结果如表所示,可以看到DALL-E 3具有明显优势:1706894839895.jpg这里的ELO score是GLIDE中所提出的来计算胜率的指标:1706894840049.jpg尽管DALL-E 3在prompt following方面有很大的提升,但是它依然有一定的局限性(OpenAI还是很谦虚的)。首先是模型在空间位置关系上还是会比较容易出错,当prompt包含一些位置关系描述如”to the left of”,模型生成的图像并不一定会符合这样的位置关系,这主要是因为合成的caption在这方面也并不可靠。另外就是文字生成能力,虽然DALL-E 3在生成文字方面很强,但是还是会同意出现多词或者少词的情况,一个可能的原因T5-XXL的tokenizer并不是字符级的。还有一个比较大的问题是合成的caption会幻想图像中的重要细节,比如给一幅植物的绘图,image captioner可能会虚构出一个植物并体现在合成的caption上。这就意味着模型可能会学到错误的绑定关系,也导致模型在生成特定种类的东西并不可靠。最后一点是模型的安全性和偏见,这个是所有大模型所面临的问题,也是由于训练集所导致的,对于这点,DALL·E 3 system card有更多的评测。论文中也给出了三个失败的例子,我理解前两个图像属于在位置关系上处理失败,而最后一个图像属于生成了错误类型的植物。1706894840454.jpg

小结

DALL-E 3的最大进步在于通过合成标题来创建更高质量的训练数据集,而在技术上并未取得显著的创新。实际上,在合成标题方面,LAION在2022年就已经发布了一个采用BLIP生成标题的LAION-COCO数据集,然而这一成果并未引起广泛关注。此外,这些生成的标题均为短文本。令人好奇的是,为什么OpenAI没有选择采用GPT-4V生成标题,而是专注于训练一个图像字幕模型,这可能与成本有关。然而,我相信随着DALL-E 3技术报告的发布,未来许多关于文本生成的工作将转向优化标题以提高模型性能,因此我认为DALL-E 3的技术壁垒并不会像GPT-4那样高。这意味着开源版的DALL-E 3将会很快问世!

参考文献

https://openai.com/dall-e-3https://cdn.openai.com/papers/dall-e-3.pdfCoCa: Contrastive Captioners are Image-Text Foundation Models

推荐阅读

使用PyTorch 2.0加速Transformer:训练推理均拿下!

硬核解读Stable Diffusion(系列三)

硬核解读Stable Diffusion(系列二)

硬核解读Stable Diffusion(系列一)

带你入门扩散模型:DDPM

机器学习算法工程师

                                    一个用心的公众号

aigc666aigc999_0.jpg

AI时代,拥有个人微信机器人AI助手!AI时代不落人后!

免费ChatGPT问答,办公、写作、生活好得力助手!

搜索微信号aigc666aigc999或上边扫码,即可拥有个人AI助手!

Leave a Reply

Your email address will not be published. Required fields are marked *