博士意外发现秘密:DALL-E 2自创语言,人看不懂但能生成特定图像,可能会被用来搞事!

人工智能
“我发现了DALL-E 2的秘密语言!”小哥惊呼,继而打算再验证一下这是不是偶然。还是刚才提到的鲸鱼讨论食物的例子中,小哥把那串“Wa ch zod rea”再输回去。

DALL·E 2,这个AI竟然自己搞了一套秘密语言。

例如这两个非常奇怪的词组:

  • Apoploe vesrreaitais(下文简称A)
  • Contarra ccetnxniams luryca tanniounons(下文简称C)

(翻译软件都会崩溃,可以去试试)

但到了DALL·E 2这里,画风却截然不同。

在它看来,A就是“鸟类”的意思,而C则是“害虫”之意。

于是乎,如果给DALL·E 2喂上一句:A eat C,那么它的打开方式就会这样:

图片

清一色产出的图片,都是鸟吃害虫相关。

而且你要是跟DALL·E 2说,生成“两只鲸鱼讨论食物,带字幕”,结果会是这样:

图片

图里的“Wa ch zod rea”,在DALL·E 2的词库里竟然是“食物”的意思!

此事一经曝光,瞬间引发了众多网友的热议。

甚至还有人提出,有了这些秘密语言,可以绕开DALL·E 2的“违禁词过滤器”,从而生成一些有争议的图像了。

(搞事情!)

图片

所以,关于DALL·E 2的秘密咒语,到底是怎么一回事?

一次意外的发现

发现这个问题的是国外一名计算机专业的博士生。

图片

他注意到DALL-E 2模型在遇到需要给出带文字的图像时,总是会出现一些奇怪的单词。

比如输入这句:“两个农民谈论蔬菜,带字幕(Two farmers talking about vegetables, with subtitles)”,就出来这样一张图像:

图片

像是挺像的,不过这字幕写的啥啊,不是英语又不是法语的,太奇怪了。

“你给我翻译翻译什么这是?”

灵机一动的小哥把其中一个“单词”“Vicootes”当作描述丢给模型,没想到,出来这样一堆图像:

图片

有萝卜、有南瓜、有小柿子……难道“Vicootes”就代表蔬菜?

有意思。

接着他又把气泡中的那一串“Apoploe vesrreaitais”扔给DALL-E 2,一堆鸟图出现了:

图片

“哦我明白了,这个单词代表‘鸟’,所以农民们似乎在谈论影响他们蔬菜的鸟类?”

看来DALL-E 2没有糊弄人……

“我发现了DALL-E 2的秘密语言!”小哥惊呼,继而打算再验证一下这是不是偶然。

还是刚才提到的鲸鱼讨论食物的例子中,小哥把那串“Wa ch zod rea”再输回去。

结果还真出来一堆吃的,而且还全是海鲜,符合鲸鱼们的“食性”。

图片

DALL-E 2,真·诚不我欺。

更进一步,他用这些“咒语”搭配形容图像风格的词,看看DALL-E 2是否能正常解析。

结果也都没问题。看看这些“手绘鸟“、“卡通鸟”、“3D鸟”以及“线稿鸟”:

图片

emmmm,最后一张怎么混进来个蚊子?

先不管它了(一会再说)。

所以这个模型为什么要用这种秘密语言来表示呢?

为什么会这样?

“DALL-E 2秘密咒语”话题之热,也引来了众多“解析侠”们的关注。

例如一位叫k1uge的网友便提出,问题出在了BPE(Byte Pair Encoding)身上。

图片

BPE是自然语言语言处理中较为重要的编码方式之一,也是一种常见的token压缩方法,在很多大语言模型中都会涉及。

它的核心思路就是:

每一步都将最常见的一对相邻数据单位,替换为该数据中没有出现过的一个新单位,反复迭代直到满足停止条件。

举个例子。

如果要压缩“aaabdaaabac”这个单词,BPE就会先找出最常见的相邻字节对,即“aa”。

找到它之后,就可以用新的字节Z去代替,那么这个单词就变成了“ZabdZabac”。

同理,下一个最常见相邻字节对是“ab”,用Y来代替,单词会进一步被压缩成“ZYdZYac”。

再下一个最常见相邻字节对是“ZY”,用X来替代,最后单词就变成了“XdXac”。

……

于是,基于这样的原理,这位网友查了下DALL-E 2针对“鸟类”所用的BPE。

它是这样的:

apo, plo, e, ,ve, sr, re, ait, ais

而现实中很多鸟类的拉丁文学名,就有“apo”和“plo”的前缀。

例如Apodidae(雨燕)和Ploceidae(织布鸟),这两个单词属于鸟类的2种鸟科,每个科都有100余种。

像Apodiformes(雨燕目)是鸟类中最大的目,共有400余种。

于是这位网友便认为,DALL-E 2是从标有这些“学术用语”标签的图片中,获取到了关于鸟类的大部分信息。

图片

或许这就是造成DALL-E 2秘密咒语的原因了。

但,事情还有反转

激动的博士小哥还专门写了一篇小论文讲述这个事情,还把这些发现都发在了推特上,引来数千网友围观,令大家直呼“Incredible”。

图片

不过很快就有人亲自去试了一下,发现好像事情并没有那么简单。

比如代表“虫子”的那一串“Contarra ccetnxniams luryca tanniounons”,除了虫子,也会生成一些青蛙、牛或者鸽子的图像。

图片

如果给这个描述再加上“cartoon”一词作为限定,生成的是一些“奶奶”,跟虫子完全不搭边??

图片

“Apoploe vesrreaitais”倒是没问题,出来的还是一些鸟。

图片

不过同样,一旦给它加上“cartoon”“3D render”这类词,又不对了,出来的是一些虫子。

(这和小哥最后那个例子里出现的蚊子也对应上了。)

图片

代表蔬菜的“Vicootes”也是这样,单输没问题,一加上风格限定,出现的物种就变了;且基本可以说只符合“油画”“卡通”这些风格设定,跟前面的名词限定毫无关联,比如“Vicootes”+“painting”就是一堆纯风景绘画。

接着他还用同样的“两只鲸鱼谈论食物,带字幕”生成了一些图片,结果大部分文字都看不清,也没法转录。

最后找到一张这样的:

图片

他用上面的”Evve waeles”再输入后,虽然得到了一张甜点照片,但出现了很多运动员、动物甚至水壶的照片。

图片

还真的有点摸不着头脑了。

于是这位实验者就表示:

在我看来,这更像是一些随机的噪音,而不是DALL-E 2的秘密语言。

图片

他艾特了博士小哥,希望他可以再给出相反的证据。

目前小哥还没有答复。

不过这确实是一个值得关注和讨论的话题,鉴于一些“咒语”和图像可以对上,如果真的是BPE码的话,那么真可能博士小哥所说:

有人用“白盒”方法解开这种规则,拿到一些违禁词的“咒语”,就可以绕过模型的过滤器了。

参考链接:

[1]https://twitter.com/giannis_daras/status/1531693093040230402

[2]https://twitter.com/BarneyFlames/status/1531736708903051265

[3]https://twitter.com/benjamin_hilton/status/1531780892972175361

[4]https://giannisdaras.github.io/publications/Discovering_the_Secret_Language_of_Dalle.pdf

[5]https://zhuanlan.zhihu.com/p/424631681

责任编辑:武晓燕 来源: 量子位
相关推荐

2021-12-09 11:59:49

JavaScript前端提案

2022-05-19 15:31:10

图灵图像测试

2022-08-31 08:54:57

AIDALL-E 2OpenAI

2023-09-21 07:54:22

人工智能DALL-E 3

2023-08-02 16:09:16

2023-10-04 20:09:16

微软Bing Chat

2021-12-23 09:54:02

AI模型人工智能

2019-12-09 08:29:26

Netty架构系统

2020-06-22 10:30:33

开发者工具代码

2022-12-12 07:40:36

服务器项目Serverless

2022-08-08 16:24:04

AI图像研究

2023-06-30 08:01:04

Reactuse关键词

2022-07-26 14:38:08

JavaScriptWeb安全自动化

2023-10-20 08:26:50

2022-08-17 15:52:24

AI

2020-03-30 16:45:06

代码看不懂

2022-06-16 14:07:26

Java代码代码review

2023-03-22 14:05:00

微软AI

2019-10-24 08:56:38

语言代码Java

2023-07-10 15:22:29

OpenAIGPT-3.5
点赞
收藏

51CTO技术栈公众号