新智元报道
编辑:LRS
2021年1月,OpenAI放了一个大招:DALL-E模型,让自然语言和图像成功牵手,输入一段不管多离谱的文本,都能生成图片!
比如经典的「牛油果形状的扶手椅」,还有新奇生物「一个长颈鹿乌龟」。
当时看着已经够神奇了吧?
时隔一年,OpenAI结合另一个多模态模型CLIP,发布了第二个版本DALL·E 2!
和上一代相比,DALL·E 2更神奇,简直就是直接从二次元简笔画走向超高清大图:分辨率提升四倍,从256x256提升到了1024 x 1024,并且生成图像的准确率也更高!
比如以「用克洛德·莫奈风格画一幅狐狸在日出时坐在田野里」为题目,一眼就能看出二者的差距。(a painting of a fox sitting in a field at sunrise in the style of Claude Monet)
DALL·E 2的生成的范围也更广,比如写实主义的宇航员骑马(An astronaut + riding a horse + in a photorealistic style),安排!在山上、外太空、草地等等,各种场景一应俱全。
也可以用铅绘风格画出来(An astronaut + riding a horse + as a pencil drawing)
还有用针织羊毛做的、长得像妖怪的一碗汤!(A bowl of soup + that looks like a monster + knitted out of wool)
Dall·E 2还可以从自然语言的标题中对现有图像进行编辑,并且在添加和删除元素时还会考虑阴影、反射和纹理。
比如在画里加一条小狗,毫无违和感。
还可以给定一幅画作为题目,让Dall·E 2再自己重新创作一幅图。
除了官方的例子外,也有网友晒出了自己试玩Dall·E 2生成的图像,比如玩滑板的熊猫靓仔。
申请链接:https://labs.openai.com/waitlist
目前Dall·E 2还处于研究状态,还没有正式对外提供API,但以OpenAI一贯对自己的严标准、高道德要求,肯定也少不了在模型开发和部署上的限制来防止模型被滥用。
尽管Dall·E 2能绘制所有你可以想象到的内容,但OpenAI还是在功能上对模型进行了限制,主要有三点:
1. 阻止生成有害内容
OpenAI 通过从训练数据中删除暴力、仇恨或少儿不宜的图像,限制了Dall·E 2产生这类内容的能力,最小化了Dall·E 2对这些概念的认知。并且还使用一些技术手段防止生成人脸的超写实照片,尤其是一些公众人物。
2. 防止滥用
内容政策中规定,不允许用户生成暴力、成人或政治内容。如果过滤器识别到可能违反策略的文本提示词或图像上传,系统将不会返回生成图像。系统中还有自动化和人工监测系统防止滥用。
3. 基于学习的分阶段部署
OpenAI一直与外部专家合作,并对一定数量的可信赖用户开放预览Dall·E 2的权限,这些用户可以帮助开发人员了解技术的能力和限制。开发团队计划通过学习,迭代地改善安全系统,随着时间的推移邀请更多人参与预览。
艺术大师是怎样炼成的?
DALL·E 2和一代同样基于CLIP建立,不过OpenAI 研究科学家 Prafulla Dhariwal 说,「DALL·E 1 只是从语言中提取了 GPT-3 的方法并将其应用于生成图像:将图像压缩成一系列单词,并且学会了预测接下来会发生什么。」
论文地址:https://cdn.openai.com/papers/dall-e-2.pdf
训练数据由一个数据对(x, y)组成,其中x是图像,y是相应的图像标题。给定一张图像x,z_i和z_t为对应的CLIP图像向量和文本向量。
像CLIP这样的对比模型(Contrastive models)已经被证明可以学习到非常鲁邦的图像表征,能够捕捉到语义和风格。
为了利用这些表征进行图像生成,研究人员提出了一个两阶段的模型:一个给定文本标题生成CLIP 图像嵌入的先验,以及基于条件图像嵌入生成图像的解码器。
先验P(z_i | y)为生成在标题y条件下的CLIP图像向量。
解码器P(x |z_i, y)为在CLIP图像向量z_i和标题y的条件下的生成图像x.
解码器能够根据CLIP图像向量来反转图像,而先验则可以让模型学习到一个图像向量本身的生成模型。将这两个部分叠加起来,可以得到一个生成模型P(x|y)
因为这个过程是通过颠倒CLIP图像编码器来生成图像,所以新模型的图像生成stack也称为unCLIP.
在unCLIP的整体架构中,虚线上方描述的是CLIP的训练过程。通过这个过程,模型学习可以学习到一个文本和图像的联合表示空间。虚线下面则描述了文本到图像的生成过程:CLIP的文本嵌入首先被送入一个自回归或扩散(diffusion)先验,以产生一个图像向量。然后这个向量被用来作为扩散解码器的条件,可以产生一个最终的生成图像。注意,在训练先验和解码器的过程中,CLIP模型的参数都是冻结的。
新的解码器模型还有一个与众不同的功能,那就是可以直接可视化CLIP图像编码器所看到的东西来探索CLIP的潜空间!
比如用CLIP对一幅图像进行编码,然后用扩散解码器对其图像向量进行解码,就能得到图像的变化,这些变化就可以告诉我们哪些信息在CLIP图像向量中被捕获(在不同的样本中被保留),哪些信息丢失掉了(在不同的样本中存在变化)。
有了这个思路作为指导,就可以在CLIP向量之间进行插值来混合两个图像之间的信息,比如在夜空和狗这两张图片之间存在一个连续变化的向量空间。
这个功能也提供可以预防字体攻击(typographic attacks),比如在一些图片中,文字是覆盖在物体前面的,这就会导致CLIP模型更倾向于预测文字描述的物体,而不是图像中描绘的物体。例如写着iPod的苹果,就会导致一些苹果也被错误分类到iPod里了。
在新模型里,可以发现解码器仍然以高概率生成苹果的图片,并且尽管这个标题的相对预测概率非常高,但该模型从未产生iPod的图片。另一种可能性是探测CLIP潜空间本身的结构。
研究人员还尝试采取了少数源图像的CLIP图像向量,并用逐渐增加的PCA维度来重建,然后用解码器和固定种子上的DDIM来可视化重建的图像嵌入,也使得我们能够看到不同维度所编码的语义信息。
可以观察到,早期的PCA维度保留了粗粒度的语义信息,如场景中的物体类型,而后期的PCA维度则编码了更细粒度的细节,如物体的形状和具体形式。例如,在第一个场景中,早期的维度似乎编码了有食物、容器等,而后续的维度则编码了西红柿、瓶子等更具体的事物。
在MS-COCO上的数据集比较中,使用FID在MS-COCO的验证集上作为评估指标已经是一个标准做法。
unCLIP与GLIDE、DALL-E一样,没有直接在MS-COCO训练集上进行训练,但仍然可以在MS-COCO验证集上的zero-shot取得一定的泛化性能。
实验结果可以发现,与其他zero-shot模型相比,unCLIP在用扩散先验取样时达到了新的最优的FID结果,即10.39。
在MS-COCO的几个标题上将unCLIP与最近的各种文本条件图像生成模型进行了直观的比较后可以发现,与其他方法一样,unCLIP生成的现实场景都符合文本提示。
总的来说,DALL-E 2的生成图像表征能够明显提高图像的多样性,在逼真度和标题相似性方面的差距也最小。
文中提出的以图像表征为条件的解码器还可以让图像产生变化,保留其语义和风格的同时,改变图像表征中不存在的非必要的细节。
在对自回归和扩散模型的对比实验后,可以发现扩散模型在计算上更有效率,并能产生更高质量的样本。
参考资料:
https://openai.com/dall-e-2/