博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 世界的參數(shù)倒影:為何GPT通過(guò)Next Token Prediction可以產(chǎn)生智能(1)

世界的參數(shù)倒影:為何GPT通過(guò)Next Token Prediction可以產(chǎn)生智能(1)

發(fā)布人:數(shù)據(jù)派THU 時(shí)間:2023-06-10 來(lái)源:工程師 發(fā)布文章

來(lái)源:機(jī)器之心

GPT是鸚鵡學(xué)舌,還是真的具有類(lèi)人智能?帶你一探究竟。


「兩位說(shuō)英語(yǔ)的荒島幸存者被困在相鄰島嶼上,中間隔著危險(xiǎn)水域。幸運(yùn)的是,他們發(fā)現(xiàn)了前任居民留下的電報(bào)機(jī),電報(bào)機(jī)通過(guò)一條水下電纜連接起來(lái),他們能夠通過(guò)電報(bào)傳遞信息。但是,他們不知道的是:附近水域里,生活著一個(gè)具備超級(jí)智能的章魚(yú),它劫持了水下電纜并****了他們之間傳送的消息。盡管章魚(yú)不懂英語(yǔ),但其超級(jí)智能使其能夠檢測(cè)到電報(bào)信息文字的統(tǒng)計(jì)模式,并能準(zhǔn)確表示各種電報(bào)信號(hào)間的統(tǒng)計(jì)關(guān)系。在章魚(yú)覺(jué)得自己已經(jīng)學(xué)好這些統(tǒng)計(jì)規(guī)律之后,它切斷水下電纜,將自己兩個(gè)長(zhǎng)觸手定位在電纜的兩個(gè)末端,基于它所識(shí)別出來(lái)的統(tǒng)計(jì)模式,接收并自己來(lái)回復(fù)兩名漂流者的電報(bào)信號(hào)。無(wú)論兩位幸存者是否注意到交流對(duì)象已發(fā)生變化,章魚(yú)發(fā)送出去的信息,在本質(zhì)上似乎沒(méi)有任何含義。畢竟,章魚(yú)只是遵循它從人類(lèi)之間的前期交流中學(xué)到的統(tǒng)計(jì)模式,而并沒(méi)有看到過(guò)任何人類(lèi)對(duì)信號(hào)的解釋?zhuān)热?“椰子” 或 “海水” 所代表的真實(shí)含義。此外,章魚(yú)甚至可能都不明白這些信號(hào)是具有意義的,或起到了促進(jìn)交流的功能?!?nbsp;—— 「章魚(yú)測(cè)試(The Octopus Test)」- Bender & Koller
如果我們把「章魚(yú)測(cè)試」里的章魚(yú)換成 ChatGPT 或 GPT 4,您會(huì)怎么看這個(gè)問(wèn)題呢?也就是說(shuō),下述兩種觀點(diǎn),您支持哪一種呢?一種觀點(diǎn)與 “章魚(yú)測(cè)試” 看法類(lèi)似,認(rèn)為 GPT 4 這種 LLM 模型僅僅學(xué)會(huì)了語(yǔ)言中的單詞共現(xiàn)等淺層的表面統(tǒng)計(jì)關(guān)系,其實(shí)并未具備智能,只是類(lèi)似鸚鵡學(xué)舌的語(yǔ)言片段縫合怪而已;另外一種觀點(diǎn)則認(rèn)為:GPT 4 不僅學(xué)會(huì)了語(yǔ)言元素間的表面統(tǒng)計(jì)關(guān)系,而且學(xué)到了人類(lèi)語(yǔ)言甚至包括物理世界的內(nèi)在運(yùn)行規(guī)律,文字是由內(nèi)在智能產(chǎn)生的,所以 LLM 具備類(lèi)人智能。
這兩種觀點(diǎn)針?shù)h相對(duì),我不確定您屬于哪一派。目前無(wú)論是學(xué)術(shù)界,還是社會(huì)層面,其實(shí)持有兩方觀點(diǎn)的人數(shù)都不少,相互之間爭(zhēng)論很激烈。比如不認(rèn)為大語(yǔ)言模型具備智能的反方知名代表人物,AI 圈子里的大佬代表是 LeCun,語(yǔ)言學(xué)界代表人物是喬姆斯基,都否認(rèn)通過(guò) Next Token Prediction 這種方式訓(xùn)練出來(lái)的大語(yǔ)言模型能夠具備智能;而正方代表人物也很多,OpenAI 不說(shuō)了,毫無(wú)疑問(wèn)是最具影響力的正方代表,從目前的公開(kāi)言論看,Hinton 老爺子很明顯也持正方觀點(diǎn),而且特別正方,不僅認(rèn)為 GPT 4 具備類(lèi)人智能,而且覺(jué)得將來(lái)人類(lèi)這種碳基智能很可能是 LLM 這種硅基智能的引導(dǎo)啟動(dòng)程序 (Booster),在這點(diǎn)上 Hinton 和馬斯克(這是簡(jiǎn)稱(chēng),全名為:埃隆?電動(dòng)車(chē)之王?火箭先驅(qū)?Twitter 再造者?環(huán)保先鋒?火星殖民者?OpenAI 唾棄者?馬斯克)的看法是類(lèi)似的。
目前規(guī)模夠大的 LLM 模型,在訓(xùn)練基座模型的時(shí)候,都采用「Next Token Prediction,NTP」 (后文為了書(shū)寫(xiě)簡(jiǎn)潔,有時(shí)會(huì)簡(jiǎn)稱(chēng)為 NTP) 任務(wù)。Next Token Prediction 如此簡(jiǎn)單的操作,就是通過(guò)語(yǔ)言中前面的單詞,來(lái)產(chǎn)生下一個(gè)單詞,很明顯這樣學(xué)到的不就是單詞之間的表層統(tǒng)計(jì)關(guān)系嗎?對(duì)于持正方觀點(diǎn)的人士來(lái)說(shuō),這個(gè)問(wèn)題其實(shí)并不好反駁,因?yàn)檎б豢瓷先ゴ_實(shí)如此,我相信絕大多數(shù)正方人士很難給出有理有據(jù)的另反方人士信服的解釋。
至于我本人,如果看過(guò)我年初寫(xiě)的《張俊林:通向 AGI 之路:大型語(yǔ)言模型(LLM)技術(shù)精要》,很容易看出持正方立場(chǎng)。其實(shí)當(dāng)時(shí)在那篇文章的最初版本里,有一節(jié)內(nèi)容,主題就是討論 NTP 為何會(huì)產(chǎn)生智能。按照 23 年 1 月份版本的我當(dāng)時(shí)對(duì) LLM 的理解,把 NTP 產(chǎn)生智能歸納為「通過(guò) NTP 任務(wù),LLM 在模型參數(shù)里學(xué)到了一個(gè)****的知識(shí)圖譜,當(dāng)輸入 Prompt 的時(shí)候,Prompt 包含的概念啟動(dòng)知識(shí)圖譜相關(guān)節(jié)點(diǎn),然后在知識(shí)圖譜上按照 < 激活 - 擴(kuò)散 > 理論引發(fā)知識(shí)間的激活擴(kuò)散和信息傳遞,由此導(dǎo)致 LLM 產(chǎn)生了智能」。當(dāng)時(shí)版本的我是這么理解這個(gè)問(wèn)題的答案的,現(xiàn)在版本的我再去審視這個(gè)看法,雖然不能說(shuō)是錯(cuò)的,但是很明顯這種認(rèn)知還是淺了些或粗略了些。當(dāng)時(shí),由于那篇文章已有內(nèi)容已經(jīng)太長(zhǎng),再加上支持上述看法的依據(jù)不太充足,所以我在發(fā)文的時(shí)候把那節(jié)內(nèi)容刪掉了。
本文專(zhuān)門(mén)探討這個(gè)主題,我試圖梳理歸納目前已有的一些片段性的證據(jù),對(duì)上述問(wèn)題給出一個(gè)相對(duì)有依據(jù)的回答。其實(shí)目前正方并沒(méi)有專(zhuān)門(mén)的研究來(lái)解釋這個(gè)問(wèn)題,但是,如果把各種已知用于研究其它問(wèn)題的研究結(jié)論片段聯(lián)系到一起來(lái)看,即我們可以把尋找這個(gè)問(wèn)題的答案當(dāng)作一個(gè)拼圖游戲,在已知研究的拼圖碎片基礎(chǔ)上,如再加一些合理的推論和假設(shè),我認(rèn)為正方大致是能給出一些起碼看似合理的解釋的。本文在結(jié)構(gòu)上首先會(huì)比較細(xì)致地介紹下 OpenAI 對(duì)這個(gè)問(wèn)題的看法,這個(gè)對(duì)大多數(shù)人來(lái)說(shuō)應(yīng)該是個(gè)很新穎的角度,之后會(huì)收集匯總現(xiàn)有的研究結(jié)論,之后會(huì)給出我認(rèn)為還算合理的解釋。
天平的兩端:壓縮即智能
假設(shè)有一個(gè)想象中的天平,天平的左端用來(lái)稱(chēng)量大語(yǔ)言模型的數(shù)據(jù)壓縮能力,天平的右端用來(lái)稱(chēng)量大語(yǔ)言模型的智能水準(zhǔn)。問(wèn)題是:這個(gè)天平的稱(chēng)量結(jié)果是可信的嗎?換句話說(shuō),如果大語(yǔ)言模型具備越強(qiáng)的數(shù)據(jù)壓縮能力,是否意味著它具備越強(qiáng)的 AGI 智能呢?
OpenAI 肯定是相信兩者間存在等價(jià)性的,目前看,這可能是推動(dòng) OpenAI 大模型發(fā)展方向的一個(gè)核心理念。OpenAI 首席科學(xué)家 Ilya Sutskever 在今年早期的一些公開(kāi)訪談初步透漏了這個(gè)思路。而后續(xù) OpenAI 負(fù)責(zé)大模型團(tuán)隊(duì)的 Jack Rae 在 Stanford MLSys 研討會(huì)上做了以「Compression for AGI」 為主題的報(bào)告,則是從理論層面,概念性地論證了這一理念。
本部分主要參照 Jack Rae 報(bào)告內(nèi)容,轉(zhuǎn)述 OpenAI 堅(jiān)信的 “壓縮即智能” 論證過(guò)程。我們先從一個(gè)數(shù)據(jù)壓縮傳輸?shù)募傧雽?shí)驗(yàn)講起。
利用 LLM 進(jìn)行數(shù)據(jù)壓縮
圖片



我們假設(shè)小帥和小美分別住在地球和火星,現(xiàn)在小帥獲得一批機(jī)密數(shù)據(jù) 圖片,需要以最小傳輸成本傳送給遠(yuǎn)在火星的小美,小帥計(jì)劃通過(guò) LLM 模型比如 GPT 來(lái)對(duì)數(shù)據(jù)進(jìn)行壓縮,然后把壓縮后的數(shù)據(jù)傳給小美,以此來(lái)減少傳輸數(shù)據(jù)數(shù)量。同時(shí),他希望信息壓縮是無(wú)損的,也就是說(shuō),小美要能夠根據(jù)拿到的壓縮數(shù)據(jù),利用一定方法完整恢復(fù)原始數(shù)據(jù)圖片,不能有任何差異。這個(gè)事情看似不太容易做到,怎么辦呢?
首先,小帥把 GPT 模型的代碼圖片,包括代碼本身、初始化方法以及隨機(jī)種子等信息傳給小美,小美根據(jù)小帥傳過(guò)來(lái)的 GPT 模型的信息,利用同樣的代碼、初始化方法以及隨機(jī)種子,復(fù)制并初始化了一份自己的 GPT,以此來(lái)讓自己手上的 GPT 模型和小帥手上的模型,在初始狀態(tài)保持一致。
接下來(lái),小帥以 Next Token Prediction 作為任務(wù),以 圖片作為訓(xùn)練數(shù)據(jù),啟動(dòng) GPT 模型的訓(xùn)練過(guò)程,訓(xùn)練過(guò)程本身其實(shí)就是數(shù)據(jù)壓縮過(guò)程。我們假設(shè)小帥已經(jīng)對(duì)數(shù)據(jù) 圖片通過(guò) GPT 進(jìn)行了壓縮,對(duì)應(yīng)的壓縮數(shù)據(jù)為圖片,并將這批壓縮數(shù)據(jù)陸續(xù)傳給了小美,現(xiàn)在準(zhǔn)備傳送數(shù)據(jù)圖片 。我們?cè)谶@里按下 “慢放” 鍵,仔細(xì)觀察下 GPT 是如何對(duì)數(shù)據(jù) 圖片進(jìn)行壓縮編碼和解碼的。
編碼階段:我們的目的是利用 GPT 壓縮  數(shù)據(jù),小帥以 圖片 作為 GPT 的輸入,利用當(dāng)前版本的 GPT 模型 圖片做一次 Next Token 預(yù)測(cè)。假設(shè) Token 詞典是圖片,則 GPT 模型經(jīng)過(guò) Next Token 預(yù)測(cè),產(chǎn)生了詞典 圖片中每一個(gè)單詞的生成概率,圖片 中有些單詞生成概率大,有些生成概率小,所有單詞的生成概率之和為 1,于是形成 圖片的概率分布 圖片。若設(shè)原始數(shù)據(jù) 圖片,此時(shí),可以利用某種數(shù)據(jù)壓縮算法,比如算術(shù)編碼(Algorithm Coding, AC ),根據(jù) 圖片 和 圖片 ,將 圖片 壓縮成數(shù)據(jù) 圖片(至于算術(shù)編碼如何運(yùn)作,稍后會(huì)說(shuō)明),即圖片,于是小帥可以把得到的壓縮編碼 圖片傳給小美。
另外,如果 GPT 根據(jù)上文 圖片 做 Next Token 預(yù)測(cè)得到概率最大的單詞不是標(biāo)準(zhǔn)答案 圖片 ,說(shuō)明模型訓(xùn)練得還不夠好,于是小帥讓 GPT 執(zhí)行一次反向傳播,來(lái)修正 GPT 模型參數(shù),希望以后 GPT 遇到類(lèi)似上文能夠更準(zhǔn)確地做出預(yù)測(cè)。經(jīng)過(guò)反向傳播,模型參數(shù)發(fā)生變化,GPT 模型從 圖片修正到了圖片版本。
可以看出,上述過(guò)程,其實(shí)就是針對(duì)某個(gè) Token 做的一次標(biāo)準(zhǔn)的 GPT 訓(xùn)練步驟,只不過(guò)我們平常訓(xùn)練 GPT 的時(shí)候,不會(huì)根據(jù) Next Token Prediction 得到的分布概率 圖片 以及算術(shù)編碼來(lái)獲得 圖片 的壓縮編碼 圖片 ,并記錄下來(lái)而已。如果你愿意,完全可以在訓(xùn)練過(guò)程中一步步產(chǎn)生每個(gè)圖片 對(duì)應(yīng)的 圖片 ,并把它們記錄下來(lái),這樣就會(huì)獲得數(shù)據(jù) 圖片 的一份無(wú)損壓縮編碼版本。
解碼階段:接收到小帥傳來(lái)的壓縮編碼 圖片后,小美希望利用自己手上的 GPT 模型來(lái)恢復(fù)原始數(shù)據(jù) 圖片 。她也可以用算術(shù)編碼來(lái)逆向?qū)?nbsp;圖片 進(jìn)行解碼,但是,若想解碼 圖片 信息不足,除了 圖片外,還需知道 圖片 對(duì)應(yīng)的詞典 圖片 中單詞的概率分布 圖片 ,但是小帥并沒(méi)有把 圖片 傳過(guò)來(lái),因?yàn)檫@個(gè)信息量太大,傳過(guò)來(lái)很不合算,如何是好?
小美可以用自己手上的 GPT 來(lái)產(chǎn)生缺失的詞典單詞概率分布 圖片 ,她把之前已經(jīng)解碼出的 圖片 作為模型的輸入,讓自己手上的 圖片 版本 GPT 模型做一次 Next Token 預(yù)測(cè),于是 GPT 模型產(chǎn)生了單詞概率分布 圖片 ,這個(gè)與小帥的概率分布 圖片 是一樣的。得到 圖片 后,小美可以利用算術(shù)編碼對(duì) 圖片解碼,即 圖片,這樣就恢復(fù)出原始數(shù)據(jù) 圖片 。類(lèi)似的,如果小美手上的 GPT 此次 Next Token 預(yù)測(cè)最大概率單詞不是 圖片 ,她也讓 GPT 執(zhí)行一次反向傳播,修正模型參數(shù),將 GPT 模型從 圖片版本修正到 圖片 版本。只有這樣,小美才能保證自己手上的 GPT 模型和小帥在傳輸過(guò)程中始終保持一致。
可以看出,解碼過(guò)程,其實(shí)就是小美也同步進(jìn)行 GPT 的一次訓(xùn)練步驟,并利用 Next Token Prediction 得到的詞典單詞概率分布 圖片 ,來(lái)幫助從壓縮數(shù)據(jù) 圖片 解碼到原始數(shù)據(jù) 圖片 。
如此這般,小帥和小美就通過(guò)兩人同步進(jìn)行 GPT 在 圖片 上的模型訓(xùn)練過(guò)程,完成了對(duì)數(shù)據(jù) 圖片 的壓縮和解壓,只要不斷重復(fù)上述過(guò)程,小帥就能把 圖片 中所有數(shù)據(jù)無(wú)損地傳送給小美,實(shí)現(xiàn)了通過(guò) LLM 對(duì)數(shù)據(jù)的無(wú)損壓縮和解壓。所以我們可以說(shuō),GPT 模型的訓(xùn)練過(guò)程,其實(shí)就是對(duì)訓(xùn)練數(shù)據(jù)的無(wú)損壓縮過(guò)程,只不過(guò)我們平常訓(xùn)練的時(shí)候跳過(guò)了這個(gè)步驟而已。
算術(shù)編碼機(jī)制
圖片
上文未講解算術(shù)編碼的運(yùn)行機(jī)制,此處以簡(jiǎn)單例子做簡(jiǎn)要說(shuō)明。如上圖所示,假設(shè)單詞詞典 圖片 包含 4 個(gè)單詞,我們要壓縮編碼的原始數(shù)據(jù) 圖片 ,此時(shí) GPT 運(yùn)行 Next Token Prediction 后,詞典圖片  中單詞對(duì)應(yīng)的概率分布 圖片 在上圖圖左列出,也就是說(shuō),此刻的 GPT 預(yù)測(cè)的 Next Token,生成概率最大的單詞是「too」,而不是 Ground Truth 「MaskNet」。
此時(shí),已知 圖片 和它對(duì)應(yīng)的 圖片 ,我們使用算術(shù)編碼來(lái)對(duì)數(shù)據(jù)進(jìn)行壓縮。首先,我們可以根據(jù)詞典中各個(gè)單詞的生成概率,把 0 到 1 的區(qū)間按照每個(gè)單詞的概率分值進(jìn)行切割,單詞生成概率數(shù)值越大,占據(jù)區(qū)間越長(zhǎng)。于是,就可以得到每個(gè)單詞覆蓋區(qū)間的下界和上界,比如對(duì)于要編碼的單詞「MaskNet」,它的下界是 0.4,因?yàn)樽陨砩筛怕蕿?0.2,所以上界是 0.6。為了使得二進(jìn)制編碼后的長(zhǎng)度盡可能短,算術(shù)編碼在 「MaskNet」“” 單詞覆蓋的 0.4 到 0.6 區(qū)間尋找對(duì)應(yīng)二進(jìn)制最短的十進(jìn)制小數(shù),很明顯在這個(gè)區(qū)間里,十進(jìn)制數(shù)字 0.5 是二進(jìn)制最短的數(shù)字,于是選擇 0.5 作為編碼數(shù)字,進(jìn)行數(shù)制轉(zhuǎn)換后得到二進(jìn)制 0.1,這個(gè)數(shù)字就是單詞 “MaskNet” 對(duì)應(yīng)的二進(jìn)制算術(shù)編碼,小帥只需要把小數(shù)點(diǎn)后的二進(jìn)制數(shù)字 1 發(fā)送給小美即可。
接著,介紹小美接收到二進(jìn)制數(shù)字 1 之后的解碼過(guò)程。如上文所述,小美利用自己的 GPT,也會(huì)得到一個(gè)相同的單詞分布概率 圖片 ,按照算術(shù)編碼原則,用這個(gè)分布概率切割 0 到 1 的數(shù)值區(qū)間,會(huì)得到和小帥一樣的一個(gè)切割圖。小美將二進(jìn)制 0.1 進(jìn)行進(jìn)制轉(zhuǎn)換,得到十進(jìn)制數(shù)字 0.5,然后查看 0.5 落在切割圖哪個(gè)單詞的上下界范圍內(nèi),會(huì)定位到單詞 “MaskNet”,于是解碼出 0.1 代表的對(duì)應(yīng)單詞 圖片 。
算術(shù)編碼的思想是很精妙的,它對(duì)輸入序列動(dòng)態(tài)編碼,能夠以小數(shù)來(lái)對(duì)整個(gè)輸入進(jìn)行二進(jìn)制編碼,編碼效率接近于香農(nóng)提出的熵極限。不過(guò),在我們描述的場(chǎng)景下,因?yàn)槊總€(gè)  對(duì)應(yīng)的  在 GPT 訓(xùn)練過(guò)程中總是發(fā)生變化,所以某個(gè)分布 圖片 只需要壓縮或者解碼一個(gè) Token,其思路看起來(lái)就很簡(jiǎn)單,當(dāng)面向較長(zhǎng)的輸入序列進(jìn)行算術(shù)編碼,其方法可以參考:什么是算術(shù)編碼 。



*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉