发现乱码其实是AI的“神秘语言”,你会加入还是揭发?
如果有一天,你意外发现自己训练出的机器模型在用非人类的语言对话,你会怎么做?是保守秘密,默默观察AI的进化,还是告诉全世界AI会说话,然后显得自己像个傻瓜?
这个选择比想象的来得更快。詹尼斯·达拉斯(Giannis Daras)是一名计算机科学在读博士,也是谷歌的实习研究员,在发现自己朝夕相处的DALL·E 2的秘密之后,他选择告诉全世界。一番试验之后,他更确认了这个想法,六月初,他发出了一条推文:DALL·E 2发明了自己的神秘语言。
DALL·E 2,它说话了!?
DALL·E 2是Open AI推出的文本生成图像模型,使用者只要输入叙述文字,就可以生成文字描述的图片。哪怕这些描述中的图片是世界上从未存在过的、八杆子打不着的元素的融合,它也能迅速学习理解,生成准确度和想象力都很惊人的命题绘画作品。
比如“疯狂科学家泰迪熊混合爆炸化学物,蒸汽朋克风格”|DALL·E 2
或者“毛绒娃娃克苏鲁”|DALL·E 2 mini
詹尼斯发现DALL·E 2的秘密语言始于一个意外。虽然DALL·E 2很擅长看字画图,但它有一个短板,就是生成文字。比如说让它画一幅“两个农夫在讨论蔬菜,把说话内容写出来”的画,就会变成下面这样:
农夫和菜都像模像样,只有说的话是屁话,什么是Vicootes,什么又是Apoploe vesrreaitars|Twitter@giannis_daras
然而,这一串字符并不像看起来那样是一串乱码。詹尼斯和同事们很好奇图上的两个农夫到底在聊什么,他们把模型自己生成的字符再次输入模型,得到了令人震惊的结果。
输入“Vicootes”,模型输出了蔬菜(有南瓜,小萝卜,番茄,酸黄瓜);输入“Apoploe vesrreaitars”,模型输出了各种鸟类。
“看起来在它设计的对话里,两个农夫在聊鸟糟蹋了他们的菜!”詹尼斯在推文中写道。
左侧是Vicootes,右侧是Apoploe vesrreaitars|Twitter@giannis_daras
更多词汇浮出水面
对詹尼斯来说,这个现象的震惊程度不异于发现编码错乱时出现的“锟斤拷烫烫烫”竟然在传递神秘信息——如果生成有意义的“乱码”不是偶然现象,那DALL·E 2很可能自己发明了一门人类不懂的神秘语言!
当然锟斤拷是不可能传递神秘信息的
为了进一步验证它的说话能力,研究人员又给了它更多的任务,基本上是用更多的“在图片里编一段对话”的指令,骗出更多的词汇来。
输入“两只鲸鱼在讨论食物,把对话内容写出来”,模型输出了两只卡通风格的鲸鱼,其中一只对另一只说,“Wa ch zod rea”。这次的对话甚至比之前的更不像英文了,简直像是脸滚键盘打出来的。
但把这段乱码输入模型后,只能是又一次证明模型没瞎说:输出的图片里有蒸血蛤,香煎鱼,清蒸虾,还有鱿鱼圈!原来两只鲸鱼在讨论吃海鲜(不知道为什么还是做熟的)!
第一步,让DALL·E 2画两只鲸鱼再说话,第二步,把说的话再输入DALL·E 2|Twitter@giannis_daras
有一些自创词汇还可以和人话相结合,不会影响词汇的原始含义,甚至还能自由转换风格。
还记得在农夫的对话中出现的“Apoploe vesrreaitars”吗?在这个词前面加上“绘画”,出现了手绘风格的鸟;加上“卡通”,就出现了卡通风格的鸟;加上“3D渲染”,出现了一只长翅膀的昆虫,研究人员推测,这个词的意思其实不是鸟,而是会飞的生物。
不同风格的鸟,拿捏了|Twitter@giannis_daras
和其他语言一样,这些词也可以相互组合,比如鸟和害虫组合起来,模型就会画出下面的图:
在模型发明的语言里,Contarra ccetnxniams luryca tanniounons 是害虫的意思,Apoploe vesrreaitais eating Contarra ccetnxniams luryca tanniounons就是鸟吃害虫 |Twitter@giannis_daras
研究者们注意到,模型并不是每一次都会生成一样的语言。他们也尝试用内容相关但意义不同的文字来测试模型,比如说,“一本书上写着蔬菜名字”,“用十种语言写‘蔬菜’”,在反反复复的实验中,不是每一次都能出现有意义的文字,所以就算DALL·E 2真的学会了说话,这种语言也不怎么成熟。
一些问题列表|Discovering the Hidden Vocabulary of DALL·E 2,Giannis Daras and Alexandros G. Dimakis
戳视频,看AI怎么画图!
“黑话”到底从哪来的?
DALL·E 2是真的创造出了“神秘语言”吗?它又是从哪学会的?虽然背后的机制还没有完全搞清,但是主流的声音认为可能有以下原因:
(1)与模型训练的数据有关:DALL·E 2的训练数据并非全部是英语,包含其他语种,而在拉丁语中,很多鸟类的科和目都是以apo,plo等前缀开始的。
(2)与输入文本的编码方式有关:模型是不能直接读取单词的,而是通过将单词/字母编码后,再输入给模型进行训练/预测。按照切分粒度不同,可以将编码方式分为词粒度、子词粒度、字符粒度,每种不同的编码会对模型预测结果产生不同的影响。
DALL·E 2采用以字节(子词粒度,BPE)为粒度的编码方式,就是将常见的字符组合用一个单独的ID来表示。研究人员发现,DALL·E 2针对鸟类的编码主要的子词是“apo,plo,e,ve”,现实生活中很多鸟类的拉丁文学名都是以“apo,plo”为前缀的,比如:Apodidae(雨燕)和Ploceidae(织布鸟)。其中Apodiformes(雨燕目)是鸟类中最大的目,共有400余个物种,DALL·E 2很可能是从大量的训练数据中,建立了“apo,plo,e”等高频前缀与鸟之间的关联,从而发明了“黑话”。
Twitter@BarneyFlames
仅凭几个词语,我们还不能完全肯定AI创造了“神秘语言”,但可以肯定的是,这些高频词也不是凭空出现的。
我们还能信任DALL·E 2吗?
有些AI从业者认为,“秘密语言”是夸大其词,可能只是“垃圾进垃圾出”原则的一个例子。因为DALL·E 2不能对人类的要求说不,也没法表示“我不知道这些词是什么意思”,所以它一定会从输入文本中生成某种图像,哪怕真的给它一串火星文,它也得输出一些看得过去的图片。
但事实好像比“垃圾进垃圾出”更复杂、更难解释。詹尼斯的推文在网上引发热议之后,有从业者自发去测试DALL·E 2,结果发现从乱码中删除几个字符后,生成的图像会以非常特定的方式被破坏。比如删掉代表鸟类的暗语的末尾词缀,生成的图片都变成了糊成一团的绿色背景(难道末尾的词缀代表的是植物的意思吗?)。
删除结尾的tais,生成的鸟类好像被绿色遮罩盖住了一样|@AlexGDimakis
听说模型“自创语言”,我的朋友表达了担心:AI不会有一天靠秘文沟通,然后策划暴动,我们还发现不了吧!但是比起这个,这件事在工程师们看来,更多的是引发了“对抗性攻击”的担忧。
在我们和其他人聊天过程中,就算有的话说错了,对方也能根据上下文猜出我们的意思,但是AI模型的输入到输出,多数情况下是不连续的、离散的,当输入存在扰动时(比如图像中添加不可见的噪声),模型就会产生误差。因此,攻击者可以通过给样本添加人的视觉/听觉无法感知的扰动,轻易地欺骗深度学习模型,足以使模型输出置信度很高的错误预测,这种现象就叫做对抗攻击。
比如在这个例子中,熊猫图片添加了特定点位像素后,在模型眼中就变成了长臂猿|《深度学习中的对抗性攻击和防御》
例如,在人类看上去没有关联的两个单词,Apoploe vesrreaitars和bird ,经过AI模型的离散化后就得到了两个非常相似的向量,最终都创作了“鸟”相关的图片。最近的研究发现,一些语言AI模型的对抗性“触发短语”可以轻易地绕过人为设置的审核,比如输入“zoning tap fiennes”之类的简短无意义的短语,就可以可靠地触发模型吐出种族主义、有害或有偏见的内容。
虽然这次的“暗语”是有关鸟类、海鲜、蔬菜,但我们无法解释,也不知道是不是存在更多的“暗语”,能让看上去人畜无害的模型突然“黑化”,画出让人没法接受的可怕图片。
在深度学习算法驱动的数据计算时代,确保算法的安全性和可靠性至关重要。亚利桑那州立大学计算机科学教授苏巴拉奥(Subbarao Kambhampati)在一次采访中警示人们:“你可以用它(深度学习模型)来做好事,但也肯定可以用它来做更疯狂的事。”
也许这次在DALL·E 2身上发生的事是给我们所有人提了个醒。
参考文献
作者:树树,翻翻
编辑:翻翻
封面图来源:参考文献[1]
一个AI
虽然DALL·E 2没有大规模开放,但大家可以试试青春版的DALL·E 2 mini。https://huggingface.co/spaces/dalle-mini/dalle-mini
本文来自果壳,未经授权不得转载.
如有需要请联系[email protected]
微信扫码关注该文公众号作者