自然语言与视觉的次元壁正在被打破。这不,OpenAI 最近连发大招,提出两个连接文本与图像的神经网络:DALL·E 和 CLIP。DALL·E 可以基于文本直接生成图像,CLIP 则能够完成图像与文本类别的匹配。OpenAI 的新工作引起了 AI 圈的一阵欢呼。
Coursera 创始人、斯坦福大学教授吴恩达也表示祝贺,并选出了自己喜欢的「蓝色衬衫 + 黑色长裤」AI 设计。
那么,大佬打算购入几件其他「蓝色」的衬衫吗
OpenAI 联合创始人、首席科学家 Ilya Sutskever 表示:人工智能的长期目标是构建「多模态」神经网络,即 AI 系统能够学习多个不同模态的概念(主要是文本和视觉领域),从而更好地理解世界。而 DALL·E 和 CLIP 使我们更接近「多模态 AI 系统」这一目标。
第一个神经网络 DALL·E 可以将以自然语言形式表达的大量概念转换为恰当的图像。值得注意的是,DALL·E 使用了 GPT-3 同样的方法,只不过 DALL·E 将其应用于文本 - 图像对。
DALL·E 示例。给出一句话「牛油果形状的椅子」,就可以获得绿油油、形态各异的牛油果椅子图像。
另一个神经网络 CLIP 能够可靠地执行一系列惊人的视觉识别任务。给出一组以语言形式表述的类别,CLIP 能够立即将一张图像与其中某个类别进行匹配,而且它不像标准神经网络那样需要针对这些类别的特定数据进行微调。在 ImageNet 基准上,CLIP 的性能超过 ResNet-50,在识别不常见图像任务中的性能远超 ResNet。
DALL·E:从文本生成图像
DALL·E 是 GPT-3 的 120 亿参数版本,经文本 - 图像对数据集训练后,可基于文本描述生成图像。DALL·E 这个名称来源于皮克斯动画经典作品《机器人总动员(WALL·E)》。
有意思的是,它还可以将动物和物体拟人化,将一些无关的概念以一种合理的方式组合起来。
比如,穿着芭蕾 tutu 裙遛狗的胡萝卜:
细细观察,可以看出 DALL·E 是怎样将人体构造迁移到其他生物的。如果你想让一支胡萝卜喝拿铁咖啡或骑独轮车,DALL·E 会把生成图像中的方巾、手脚放在合理的位置。
还比如,生成写着 OpenAI 的商店招牌:
通常 DALL·E 写入的字符串越长,成功率会降低一些。而文字有重复的时候,成功率会变高。尽管样本变得更简单,但随着采样温度的降低,成功率有时候会提升。
和 GPT-3 一样,DALL·E 是一种 Transformer 语言模型。它以包含多达 1280 个 token 的单数据流形式接收文本和图像,并利用最大似然进行训练,逐个生成所有 token。
token 是来自不连续词汇表的任意符号。对于人类来说,每个英文字母都是来自字母表的 token。DALL·E 的词汇表有文本和图像的 token。每个图像的文本描述使用最大 256BPE 编码的 token 表示,词汇表的大小是 16384;图像则使用 1024 个 token 表示,词汇表大小是 8192。
在最新博客中,OpenAI 详细介绍了 DALL·E 的「百变功能」,每一段文字的生成示例展示了 512 个生成结果中的前 32 名(根据 CLIP 的排序,过程中没有任何人工参与挑选的步骤)。
控制属性
在修改对象属性的能力方面,研究者对 DALL·E 进行了测试。DALL·E 可以用多边形形状渲染熟悉的对象,甚至是在现实世界中不太可能发生的情况。比如这些诡异的「绿色闹钟」:
绘制多物体图像
同时控制多个对象及其属性、空间关系,是一个新的挑战。比如「戴红色帽子、黄色手套,穿蓝色衬衫、绿色裤子的刺猬」,DALL·E 生成效果如下:
尽管 DALL·E 对少量物体的属性和位置提供了一定程度的可控性,但成功率可能仍取决于文本的表述方式。此外,DALL·E 还很容易混淆不同对象及其颜色之间的关联。
可视化透视图和三维图
DALL·E 还可以控制场景视点和渲染场景的 3D 样式,例如:
不同角度的美洲狮。
可视化内外部结构
DALL·E 还能够渲染出横截面视图的内部结构,以及通过微距相片展现事物的外部结构。例如核桃的横截面视图:
推断语境细节
文本转图像任务是非明确指定的,一个文本描述通常对应许多合理图像,因此图像并非唯一指定的。例如,对于文本描述「坐着看日出的水豚鼠」,可能需要根据水豚鼠的方位画出阴影,尽管这并没有在文本描述中明确提及。DALL·E 能够解决以下三种情景中的非指定问题:改变风格、设置和时间;在不同场景中绘制相同的对象;生成带有特定文本的对象(例如上文提到的写着 OpenAI 的商店招牌)。
下图展示了 AI 生成的「看日出的水豚鼠」,这些图像具备不同的风格,如波普艺术风格、超现实主义风格、浮世绘风格等等。
时尚和室内设计
DALL·E 还可以应用到时尚设计与室内设计,例如身穿蓝色衬衫和黑色裤子的橱窗模特:
将不相关的概念结合起来
语言的复合性使得我们可以将多个概念组合在一起来描述真实和想象中的事物。而 DALL·E 也具备将不同 idea 结合起来并合成物体的能力,甚至有的物体在现实世界中并不存在。例如,将多种不同概念的特点迁移到动物身上,从不相关的概念中汲取灵感来设计产品(例如本文开头提到的牛油果椅子)。
下列示例就将「竖琴」和「蜗牛」这两个八竿子打不着的事物组合到了一起:
动物插图
DALL·E 不仅能将不相关的概念连接到一起,它还能将这一能力应用到艺术领域。例如,动物和物体的拟人化版本、动物嵌合体和 emoji。
下图展示了「长颈鹿龟」这一新物种:
奇怪的物种又增加了。
零次视觉推理
只需给出文本描述或提示,GPT-3 就能执行多种任务,且无需额外训练。这种能力叫做「零次推理」(zero-shot reasoning)。而 DALL·E 将该能力扩展到视觉领域,在给出恰当提示的情况下,它能够执行多种图像翻译任务。
例如给出文本「为上方猫图提供简笔画版本」,你会得到:
不过,任务要求不同,得到图像的可靠性也不相同。
地理知识
DALL·E 还能学习地理事实、地标建筑和街区。它有时候可以非常精确地学习这些知识,但有时候又会在其他方面出现缺陷。例如,给出文本「中国美食」,它可以生成大量相关美食图像,但无法完全涵盖现实中我国美食的多样性。
这些美食的确似曾相识,但又感觉并没吃过
时间知识
DALL·E 的能力可不止于此,它还可以展示某个概念的时代变迁史。例如给出文本「上世纪 20 年代以来的手机图像」,你将会得到各个年代的手机照片:
CLIP:连接文本与图像
除了基于文本生成图像的 DALL·E,OpenAI 还介绍了另一项工作 CLIP。
CLIP 旨在解决深度学习方法在计算机视觉领域中所面临的的一些主要问题,如创建视觉数据集的人力和成本问题、数据集涵盖的视觉概念过于狭窄、标准视觉模型只擅长一种任务且需要很多努力才能适应新任务、基准测试中表现良好的模型在压力测试中表现糟糕等等。
为此,CLIP 模型在多种多样的图像上进行训练,这些图像具备多种自然语言监督,并且很容易在网络上获得。
在设计上,CLIP 可以利用自然语言获得指导以执行多种分类基准任务,无需针对基准性能直接优化,这类似于 GPT-2 和 GPT-3 的「zero-shot」能力。这是一个关键改变:由于不直接针对基准进行优化,研究者发现 CLIP 更具有表征性。该系统将这种「鲁棒性差距」缩小了 75%,同时在不使用任何原始 1.28M 标注示例的情况下,CLIP 在 ImageNet zero-shot 上的性能媲美原版 ResNet 50。
下图为 CLIP VIT-L 与 ResNet101 在 ImageNet 数据集上的性能对比。尽管两者在原始 ImageNet 测试集上具有相同的准确率,但在不同的非 ImageNet 设置下测量准确率的数据集上,CLIP 更具有表征性。
方法
CLIP 使用了大量可用的监督资源,即网络上找到的文本 - 图像对。这些数据用于创建 CLIP 的代理训练任务,即给定一张图像,然后预测数据集中 32,768 个随机采样文本片段中哪个与该图像匹配。
为了解决这一任务,研究者认为 CLIP 模型需要学习识别图像中各种各样的视觉概念,并将这些概念与各自的名称联系起来。这样一来,CLIP 模型可用于几乎所有视觉分类任务中。例如,如果数据集的任务是对狗和猫的照片进行分类,则我们会针对每张图像检查 CLIP 模型预测的文本描述「狗的照片」或「猫的照片」是否更有可能与之相匹配。
狗和猫照片的分类任务流程如下图所示,其中包括对比预训练、从标签文本中创建数据集分类器和 zero-shot 预测。
CLIP 的亮点
CLIP 非常高效,它从未过滤、多种类和高噪声的数据中学习,并希望以 zero-shot 的方式应用。为了减少所需的计算量,研究者重点探究了如何从算法角度提升 CLIP 的训练效率。
研究者提供了两种大幅降低计算量的算法。第一种算法采用对比目标(contrastive objective)来连接文本和图像。他们最初探究了类似 VirTex 的图像到文本方法,但在将其扩展以实现 SOTA 性能过程中遇到了困难。在中小规模试验中,研究者发现,CLIP 使用的对比目标方法在 zero-shot ImageNet 分类中的效率提升了 3 至 9 倍。
第二种算法采用 Vision Transformer,使得计算效率相比标准 ResNet 有 3 倍提升。最后,表现最好的 CLIP 模型在 256 个 GPU 上训练了 2 周左右的时间,这与目前大型图像模型类似。
结果表明,经过 16 天的 GPU 训练,在训练 4 亿张图像之后,Transformer 语言模型在 ImageNet 数据集上仅实现了 16% 的准确率。CLIP 则高效得多,实现相同准确率的速度快了大约 9 倍。具体如下图所示:
此外,CLIP 灵活且通用。这是因为 CLIP 模型直接从自然语言中学习多种多样的视觉概念,所以比现有 ImageNet 模型更灵活且具有更强的通用性。研究者发现 CLIP 模型可以 zero-shot 执行很多不同任务。为了验证这一点,研究者在包含细粒度目标检测、地理定位以及视频动作识别和 OCR 等任务的 30 多种不同数据集上测量了 CLIP 的 zero-shot 性能。
结果表明,在 26 个测试的不同迁移数据集上,表现最好的 CLIP 模型在其中 20 个数据集上优于 Noisy Student EfficientNet-L2(公开可用的最佳 ImageNet 模型)。具体如下图所示:
局限性
虽然 CLIP 在识别常见对象时往往表现良好,但在计算图像中对象数量等更抽象或更系统的任务,以及预测照片中最靠近车辆间的距离等更复杂任务上的表现不佳。在这两项任务上,zero-shot CLIP 的效果也只比随机猜测好一点。
此外,与特定于任务的模型相比,zero-shot CLIP 在非常细粒度的分类任务上表现不佳,比如区分汽车模型、飞机型号或者花卉种类等。CLIP 对其预训练数据集中未涵盖的图像也表现出糟糕的泛化性能。
最后,研究者发现,CLIP 的 zero-shot 分类器对用词或措辞也非常敏感,有时需要反复试验和误差「prompt engineering」才能表现良好。
原文链接:
https://openai.com/blog/dall-e/
https://openai.com/blog/clip/
https://openai.com/blog/tags/multimodal/