世界的參數倒影:為何GPT通過Next Token Prediction可以產生智能(1)
來源:機器之心
GPT是鸚鵡學舌,還是真的具有類人智能?帶你一探究竟。
「兩位說英語的荒島幸存者被困在相鄰島嶼上,中間隔著危險水域。幸運的是,他們發現了前任居民留下的電報機,電報機通過一條水下電纜連接起來,他們能夠通過電報傳遞信息。但是,他們不知道的是:附近水域里,生活著一個具備超級智能的章魚,它劫持了水下電纜并****了他們之間傳送的消息。盡管章魚不懂英語,但其超級智能使其能夠檢測到電報信息文字的統計模式,并能準確表示各種電報信號間的統計關系。在章魚覺得自己已經學好這些統計規律之后,它切斷水下電纜,將自己兩個長觸手定位在電纜的兩個末端,基于它所識別出來的統計模式,接收并自己來回復兩名漂流者的電報信號。無論兩位幸存者是否注意到交流對象已發生變化,章魚發送出去的信息,在本質上似乎沒有任何含義。畢竟,章魚只是遵循它從人類之間的前期交流中學到的統計模式,而并沒有看到過任何人類對信號的解釋,比如 “椰子” 或 “海水” 所代表的真實含義。此外,章魚甚至可能都不明白這些信號是具有意義的,或起到了促進交流的功能。」 —— 「章魚測試(The Octopus Test)」- Bender & Koller
如果我們把「章魚測試」里的章魚換成 ChatGPT 或 GPT 4,您會怎么看這個問題呢?也就是說,下述兩種觀點,您支持哪一種呢?一種觀點與 “章魚測試” 看法類似,認為 GPT 4 這種 LLM 模型僅僅學會了語言中的單詞共現等淺層的表面統計關系,其實并未具備智能,只是類似鸚鵡學舌的語言片段縫合怪而已;另外一種觀點則認為:GPT 4 不僅學會了語言元素間的表面統計關系,而且學到了人類語言甚至包括物理世界的內在運行規律,文字是由內在智能產生的,所以 LLM 具備類人智能。
這兩種觀點針鋒相對,我不確定您屬于哪一派。目前無論是學術界,還是社會層面,其實持有兩方觀點的人數都不少,相互之間爭論很激烈。比如不認為大語言模型具備智能的反方知名代表人物,AI 圈子里的大佬代表是 LeCun,語言學界代表人物是喬姆斯基,都否認通過 Next Token Prediction 這種方式訓練出來的大語言模型能夠具備智能;而正方代表人物也很多,OpenAI 不說了,毫無疑問是最具影響力的正方代表,從目前的公開言論看,Hinton 老爺子很明顯也持正方觀點,而且特別正方,不僅認為 GPT 4 具備類人智能,而且覺得將來人類這種碳基智能很可能是 LLM 這種硅基智能的引導啟動程序 (Booster),在這點上 Hinton 和馬斯克(這是簡稱,全名為:埃隆?電動車之王?火箭先驅?Twitter 再造者?環保先鋒?火星殖民者?OpenAI 唾棄者?馬斯克)的看法是類似的。
目前規模夠大的 LLM 模型,在訓練基座模型的時候,都采用「Next Token Prediction,NTP」 (后文為了書寫簡潔,有時會簡稱為 NTP) 任務。Next Token Prediction 如此簡單的操作,就是通過語言中前面的單詞,來產生下一個單詞,很明顯這樣學到的不就是單詞之間的表層統計關系嗎?對于持正方觀點的人士來說,這個問題其實并不好反駁,因為乍一看上去確實如此,我相信絕大多數正方人士很難給出有理有據的另反方人士信服的解釋。
至于我本人,如果看過我年初寫的《張俊林:通向 AGI 之路:大型語言模型(LLM)技術精要》,很容易看出持正方立場。其實當時在那篇文章的最初版本里,有一節內容,主題就是討論 NTP 為何會產生智能。按照 23 年 1 月份版本的我當時對 LLM 的理解,把 NTP 產生智能歸納為「通過 NTP 任務,LLM 在模型參數里學到了一個****的知識圖譜,當輸入 Prompt 的時候,Prompt 包含的概念啟動知識圖譜相關節點,然后在知識圖譜上按照 < 激活 - 擴散 > 理論引發知識間的激活擴散和信息傳遞,由此導致 LLM 產生了智能」。當時版本的我是這么理解這個問題的答案的,現在版本的我再去審視這個看法,雖然不能說是錯的,但是很明顯這種認知還是淺了些或粗略了些。當時,由于那篇文章已有內容已經太長,再加上支持上述看法的依據不太充足,所以我在發文的時候把那節內容刪掉了。
本文專門探討這個主題,我試圖梳理歸納目前已有的一些片段性的證據,對上述問題給出一個相對有依據的回答。其實目前正方并沒有專門的研究來解釋這個問題,但是,如果把各種已知用于研究其它問題的研究結論片段聯系到一起來看,即我們可以把尋找這個問題的答案當作一個拼圖游戲,在已知研究的拼圖碎片基礎上,如再加一些合理的推論和假設,我認為正方大致是能給出一些起碼看似合理的解釋的。本文在結構上首先會比較細致地介紹下 OpenAI 對這個問題的看法,這個對大多數人來說應該是個很新穎的角度,之后會收集匯總現有的研究結論,之后會給出我認為還算合理的解釋。
天平的兩端:壓縮即智能
假設有一個想象中的天平,天平的左端用來稱量大語言模型的數據壓縮能力,天平的右端用來稱量大語言模型的智能水準。問題是:這個天平的稱量結果是可信的嗎?換句話說,如果大語言模型具備越強的數據壓縮能力,是否意味著它具備越強的 AGI 智能呢?
OpenAI 肯定是相信兩者間存在等價性的,目前看,這可能是推動 OpenAI 大模型發展方向的一個核心理念。OpenAI 首席科學家 Ilya Sutskever 在今年早期的一些公開訪談初步透漏了這個思路。而后續 OpenAI 負責大模型團隊的 Jack Rae 在 Stanford MLSys 研討會上做了以「Compression for AGI」 為主題的報告,則是從理論層面,概念性地論證了這一理念。
本部分主要參照 Jack Rae 報告內容,轉述 OpenAI 堅信的 “壓縮即智能” 論證過程。我們先從一個數據壓縮傳輸的假想實驗講起。
利用 LLM 進行數據壓縮
我們假設小帥和小美分別住在地球和火星,現在小帥獲得一批機密數據 ,需要以最小傳輸成本傳送給遠在火星的小美,小帥計劃通過 LLM 模型比如 GPT 來對數據進行壓縮,然后把壓縮后的數據傳給小美,以此來減少傳輸數據數量。同時,他希望信息壓縮是無損的,也就是說,小美要能夠根據拿到的壓縮數據,利用一定方法完整恢復原始數據
,不能有任何差異。這個事情看似不太容易做到,怎么辦呢?
首先,小帥把 GPT 模型的代碼,包括代碼本身、初始化方法以及隨機種子等信息傳給小美,小美根據小帥傳過來的 GPT 模型的信息,利用同樣的代碼、初始化方法以及隨機種子,復制并初始化了一份自己的 GPT,以此來讓自己手上的 GPT 模型和小帥手上的模型,在初始狀態保持一致。
接下來,小帥以 Next Token Prediction 作為任務,以 作為訓練數據,啟動 GPT 模型的訓練過程,訓練過程本身其實就是數據壓縮過程。我們假設小帥已經對數據
通過 GPT 進行了壓縮,對應的壓縮數據為
,并將這批壓縮數據陸續傳給了小美,現在準備傳送數據
。我們在這里按下 “慢放” 鍵,仔細觀察下 GPT 是如何對數據
進行壓縮編碼和解碼的。
編碼階段:我們的目的是利用 GPT 壓縮 數據,小帥以 作為 GPT 的輸入,利用當前版本的 GPT 模型
做一次 Next Token 預測。假設 Token 詞典是
,則 GPT 模型經過 Next Token 預測,產生了詞典
中每一個單詞的生成概率,
中有些單詞生成概率大,有些生成概率小,所有單詞的生成概率之和為 1,于是形成
的概率分布
。若設原始數據
,此時,可以利用某種數據壓縮算法,比如算術編碼(Algorithm Coding, AC ),根據
和
,將
壓縮成數據
(至于算術編碼如何運作,稍后會說明),即
,于是小帥可以把得到的壓縮編碼
傳給小美。
另外,如果 GPT 根據上文 做 Next Token 預測得到概率最大的單詞不是標準答案
,說明模型訓練得還不夠好,于是小帥讓 GPT 執行一次反向傳播,來修正 GPT 模型參數,希望以后 GPT 遇到類似上文能夠更準確地做出預測。經過反向傳播,模型參數發生變化,GPT 模型從
修正到了
版本。
可以看出,上述過程,其實就是針對某個 Token 做的一次標準的 GPT 訓練步驟,只不過我們平常訓練 GPT 的時候,不會根據 Next Token Prediction 得到的分布概率 以及算術編碼來獲得
的壓縮編碼
,并記錄下來而已。如果你愿意,完全可以在訓練過程中一步步產生每個
對應的
,并把它們記錄下來,這樣就會獲得數據
的一份無損壓縮編碼版本。
解碼階段:接收到小帥傳來的壓縮編碼 后,小美希望利用自己手上的 GPT 模型來恢復原始數據
。她也可以用算術編碼來逆向對
進行解碼,但是,若想解碼
信息不足,除了
外,還需知道
對應的詞典
中單詞的概率分布
,但是小帥并沒有把
傳過來,因為這個信息量太大,傳過來很不合算,如何是好?
小美可以用自己手上的 GPT 來產生缺失的詞典單詞概率分布 ,她把之前已經解碼出的
作為模型的輸入,讓自己手上的
版本 GPT 模型做一次 Next Token 預測,于是 GPT 模型產生了單詞概率分布
,這個與小帥的概率分布
是一樣的。得到
后,小美可以利用算術編碼對
解碼,即
,這樣就恢復出原始數據
。類似的,如果小美手上的 GPT 此次 Next Token 預測最大概率單詞不是
,她也讓 GPT 執行一次反向傳播,修正模型參數,將 GPT 模型從
版本修正到
版本。只有這樣,小美才能保證自己手上的 GPT 模型和小帥在傳輸過程中始終保持一致。
可以看出,解碼過程,其實就是小美也同步進行 GPT 的一次訓練步驟,并利用 Next Token Prediction 得到的詞典單詞概率分布 ,來幫助從壓縮數據
解碼到原始數據
。
如此這般,小帥和小美就通過兩人同步進行 GPT 在 上的模型訓練過程,完成了對數據
的壓縮和解壓,只要不斷重復上述過程,小帥就能把
中所有數據無損地傳送給小美,實現了通過 LLM 對數據的無損壓縮和解壓。所以我們可以說,GPT 模型的訓練過程,其實就是對訓練數據的無損壓縮過程,只不過我們平常訓練的時候跳過了這個步驟而已。
算術編碼機制
上文未講解算術編碼的運行機制,此處以簡單例子做簡要說明。如上圖所示,假設單詞詞典 包含 4 個單詞,我們要壓縮編碼的原始數據
,此時 GPT 運行 Next Token Prediction 后,詞典
中單詞對應的概率分布
在上圖圖左列出,也就是說,此刻的 GPT 預測的 Next Token,生成概率最大的單詞是「too」,而不是 Ground Truth 「MaskNet」。
此時,已知 和它對應的
,我們使用算術編碼來對數據進行壓縮。首先,我們可以根據詞典中各個單詞的生成概率,把 0 到 1 的區間按照每個單詞的概率分值進行切割,單詞生成概率數值越大,占據區間越長。于是,就可以得到每個單詞覆蓋區間的下界和上界,比如對于要編碼的單詞「MaskNet」,它的下界是 0.4,因為自身生成概率為 0.2,所以上界是 0.6。為了使得二進制編碼后的長度盡可能短,算術編碼在 「MaskNet」“” 單詞覆蓋的 0.4 到 0.6 區間尋找對應二進制最短的十進制小數,很明顯在這個區間里,十進制數字 0.5 是二進制最短的數字,于是選擇 0.5 作為編碼數字,進行數制轉換后得到二進制 0.1,這個數字就是單詞 “MaskNet” 對應的二進制算術編碼,小帥只需要把小數點后的二進制數字 1 發送給小美即可。
接著,介紹小美接收到二進制數字 1 之后的解碼過程。如上文所述,小美利用自己的 GPT,也會得到一個相同的單詞分布概率 ,按照算術編碼原則,用這個分布概率切割 0 到 1 的數值區間,會得到和小帥一樣的一個切割圖。小美將二進制 0.1 進行進制轉換,得到十進制數字 0.5,然后查看 0.5 落在切割圖哪個單詞的上下界范圍內,會定位到單詞 “MaskNet”,于是解碼出 0.1 代表的對應單詞
。
算術編碼的思想是很精妙的,它對輸入序列動態編碼,能夠以小數來對整個輸入進行二進制編碼,編碼效率接近于香農提出的熵極限。不過,在我們描述的場景下,因為每個 對應的 在 GPT 訓練過程中總是發生變化,所以某個分布 只需要壓縮或者解碼一個 Token,其思路看起來就很簡單,當面向較長的輸入序列進行算術編碼,其方法可以參考:什么是算術編碼 。
*博客內容為網友個人發布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。







