首頁  >  文章  >  科技週邊  >  博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

WBOY
WBOY轉載
2023-04-08 22:01:131446瀏覽

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自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

清一色產出的圖片,都是鳥吃害蟲相關。

而且你要是跟DALL·E 2說,生成“兩隻鯨魚討論食物,帶字幕”,結果會是這樣:

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

圖裡的“Wa ch zod rea”,在DALL·E 2的詞庫裡竟然是“食物”的意思!

此事一曝光,瞬間引發了眾多網友的熱議。

甚至還有人提出,有了這些秘密語言,可以繞過DALL·E 2的“違禁詞過濾器”,從而生成一些有爭議的圖像了。

(搞事情!)

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

所以,關於DALL·E 2的秘密咒語,到底是怎麼一回事?

一次意外的發現

發現這個問題的是國外一名電腦專業的博士生。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

他注意到DALL-E 2模型在遇到需要給出帶有文字的圖像時,總是會出現一些奇怪的單字。

例如輸入這句話:“兩個農民談論蔬菜,帶字幕(Two farmers talking about vegetables, with subtitles)”,就出來這樣一張圖像:

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

#像是挺像的,不過這字幕寫的啥啊,不是英語又不是法語的,太奇怪了。

「你給我翻譯翻譯什麼這是?」

靈機一動的小哥把其中一個「單字」「Vicootes」當作描述丟給模型,沒想到,出來這樣一堆圖:

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

有蘿蔔、有南瓜、有小柿子…難道「Vicootes」就代表蔬菜?

有意思。

接著他又把氣泡中的那一串「Apoploe vesrreaitais」丟給DALL-E 2,一堆鳥圖出現了:

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

「哦我明白了,這個詞代表'鳥',所以農民們似乎在談論影響他們蔬菜的鳥類?」

看來DALL-E 2沒有糊弄人…

“我發現DALL-E 2的秘密語言了!」小哥驚呼,繼而打算再驗證一下這是不是偶然。

還是剛才提到的鯨魚討論食物的例子中,小哥把那串「Wa ch zod rea」再輸回去。

結果還真出來一堆吃的,而且還全是海鮮,符合鯨魚們的「食性」。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

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

更進一步,他用這些「咒語」搭配形容圖像風格的詞,看看DALL-E 2是否能正常解析。

結果也都沒問題。看看這些「手繪鳥「、「卡通鳥」、「3D鳥」以及「線稿鳥」:

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

emmmm,最後一張怎麼混進來個蚊子?

先不管它了(一會兒再說)。

所以這個模型為什麼要用這種秘密語言來表示呢?

為什麼會這樣?

「DALL-E 2秘密咒語」話題之熱,也引來了眾多「解析俠」們的關注。

例如一位叫k1uge的網友便提出,問題出在了BPE(Byte Pair Encoding)身上。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

BPE是自然語言語言處理中較為重要的編碼方式之一,也是常見的token壓縮方法,在許多大語言模型中都會涉及。

它的核心想法是:

每一步都將最常見的一對相鄰資料單位,替換為該資料中沒有出現過的一個新單位,反覆迭代直到滿足停止條件。

舉例。

如果要壓縮「aaabdaaabac」這個單字,BPE就會先找出最常見的相鄰位元組對,也就是「aa」。

找到它之後,就可以用新的位元組Z去代替,那麼這個單字就變成了「ZabdZabac」。

同理,下一個最常見相鄰位元組對是“ab”,用Y來代替,單字會進一步被壓縮成“ZYdZYac”。

再下一個最常見相鄰位元組對是“ZY”,用X來替代,最後單字就變成了“XdXac”。

……

於是,基於這樣的原理,網友查了下DALL-E 2針對「鳥類」所用的BPE。

它是這樣的:

apo<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> plo<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> e<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> <span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span>ve<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> sr<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> re<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> ait<span style="color: rgb(89, 89, 89); margin: 0px; padding: 0px; background: none 0% 0% / auto repeat scroll padding-box border-box rgba(0, 0, 0, 0);">,</span> ais

而現實中許多鳥類的拉丁文學名,就有「apo」和「plo」的前綴。

例如Apodidae(雨燕)和Ploceidae(織布鳥),這兩個單字屬於鳥類的2種鳥科,每個科都有100餘種。

像Apodiformes(雨燕目)是鳥類中最大的目,共有400餘種。

於是這位網友便認為,DALL-E 2是從標有這些「學術用語」標籤的圖片中,獲取到了關於鳥類的大部分資訊。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

或許這就是造成DALL-E 2秘密咒語的原因了。

但,事情還有反轉

激動的博士小哥還專門寫了一篇小論文講述這個事情,還把這些發現都發在了推特上,引來數千網友圍觀,令大家直呼「Incredible」。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

不過很快就會有人親自去試了一下,發現好像事情並沒有那麼簡單。

例如代表“蟲子”的那一串“Contarra ccetnxniams luryca tanniounons”,除了蟲子,也會產生一些青蛙、牛或鴿子的圖像。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

如果給這個描述再加上“cartoon”一詞作為限定,生成的是一些“奶奶”,跟蟲子完全不搭邊? ?

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

「Apoploe vesrreaitais」倒是沒問題,出來的還是一些鳥。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

不過同樣,一旦給它加上「cartoon」「3D render」這類詞,又不對了,出來的是一些蟲子。

(這和小哥最後那個例子裡出現的蚊子也對應上了。)

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

代表蔬菜的「Vicootes」也是這樣,單輸沒問題,一加上風格限定,出現的物種就變了;且基本上可以說只符合“油畫”“卡通”這些風格設定,跟前面的名詞限定毫無關聯,比如“Vicootes” “painting”就是一堆純風景繪畫。

接著他還用同樣的「兩隻鯨魚談論食物,帶字幕」生成了一些圖片,結果大部分文字都看不清,也沒法轉錄。

最後找到一張這樣的:

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

他用上面的」Evve waeles」再輸入後,雖然得到了一張甜點照片,但出現了很多運動員、動物甚至水壺的照片。

博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!

真的有點摸不著頭腦了。

於是這位實驗者就表示:

在我看來,這更像是一些隨機的噪音,而不是DALL-E 2的秘密語言。

博士意外發現秘密: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

#Bgisannias# .io/publications/Discovering_the_Secret_Language_of_Dalle.pdf

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

以上是博士意外發現秘密:DALL-E 2自創語言,人看不懂但會產生特定影像,可能會被用來搞事!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除