DALL-E-2 论文水记
模型示意图
虚线上面是 CLIP 的训练流程
虚线下面是文字生成图像的流程。我们有一个 prior 模型和一个 decode 模型。先把 text embeding 输入 prior 模型,得到 image embeding,再把 image embeding 输入 decoder ,得到图像。
decoder 模型
使用diffusion作为decoder,使用的指导信息有 CLIP image embeding (还有文本标题作为可选的附加指导信息)
似乎与GLIDE的结构很相似,他提到他们改变了 GLIDE 的结构,把 CLIP image embeding 投射为四个不同 context 的 token,并且和 GLIDE text encoder 输出的序列接在一起
他们保留了原本 GLIDE 的 text conditioning pathway,期望用它捕获一些 CLIP 漏掉的信息,不过他们发现这样没啥提升。
为了能实现无指导地生成图像,训练过程中有 10% 的概率令 CLIP embedings 为 0(或者一个学到的embeding),有 50% 的概率 dropping 文本标题
超分辨率
为了生成高分辨率的图像,训练了两个 diffusion 上采样模型,一个是 64 × 64 → 256 × 256 64\times64\to256\times256 64×64→256×256 ,一个是 256 × 256 → 1024 × 1024 256\times256\to1024\times1024 256×256→1024×1024 。
为了提高鲁棒性,在训练时稍微破坏了图像。对第一个超分模型,使用高斯模糊,对第二个超分模型,we use a more diverse BSR degradation [42, 59] .
为了减少计算量并提升数值稳定性,we follow [42],使用目标图像四分之一大小的随机裁切图像来训练。只使用空间卷积(不用注意层),然后在推理阶段直接应用在目标分辨率上,发现模型可以成功泛化到目标分辨率。
他们发现在超分阶段使用指导信息没有用,所以他们使用了unconditional ADMNets [11]
prior 模型
他们尝试了两种 prior 模型架构,自回归和diffusion,他们发现 diffusion 作为 prior 效果更好。
prior使用的指导信息除了可以用文字标题,还能用 CLIP text embeding,毕竟他是文字标题的一个确定的函数
为了能实现无提示生成,训练 prior 时,有 10% 的时间会随机 dropping 文本指导信息。