[Paper Reading] DALLE: Zero-Shot Text-to-Image Generation
DALLE: Zero-Shot Text-to-Image Generation
DALLE: Zero-Shot Text-to-Image Generation
时间:21.02(与CLIP同期论文)
机构:OpenAI
TL;DR
提出一个将文本与图像作为token,利用Transformer的自回归机制来生成图像。使用大规模数据(250M图文Pair)与大模型(12B)训练,模型效果达到可与特定领域模型性能相当的泛化效果。
Method
网络
Stage1: Learning the Visual Codebook
仅使用图像模态信息,训练一个dVAE,latent特征即visual codebook。好处:将256x256图像特征降维至32x32的image tokens(每个token的embedding dim为8192),提升了低频语义信息占比,降低了计算量。
Stage2: Learning the Prior
第一阶段dVAE模型是fixed,image tokens与text token concat之后输入Transformer。
Q: prior module之后得到得是什么?是否还需要用dVAE的decoder?
A: 文章中没有明确说明,有两种可能性。
a) Transformer仅用来融合image与text tokens,不直接生成图像,图像生成最终还是使用dVAE的Decoder。
文章中说训练过程dVAE的decoder是fixed,那就说明使用了dVAE。
b) Transformer的Decoder既可以自回归图像,又可以自回归文本(文本本来输入)。
文章说transformer的Loss有两部分,一部分是cross entropy for text,另一部分是cross entropy for image,那有可能是直接逐个回归pixel。
工程
Mix-Precision Training的下溢问题(underflow)。
描述:当训练大text-image模型时,在resblock激活之后的层,梯度的真实数值可能会低于fp16最小指值。
解决:部分使用fp32(比如, resblock之后);设置customize的scale缩放阈值;
节省显存占用
将模型参数切分分布到不同卡上,真正使用时再sync过来
降低跨机平均梯度耗时
PowerSGD,大体思路是,先将梯度进行低秩压缩,跨机跨卡sync之后再解压缩平均。
Experiment
Zero-shot text-image generation其实就是给文本生图像的任务,文章中使用的都是FID与IS等图像生成的评估指标。
图像生成评估指标 IS(Inception Score)是什么?
FromChatGPT(提示词:图像生成评估指标 Inception Score是什么?) Inception Score(简称IS)是一个用于评估生成对抗网络(GANs)生成图像质量的客观指标。它由Tim Salimans等人在2016年的论文《Improved Techniques for Training GANs》中提出。Inception Score主要从两个方面来评价生成图像的质量:清晰度(Clarity):对于单个生成图像,我们希望它在某个类别上的概率非常高,而在其他类别上的概率非常低。这样,图像就会显得清晰,即它应该很容易被识别为某个特定的类别。清晰度可以通过计算生成图像的条件概率分布的熵来衡量,熵越低,表示图像越清晰。
多样性(Diversity):对于一组生成图像,我们希望这些图像能够均匀地覆盖所有可能的类别。如果生成的图像能够代表数据集中的各个类别,那么这些图像就具有较高的多样性。多样性可以通过计算生成图像类别概率分布的边缘熵来衡量,边缘熵越高,表示生成图像的类别分布越均匀。
Inception Score的计算方法涉及到使用预训练的Inception网络(如Inception-V3)作为图像分类器。具体来说,Inception网络会为输入的生成图像输出一个概率分布向量,表示图像属于ImageNet数据集中1000个类别的概率。然后,Inception Score通过对这些概率分布进行计算来评估生成图像的质量和多样性。
总结与发散
与CLIP是同期工作,CLIP是多模态latent特征对齐的方法,不能做图像生成,而本文是text-image的图像生成方法。