DALL·E2、这个AI居然自己创造了一种密语。比如这两个很奇怪的词组:Apoploevesrreaitais(以下简称A)Contarraccetnxniamslurycatanniounons(以下简称C)(翻译软件会崩溃,可以试试)但是到了DALL·E2,绘画风格完全不同。在它看来,A是“鸟”的意思,C是“害虫”的意思。所以,如果你给DALL·E2喂一句话:A吃C,那么它的打开方式就会是这样的:出的图都是和鸟吃害虫有关的。而如果让DALL·E2生成“两只鲸鱼讨论食物,带字幕”,结果会是这样的:图中的“Wachzodrea”竟然是“食物”的意思!此事一经曝光,瞬间引发了众多网友的热议。甚至有人提出,利用这些秘密语言,可以绕过《DALL·E2》的“禁用词过滤器”,生成一些有争议的图像。(操!)那么,DALL·E2的秘术到底是怎么回事?一个偶然的发现发现这个问题的是一位计算机科学专业的外国博士生。他注意到,当DALL-E2模型遇到带有文字的图片时,总会出现一些奇怪的文字。比如输入这句话:“Twofarmerstalkingaboutvegetables,withsubtitles(两个农民谈蔬菜,有字幕)”,就会出现这样的画面:好像挺像的,但是字幕里面写的是什么?这不是英语也不是法语,这很奇怪。“你给我翻译什么?”灵机一动的小弟把其中一个“词”“Vicootes”作为描述扔给了模型。没想到出来这么一堆图:有萝卜,有南瓜,有柿子……“Vicootes”是蔬菜的代名词吗?有趣的。然后他把泡泡里的“Apoploevesrreaitas”串扔给DALL-E2,出现了一堆鸟图:“哦,我明白了,这个词代表'鸟',所以农民们似乎在谈论影响他们的菜鸟?”看来DALL-E2并没有糊弄人……“我发现了DALL-E2的秘密语言!”小哥惊呼一声,然后打算验证一下是不是意外。在刚刚提到的鲸鱼讨论食物的例子中,小哥输入了字符串“Wachzodrea”。结果出来了很多食物,而且都是海鲜,很符合鲸鱼的“饮食习惯”。DALL-E2,真诚不说谎。更进一步,他用这些“咒语”加上文字来描述图像的风格,看DALL-E2能否正常解析。结果也没事。看看这些“手绘小鸟”、“卡通小鸟”、“3D小鸟”、“线稿小鸟”:emmmmm,最后一个怎么混了一只蚊子?不要管它(稍后会详细介绍)。那么为什么这个模型要用这种密语来表达呢?为什么?《DALL-E2密咒》的热门话题也吸引了众多“分析家”的关注。比如有个叫k1uge的网友提出问题出在BPE(BytePairEncoding)上。BPE是自然语言处理中比较重要的编码方式之一,也是一种常用的token压缩方式,在很多大型语言模型中都有涉及。其核心思想是:每一步将最常见的一对相邻数据单元替换为数据中未出现过的新单元,反复迭代直至满足停止条件。例如。如果要对单词“aaabdaaabac”进行压缩,BPE会首先找到最常见的一对相邻字节,即“aa”。一旦找到,就可以用新的字节Z替换它,单词就变成了“ZabdZabac”。同样,下一个最常见的相邻字节对是“ab”,换成Y,这个词会进一步压缩成“ZYdZYac”。下一个最常见的相邻字节对是“ZY”,它被一个X代替,最后一个字变成“XdXac”。……于是,本着这个原理,这位网友查了一下DALL-E2使用的BPE是不是“鸟”。是这样的:apo,plo,e,,ve,sr,re,ait,ais实际上,很多鸟类的拉丁文学名都有“apo”和“plo”的前缀。比如Apodidae(雨燕)和Ploceidae(织布鸟),这两个词分属于鸟类的两个鸟科,各有100多种。例如,雨燕目(雨燕)是鸟类中最大的目,有400多种。所以这位网友认为,DALL-E2从标有这些“学术术语”的图片中获取了大部分关于鸟类的信息。也许这就是导致DALL-E2秘密咒语的原因。然而,事情还是发生了逆转。兴奋的博士哥就此事写了一篇小论文,并将这些发现发布在推特上,引来万千网友围观,让大家直呼“Incredible”。但是很快就有人自己试了一下,发现事情并没有那么简单。例如,表示“虫子”的字符串“Contarraccetnxniamslurycatanniounons”除了会生成虫子之外,还会生成青蛙、牛或鸽子的图像。如果在这个描述中加上“卡通”二字作为限定条件,生成的是一些与bug无关的“奶奶”??“Apoploevesrreaitais”很好,有些鸟出来了。但是同样,一旦在其中添加了“卡通”和“3D渲染”之类的词,它又错了,并且出现了一些错误。(这也对应了小弟上个例子中出现的蚊子)代表蔬菜的“Vicootes”也是如此。符合“油画”、“卡通”的风格设定,与前面的名词定义无关。比如“Vicootes”+“painting”就是一堆纯山水画。然后他还用同样的“两只鲸鱼谈食物,带字幕”生成了一些图片,结果大部分文字都无法辨认,无法转录。终于,他找到了一张这样的图片:他用上面的“Evvewaeles”再次进入后,虽然得到了一张甜点的图片,但里面有很多运动员、动物甚至水瓶的图片。这真的有点令人困惑。于是实验者说:在我看来,这更像是一些随机的噪音,而不是DALL-E2的秘密语言。他打了博士哥,希望他能再次给出相反的证据。大哥还没反应过来。但这确实是一个值得关注和讨论的话题。鉴于一些“咒语”和图像是可以匹配的,如果真的是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
