• 文章作者:陈亦新

  • 欢迎各路大佬和朋友的交流,相互学习。(cyx645016617)

  • 论文称号:Hierarchical Text-Conditional Image Generation with CLIP Latents

  • 论文链接:cdn.openai.com/papers/dall…

0 总述

0.1 发展进程

  1. 2021.01 DALLE OPENAI 120亿参数
  2. 2021.05 CogView 清华 支撑中文
  3. 2021.11 NvWa(女娲) 微软+北大 生成图画和比较短的视频
  4. 2021.12 GLIDE OPENAI
  5. 2021.12 ERNIE-ViLG 百度 100亿参数+中文
  6. 2022.04 DALLE2 OPENAI
  7. 2022/04 CogView2 清华
  8. 2022/05 CogVideo 清华
  9. 2022/05 Imagen Google 相对于DALLE2简化,并且作用不相上下

0.2

DALLE2应该是第一个结合了CLIP和分散模型的论文,里边的作者直接原班人马。

DALLE2 | 带火AI绘图的第一个AI模型

0.3

CLIP能够抓住图片的很鲁棒的特征,包括语义和风格特征。DALLE2包括两个stage的特征:

  • a prior that generates a CLIP image embedding given a text caption;
  • a decoder that generates an image conditioned on the image embedding.

prior的作用便是把经过CLIP模型得到的text embedding,转换成CLIP的image embedding。相当所以丰厚了CLIP的一种用处。练习的groundtruth也是CLIP的给出的image embedding。

decoder便是使用分散模型把image embedding还原成原始图片。

当然,这里我也自然的提出了考虑,为什么不让decoder直接从text embedding转换到image呢?论文中给出了这样的回复:

We show that explicitly generating image representations improves image diversity with minimal loss in photorealism and caption similarity。

0.4 guidance technique

论文中提出了,在2015年以来,采样的办法现已提出,可是保真度一向不如GAN。中心有许多的改进,其中有一个技巧叫做“guidance”,能够牺牲一部分多样性的情况下,大幅度的进步生成图片的保真度。从此和GAN在inception和FID score上都不相上下了。

1 算法

1.1 模型结构

DALLE2 | 带火AI绘图的第一个AI模型

  • 上面是CLIP模型的练习,之前的解说中现已说过了;/post/713863…
  • CLIP模型不会进行finetune,是一向freeze的。
  • prior发现,先显式的将text embedding转换成image embedding,作用会好许多。

论文中管自己叫做unclip,并不是DALLE2,由于这是从特征到图片的进程,是CLIP的反进程

1.2 生成算法回顾

1.2.1 GAN

DALLE2 | 带火AI绘图的第一个AI模型

  • 保真度高,不稳定,多样性不行。由于GAN的优化目标便是以假乱真的保真度,多样性和不稳定没有保障。

1.2.2 AE / DAE

DALLE2 | 带火AI绘图的第一个AI模型

  • 意图是重建。意图是学习bottleneck的特征,这里没有采样的概念,所以无法生成。

1.2.3 VAE

DALLE2 | 带火AI绘图的第一个AI模型

  • VAE学习概率散布,多样性比GAN好许多。

1.2.4 VQ-VAE

DALLE2 | 带火AI绘图的第一个AI模型

  • 8192×512。
  • VQ Vector Quantilised
  • 我们得到的特征图f是一个wh的特征图,每一个像素的向量和code book里边做对比,然后取出来对应的编号。存成z。BEIT便是借用了VQ-VAE的思路。DALLE也是基于VQ-VAE。
  • 需要注意的是,这里没有采样,VQ-VAE相似AE而不是VAE。所以这里练习了一个pixelCNN自回归模型。

1.2.5 DALLE

DALLE2 | 带火AI绘图的第一个AI模型

  • 文本经过BPE编码(256),Image经过VQVAE编码,然后得到1024的特征,拼接成1280的特征。
  • 之前用的pixelCNN自回归模型,那么自回归生成模型GPT更牛逼。
  • 然后随机遮住一些,用BERT的办法微调GPT。毕竟便是openAI的看家本领。
  • 推理的时分,就只有文本的256的特征,然后用自回归的办法慢慢恢复后边的1280特征。然后放回VG-VAE傍边恢复即可。所以这也是二阶段的模型。
  • 关键是怎么练习GPT的12B的模型参数,大力出奇观!

1.3 分散模型回顾

1.3.1 分散模型

DALLE2 | 带火AI绘图的第一个AI模型

分散模型常见的用的Unet的结构。

1.3.2 DDPM

由于生成图画发现比较难练习,所以Unet开端猜测两个时刻戳图画之间的噪音。

1.3.3 improved DDPM

由于DDPM的成功让DALLE的二、三作立刻去研讨,提出了improved DDPM。

  • 我还没细看,大约便是在beta的schedule上,从线性变成了非线性(余弦?);
  • DDPM只学习散布的均值,不学习方差。improved上同时学习

1.3.3 Diffusion betas GAN

  • 二、三作持续研讨,发现diffusion models的扩展性非常好,数据集越大,那么生成图画的作用就会越好;
  • 提出了adaptive group normalization,没细看,便是时刻戳t也会作为group normalization的一个参数;
  • 使用了guidance的技巧,让分散模型的反向进程从DDPM的1000能够缩短到25.

2 guidance technique

2.1 classifier guidance technique

DALLE2 | 带火AI绘图的第一个AI模型

加上图画分类器,一般是加了噪音的imagenet练习的。经过梯度的对diffusion模型的提取进行指导。也因而,首次战胜了BigGAN。最大问题便是,需要别的一个模型,pretrained-model,很费事,也不稳定。

2.2 classifier free technique

DALLE2 | 带火AI绘图的第一个AI模型
只是指在推理进程中,不必提示。可是练习的时分,会变得更贵。

3 重开模型结构

DALLE2 | 带火AI绘图的第一个AI模型

核心公式: P(x∣y)=P(x,z∣y)=P(x∣z,y)P(z∣y)P(x|y)=P(x,z|y)=P(x|z,y)P(z|y)

后者是prior,前者是decoder(GLIDE)。

prior用了两种,autogressive和diffusion prior。后者效率高所以用后者。