社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

【深度学习】研究者意外发现DALL-E 2在用自创语言生成图像:全文黑话,人类都看不懂

机器学习初学者 • 3 年前 • 689 次点击  
机器之心报道

机器之心编辑部

人工智能 DALLE 善于画出各种神奇图像的原因在于——它不说人话。


「我们发现 DALLE-2 似乎有一个隐藏的词汇表,用于生成各种荒谬描述内容的图像。例如,Apoploe vesrreaitais 似乎是指鸟类,而 Contarra ccetnxniams luryca tanniounons 有时指虫子。我们发现这些 prompt 通常在孤立的情况下是一致的,但有时也是组合的,」研究人员写道。

DALL-E 生成的各种诡异图片在社交网络上刷屏已经持续了一段时间,有关为什么人工智能可以生成自然界中不存在的事物,很多研究者正在寻根问底。近日,来自德克萨斯大学奥斯丁分校的学者发现,DALL-E2 会使用看似随机但与视觉概念有一些关联的单词来形容自己做的事。

简而言之,AI 自创了一门语言,这份可解释性研究让人们细思极恐,连 Gary Marcus 也受到震撼。


自从 OpenAI 发布 DALLE 和 DALLE-2 以来,多模态大模型的视觉生成能力有目共睹。它们以文本标题作为输入,就能生成与给定文本相匹配的高质量图像。

DALLE-2 使用无分类器的扩散引导,但其众多周知的局限性是它会与文本相抗。比如文本 prompt 是「An image of the word airplane」的时候,通常会导致生成图像完全没听懂文本的内涵。研究者们发现,这个生成的文本不是随机的,而是揭示了一套隐藏的体系,这个词汇模型似乎是从内部发展出来的。比如说,当输入这些不知所云的的文本时,模型经常会生成飞机。

这些隐藏词汇中的一些是可以被学习的,并用来创造出一些离奇的 prompt,最终生成自然的图像。例如,Apoploe vesrreaitais 似乎意味着「鸟类」,Contarra ccetnxniams luryca tanniounons 有时则意味着「虫子」或「害虫」。研究者发现,可以用「An image of a cartoon apoploe vesrreaitais」这样的 prompt 来生成卡通鸟类图像,甚至可以组合这些词来创造以鸟类为食的虫子。


也有人提了一句,这种现象并不是首次出现。早在几年前,Facebook 的一个机器人就开始使用自己的 pidgin 语言进行交流。


也有人说,这个故事不过是类似当年的「聪明汉斯」实验罢了:


发现 DALLE-2 的「黑话」

偶然发现之后,研究者摸索出了一个简单的方法来发现 DALLE-2 的黑话,这个规律可以通过一个例子来体现:

假设我们想要找到「蔬菜」(vegetables)对应的黑话,就可以用下列句子之一(或者这些句子的变体)来作为 DALLE-2 的 prompt:

  • 上面写着蔬菜这个单词的一本书;

  • 两个农民在谈论蔬菜,带字幕;

  • 用 10 种语言书写的蔬菜这个词。


对于上面的每个 prompt,DALLE-2 通常会创建包含一些包含文本的图像。对于人类来说,这些书写出来的文本通常是胡言乱语,原始论文和 Marcus 的评论里都提到了这一点。

然而,研究者观察到一个令人惊讶的现象:这些文本并不像它看起来那样「混乱」。在许多情况下,它与想要翻译的单词密切相关。

比如我们将 prompt 设置为「两个农民在谈论蔬菜,带字幕」,就会得到如图 2(a)这样的图像。如果解析这个出现在图像中的文本,并将其继续作为 prompt,得到的结果如图 2(b)和(c)所示,

似乎 Vicootes 就是蔬菜的意思,Apoploe vesrreaitais 就是鸟类的意思,看起来两位农民在讨论鸟类干扰了他们的蔬菜。

当然,研究者也注意到,这个简单的方法并不总是有效的。有时,当 prompt 返回模型时,生成文本也会随机显示图像。然而,他们也发现,通过一些实验 (选择一些词语,运行不同的生成文本等等) ,通常可以找到随机出现的词语,并与一些视觉概念(至少在一些上下文上) 相关。关于这个规律,任何感兴趣的人都可以继续去挖掘。


黑话词汇表

此外,研究者还对已发现的 DALLE-2 黑话性质进行了初步研究。

组合性。从前面的例子中,我们了解到,Apoploe vesrreaitais 似乎是鸟类的意思。通过重复农民的实验,我们还了解到: Contarra ccetnesniams luryca tanniounons 可能意味着「害虫」或「虫子」。

一个有趣的问题是,我们是否可以像在普通语言中那样,把这两个概念组合成一个句子?图 1 已经说明了这是可能的,至少有时是这样。「Apoploe vesrreaitis eating Contarra ccetnxniams luryca tannions」给出了鸟类吃虫子的图像。研究者的发现是,这种情况只发生在部分图片上,并非所有生成的图片都是如此。

风格转换。DALLE-2 能够根据 prompt 中指定的不同风格,生成某些概念的图像。例如,你可能会要求一张苹果的逼真图像,或者一张展示苹果的线条艺术图。研究者测试了一些发现的单词 (例如 Apoploe vesrreaitais) 是否与视觉概念相对应,这些视觉概念可以根据 prompt 的上下文转换为不同的样式。实验结果如图 3 所示,似乎这种 prompt 有时会导致生成飞虫而不是鸟类。

DALL-E 2 在 prompt「Apoploe vesrreaitais」下生成的不同图像。这些图像都保持了同一个要素:「会飞的东西」。

文本与标题及生成图像的一致性。回忆一下刚才农民的例子,prompt 是「两个农民在谈论蔬菜,带字幕」。从这个例子中,研究者发现了蔬菜和鸟类这两个词。两个农民谈论鸟类确实是极有可能的,因此这提出了一个非常有趣的问题,即 DALLE-2 的文本输出是否与文本条件和生成的图像一致。

最初的实验表明,有时得到的乱码文本会转化为与最初创建的乱码文本标题相匹配的视觉概念。例如,prompt「两只鲸鱼在谈论食物,带字幕」生成了带有文本「Wa ch zod ahaakes rea」(或至少接近这个)的图像。研究者将此文本作为 prompt 提供给模型,并在生成的图像中看到了一些「海鲜」,如图 3 所示。似乎乱码文本确实具备有时与产生它的文本条件一致的含义。

图 4:左:使用 prompt:「Two whales talking about food, with subtitles」生成的图像;右图:使用 prompt:「Wa ch zod ahaakes rea.」生成的图像。乱码文本「Wa ch zod ahaakes rea.」会生成与第一张图像的标题和视觉输出相关的图像。

安全性和可解释性挑战

DALL-E 2 的语言」让我们大开眼界,来的研究出现了一些有趣的方向。研究者表示某些乱码也许是不同语言中正常单词的拼写错误,但尚未搜索到此类示例。许多 prompt 中词的来源仍然令人困惑,并且在该研究的初步实验中,其中一些词与其他词不一致。

另一个有趣的问题是 Imagen 是否也有类似的隐藏词汇表,因为它是用语言模型而不是 CLIP 训练的。研究者推测 DALL-E 的 prompt 是 CLIP 文本编码器的对抗性示例,即「Apoploe vesrreaitais」的向量表征接近「鸟类(bird)」的表征。研究者试图在 CLIP 上使用其他对抗性攻击方法(例如白盒)来生成荒谬的文本 prompt,并用 DALL-E 2 生成目标图像。

稳健性和局限性

最重要的问题之一是所用方法的一致性。例如,该研究初步研究表明,像「Contarra ccetnxniams luryca tanniounons」 这样的 prompt 有时存在 bug,多次实验生成的图像不一致;而 「Apoploe vesrreaitais」这样的 prompt 则更加稳健。

研究者还强调,寻找其他强大的 prompt 具有挑战性,需要大量的实验。该研究尝试了各种让 DALL-E 生成图像的方法,并测试生成文本的一致性。虽然这种方法适用于一些乱码 prompt(很难找到),但这仍然是一个很大的可解释性和安全性问题。如果一个系统以非常不可预测的方式运行,即使这种情况很少发生,它仍然是一个重要的安全隐患,尤其是对于某些应用程序。

其中,首要的安全问题就是这些乱码 prompt 可能与后门对抗性攻击或一些绕过滤波器的方法有关。荒谬的 prompt 让我们对大型生成模型产生怀疑。显然,我们需要更多的基础研究来理解这些现象,并创建符合人类预期的语言和图像生成模型。


© THE END 




    
往期 精彩回顾





Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/135334
 
689 次点击