【花師小哲】當(dāng)代煉金術(shù)(神經(jīng)網(wǎng)絡(luò))前沿(48)——文字順序不影響GPT-4閱讀?
真的好久沒(méi)來(lái)更新學(xué)術(shù)相關(guān)的專欄了,主要最近是真的忙啊,余出來(lái)的時(shí)間又去剪視頻了。當(dāng)然另一個(gè)重要的原因是最近確實(shí)沒(méi)有特別有趣的論文,我也不想做什么年度總結(jié)啥的。然后就看到了這篇論文:


1.文字順序不影響GPT-4的閱讀?
沒(méi)錯(cuò),這篇文章研究發(fā)現(xiàn)文字順序不影響GPT-4的閱讀。
肯呢個(gè)會(huì)有朋友說(shuō),這也沒(méi)什么大不了的嘛,人類也能做啊,你把標(biāo)題改成“文字影序順響不GPT-4讀閱”也不是不能看對(duì)吧,但這件事對(duì)于大語(yǔ)言模型(LLM)來(lái)說(shuō)還真沒(méi)那么容易,也就是來(lái)到我們這篇打算展開(kāi)講講的token

2.token
token也算是曾經(jīng)挖過(guò)的坑了,主要是很多時(shí)候確實(shí)沒(méi)有填這個(gè)坑的必要,畢竟這個(gè)系列還是主要介紹“現(xiàn)在的AI在研究什么”這樣high-level的問(wèn)題。
token一般不做翻譯,如果硬要翻譯的話一般叫做“詞元”“子詞”之類的,以英語(yǔ)為例,就是介于字母和單詞之間的一個(gè)單元,例如,在很多視頻評(píng)論區(qū)都會(huì)出現(xiàn)的“sweet”在token層面可能就會(huì)被拆成“sw”和“eet”這兩個(gè)token
為什么需要token呢?直接用字母或單詞不好嗎?原因還是有很多的,這里稍微介紹一些:
(1)數(shù)量比較合適。如果我們用字母的話,符號(hào)數(shù)量會(huì)比較少,用單詞的話會(huì)比較多,用token比較合適
(2)對(duì)拼寫(xiě)錯(cuò)誤和形式變換有一定的應(yīng)對(duì)。例如,我如果覺(jué)得一個(gè)視頻真的太甜了,我會(huì)用“sweeeeeet”這樣的詞匯,而我們不太可能為這樣的單詞單獨(dú)建立一個(gè)單位,那這個(gè)單詞可能就當(dāng)做什么錯(cuò)誤單詞被扔掉了,但顯然這個(gè)詞可能在這句話中很重要。如果用token的話,也許就會(huì)拆成“sw”“eeee”“eet”這樣的,你還是可以從“sw”“eet”中還原出sweet來(lái)的,也能認(rèn)出中間的是加重的重復(fù)。初次之外,例如我們把sweet拼寫(xiě)錯(cuò)誤成sweat了,那么“sw”的信息還在,那么LLM就有可能意識(shí)到這個(gè)拼寫(xiě)錯(cuò)誤。當(dāng)然也是一定的應(yīng)對(duì)。
(3)有共性。作為表音語(yǔ)言,英語(yǔ)中很多相同的發(fā)音可能對(duì)應(yīng)相似的意思,這時(shí)候用token就可以一定程度上捕捉單詞見(jiàn)的“共性”
(4)可擴(kuò)展性強(qiáng)。我們可以插入一些特殊字符啥的,也有一些研究把視覺(jué)也整合進(jìn)來(lái),做了個(gè)voken,可見(jiàn)token是可以被拓展為多模態(tài)的。
但不管怎么說(shuō)吧,用token作為語(yǔ)言模型輸入的基本單位已經(jīng)是廣泛使用的了。當(dāng)然,token不是隨便亂分的,也是需要數(shù)據(jù)來(lái)進(jìn)行自動(dòng)構(gòu)建的,這里不展開(kāi)。

3.token帶來(lái)的不便
token雖然廣泛使用,但也就意味著我們?nèi)祟惪次谋竞蚅LM看文本的底層單位就是不一樣的,這往往使得一些我們看起來(lái)可能很簡(jiǎn)單的問(wèn)題對(duì)于LLM來(lái)說(shuō)卻意外復(fù)雜,例如:
(1)顛倒單詞順序。這個(gè)看起來(lái)很容易的任務(wù)能難道很多LLM的,因?yàn)長(zhǎng)LM看文本是token的,例如它們就很容易把“sweet”的顛倒寫(xiě)成“eetsw”
(2)提取單詞的最后一個(gè)字母。例如給定“Apple John Table Anna”,提取這四個(gè)單詞的最后一個(gè)字母并連起來(lái)。人類做起來(lái)是真的簡(jiǎn)單,但很多LLM都做不來(lái)的(有幾個(gè)版本的ChatGPT是無(wú)法再zero-shot模式下給答案的,但是CoT加持下是可以的)
對(duì)于亂序也是一樣,畢竟我們打亂文本還是按照字母為單位的,這也就意味著token幾乎是完全的混亂,或者說(shuō)面目全非,相當(dāng)于我們把字母本身給拆掉然后胡亂組裝在一起,這可不是隨隨便便就能看的了

4.本文的實(shí)驗(yàn)
本文一共就兩個(gè)任務(wù),如圖:

即加擾句子恢復(fù)和加擾問(wèn)答,所選用的數(shù)據(jù)集屬于難度不至于很低也不會(huì)很高的那種,包括多選的閱讀理解、需要多步推理的數(shù)學(xué)問(wèn)題等。加擾動(dòng)的方法主要有全隨機(jī)、首字母不隨機(jī)、首字母和最后的字母不隨機(jī)三種,并且擾動(dòng)幅度也會(huì)逐漸增大。
隨著難度越來(lái)越高,大部分LLM都承受不住,最終只有GPT-4在高強(qiáng)度擾動(dòng)下表現(xiàn)依然還可以(也不能過(guò)于難為人家是吧)
這個(gè)結(jié)果其實(shí)很讓人驚訝,畢竟我們完全不知道在token幾乎亂七八糟的情況下GPT-4究竟是怎樣正常運(yùn)行的?難不成有在內(nèi)部再對(duì)token進(jìn)行處理的我們不知道的機(jī)制(說(shuō)的好像我么對(duì)GPT-4的運(yùn)行原理理解的很清楚似的)。
當(dāng)然,我對(duì)中文的token不熟啊,所以你們可以去文心之類的試下中文亂序情況如何,有些人說(shuō)簡(jiǎn)單的擾動(dòng)還是可以處理的。

5.結(jié)語(yǔ)
這研究真有意思,我還做了表情包,期待GPT-4取代梅莉和伍進(jìn)行交談的場(chǎng)景(什么冷門(mén)梗):



其實(shí)之前也有類似的好玩的研究,例如如果我們用密碼和GPT-4交流(沒(méi)錯(cuò),人家確實(shí)可以這樣交流),那么GPT-4就更容易生成有害內(nèi)容,但當(dāng)時(shí)也沒(méi)多少人往token這個(gè)方面去想。