《Improving Image Generation with Better Captions》总结


DALLE3的效果有多牛自不用说。OpenAI最终还是出了一篇简单的介绍DALLE3的论文,涉及到的模型细节很少,重点是讲如何构造训练数据。

OpenAI分三个阶段训练搞了一个基于CoCA的Captioner,用于标注数据:

  1. 用CLIP作为视觉embedding,在alt-text + image数据集上训练了一个CoCA模型;
  2. 在一个caption主要描述图片中的主要概念的数据集上微调CoCA,得到一个能生成“Short Synthetic Caption(SSC)”的Captioner。
  3. 在一个caption包含图片中主要概念,及其周围、背景、图片中的文字、风格、颜色等描述的数据集上第二次微调,这次模型能生成“Desciptive Synthetic Caption(DSC)”。

Alt-Text、SSC、DSC这三种不同的caption示例如下:

有了重新标注后的数据后,OpenAI做了一组消融实验去分析如何正确的使用标注数据。

他们透露出来的用于消融实验的算法细节有:

  1. 是一个T5-conditioned image diffusion模型,没有用自回归类型的生成模型;
  2. T5 XXL embedding通过CrossAttention(论文上提到的一个莫名的xfnet是什么?)送入UNet,timestep embedding通过控制GroupNorm的scale和bias送入UNet;
  3. T5做condition,预测VAE latents(32x32),得到256x256大小的图片;
  4. 每次消融训练500K step(batch size为2048,共1B样本);
  5. 启用了EMA;

训练时,隔一段step就用CLIP ViT-B/14计算下50Kprompt生成图片的图文相似度。

首先消融对比了一下不同caption类别的效果:

有三个不同的setting(为了防止过拟合到某种特定的合成caption模式,不利于日常测试使用,不同setting都加了5%的alt-text保证caption丰富性):

  1. 全部使用alt-text
  2. 95%短合成caption(SSC)+ 5% alt-text
  3. 95%长合成caption(DSC)+ 5% alt-text

观察结果CLIP Score可以发现,无论用alt-text还是DSC去计算CLIP Score,使用合成caption的结果都好于不使用。如果用DSC衡量相似性,很明显能看到用DSC的效果持续优于其它。而用alt-text时,噪声太多,导致clip score也有些交叉。

他们也对比了一下用65%、80%、90%和95%的合成caption的效果,发现95%的持续高于其它比例。

以上就是DALLE3训练前的一些关于数据的消融探索实验。之后OpenAI用消融实验中的模型的**“scaled-up”,外加“several other improvements, many of which are not covered in this document”**版本训练了DALLE3。

除了这语焉不详的一句话以外,对于DALLE-E 3,OpenAI还透露:

  1. 使用了一个他们叫做caption upsampling的技术,即使用GPT4 rewrite用户指定的caption,但是论文中列的指令和之前twitter 微博上泄露的指令好像不一样。但总之,要用GPT4把用户输入的caption扩充为一段丰富描述的长文本。
  2. 使用VAE latents当作condition,训练了一个Diffusion Decoder。他们说这种Diffusion Decoder比VAE Decoder能生成更好的图片细节(比如人脸、文本)。
  3. 由于使用T5 text encoder,会把整个word转换成单个token,导致模型合成图片中的文本时会偶发缺字少字。可能用byT5这种没有tokenizer的模型当作encoder会更好一些?