世界的參數(shù)倒影:為何GPT通過Next Token Prediction可以產(chǎn)生智能(3)
大部分知識回路應由 Attention 和 MLP 共同組成,但是也發(fā)現(xiàn)一些以 Attention 為主的知識回路。典型的例子就是「Induction Head」 回路,多項研究證明這個回路的存在。它的主要作用在于當 GPT 預測 Next Token 的時候,傾向于從上文找到類似的輸出模式,并拷貝到后續(xù) Token 輸出。如上圖所示句子,第二個「so」 是 last token,GPT 此時通過 NTP 將要產(chǎn)生后續(xù) Token,「Induction Head」 回路傾向于從上文中找到相同的 「so」單詞,并把上文中跟在「so」后面的單詞 「bad」 當作 Next Token 輸出。「Localizing Model Behavior with Path Patching」 這項研究探測了 Induction Head 的內(nèi)在工作機制:當根據(jù)第二個單詞 「so」 要預測 Next Token 的時候,「so」 本身的內(nèi)容被拷貝到 Transformer 自己對應 Attention 的 < Query,Key,Value > 中的 Query,而上文內(nèi)容中出現(xiàn)的 “bad” 單詞,通過 PTH (Previous Token Head to key) 這個 Attention Head 將 “bad” 之前內(nèi)容的語義集成到 “bad” 對應的 Key 里。結果在「so」做 Attention 的時候,兩者就得到很高相似性,于是通過 Attention 把「bad」 拷貝到單詞 so 的位置,這導致 Next Token 很容易輸出 “bad”,就達成了從上文拷貝「so…bad」 的目的。
除了 「Induction Head」 外,還有一些功能更復雜的 Attention 回路,比如「Interpretability in the Wild: a Circuit for Indirect Object Identification in GPT-2 small」這個工作發(fā)現(xiàn)了 Transformer 中存在以 Attention 為主,用于識別 「Indirect Object Identification」的知識回路。所謂「Indirect Object Identification」 ,可以參考上圖給出的例子,就是說輸入有兩個實體,一個重復實體,一個非重復實體,如何從中找到正確答案。從上圖例子可看出 GPT 是可以輸出正確答案 Mary 的,其原因就是模型學會了一個主要由 Attention Head 構成的復雜識別回路。
如上圖所示,「Indirect Object Identification」知識回路識別正確答案,主要由三個步驟構成:首先,Duplicate Token Heads 用于標識多次出現(xiàn)在句子中的 Token,而 Induction Heads 起到類似的作用;其次,S-Inhibition Heads 在輸出 Next Token 的位置發(fā)生作用,用于從 Name Mover Heads 的注意力中刪除或者抑制重復出現(xiàn)的名字;最后,Name Mover Heads 則輸出剩余的名稱 Token。由上可看出,LLM 模型在預訓練過程中,為了更好地進行 Next Token 預測,學習到了非常復雜的 Attention 知識回路,來執(zhí)行對某些輸入 Token 拷貝并在 Next Token Prediction 結果中輸出。
OpenAI 首席科學家 Ilya Sutskever 在訪談中曾說:「我們訓練 LSTM 來預測亞馬遜評論的下一個字符 (NTP) 時發(fā)現(xiàn),如果你預測下一個字符足夠好,LSTM 就會有一個與情緒對應的神經(jīng)元。這就很好地展示了無監(jiān)督學習的效果,也驗證了下一個字符預測的想法。這個發(fā)現(xiàn)對我們的影響很大。」我理解這里說的在網(wǎng)絡中出現(xiàn)了與情緒對應的神經(jīng)元,大概是通過 NTP 訓練任務,在模型內(nèi)部形成了一個情感判斷的知識回路。這個發(fā)現(xiàn)(可參考:Learning to Generate Reviews and Discovering Sentiment),確實是后來推動 OpenAI 把 LSTM 換成更大規(guī)模的 Transformer,并在更多數(shù)據(jù)上采用 NTP 來進行預訓練的重要啟發(fā)因素。
目前在探索 GPT 模型中的知識回路方面工作還比較少,我個人認為這個事情特別重要,比如我猜大概率會存在能夠解釋 Chain of Thought(COT)現(xiàn)象的復雜邏輯回路,而這條回路的形成很可能是預訓練數(shù)據(jù)中引入程序代碼或理工科論文數(shù)據(jù)后形成的,因為這類數(shù)據(jù)間的邏輯關系比較密切,所以 GPT 在 NTP 任務中為了快速降低 Loss,精準預測之后的 Token,可能會逼迫模型在內(nèi)部產(chǎn)生大量抽象知識點概念,并在此基礎上形成復雜的邏輯回路。我感覺這方面工作很有價值,是值得進一步加強的。
不同規(guī)模 LLM 模型在學習知識點方面的差異
本節(jié)歸納不同大小規(guī)模 LLM 模型,在學習知識點方面差異的相關研究結論。
在文獻「Finding Neurons in a Haystack: Case Studies with Sparse Probing」中提到了一個有趣的現(xiàn)象:對于同一個「單語義神經(jīng)元」 編碼的抽象特征「是否法語」(用來判斷輸入內(nèi)容是否法語),如果我們把它屏蔽掉,可以看下對 GPT 的 Next Token Prediction 任務 Loss 的影響,如果屏蔽掉后 Loss 增加得越多,說明這個特征對模型來說越重要。有趣的是,屏蔽掉后,小模型 Loss 增加很多,但是對于大模型,則影響甚小。這說明這個特征對小模型很重要,但對大模型就沒有那么重要。
這個現(xiàn)象很奇怪,論文給了解釋:隨著模型規(guī)模增大,會出現(xiàn)特征分裂(Split)現(xiàn)象。就是說小模型表征某個知識點,只有一個粗粒度的神經(jīng)元獨立響應,但是大模型會對這個知識點進行細化,根據(jù)不同的 Context 輸入,分裂出表征不同上文下這個知識點對應的多個神經(jīng)元,對應神經(jīng)元只有在特定上文出現(xiàn)才會被激活。換句話說,同樣是表征某個知識點,相對小模型,大模型在表征知識點方面會做得更細致。
舉個例子,比如小模型只有一個神經(jīng)元對輸入中的 「return」 作出響應,但是大模型可能會分化出對不同編程語言的「return」作出響應。例如有一個對 python 語言的「return」響應的神經(jīng)元,也有一個對 C++ 語言的「return」作出響應的神經(jīng)元,諸如此類。所以,當小模型屏蔽掉某個特征,影響就很大,因為輸入中如果出現(xiàn)這個知識點完全無法捕獲,則對 loss 影響很大;但是對于大模型,屏蔽掉這個特征影響就不大,因為它還分裂出了對不同 Context 響應的神經(jīng)元,這個神經(jīng)元盡管沒用了,但是有其它神經(jīng)元來表征各種不同的情況。這個研究結論我認為是很重要的,它表明了大小模型在知識表征能力上的重大差異。
另外,還有研究結論表明:隨著模型規(guī)模越來越大,會探測到更多比例的 “單語義神經(jīng)元”。我覺得這說明了一個可能性,就是越大的 LLM 模型,會對更多的抽象知識進行獨立神經(jīng)元編碼。
另外一個文獻「The Quantization Model of Neural Scaling」,設想按照對 NTP 的 Loss 影響程度,我們可以對知識單元(文中稱為 “量子單元”)由重要到不重要進行排序,形成 Q 隊列。LLM 模型會優(yōu)先學習 Q 隊列中排在前面的量子單元,而對于大模型來說,則可以比小模型多學習 Q 隊列中重要性沒那么高的排在后面的量子單元。核心思想我歸納下,就是大模型可以比小模型學到更多不那么重要的特征。
以上幾點,是從目前文獻里能得到的,關于模型規(guī)模在表征能力方面差異的結論。
冰山之下:回路競爭猜想(Circuit Competition Conjecture, CCC)
如果我們把目前已知拼圖碎片所體現(xiàn)出的點滴證據(jù)拼合起來,我感覺隱藏在冰山之下的原理部分,就若隱若現(xiàn)展現(xiàn)在我們面前。本部分在已知研究結論基礎上作出一些推論,給出「回路競爭猜想(CC 猜想)」,作為 GPT 通過 Next Token Prediction 構建智能的內(nèi)在作用機制說明。我要求自己做到關鍵之處都能找到參考依據(jù),如果有推論給出推論過程,以使得這個猜想建立在現(xiàn)有研究結論之上,但總體來說是個未經(jīng)驗證的猜想,所以還請謹慎參考。
回路競爭:任務回路的突圍
首先,我們把已知研究結論匯總一下,形成一個整體印象。在本文里,我把某個特征或知識統(tǒng)一稱為知識點,因為單使用傳統(tǒng)的 “特征” 很難涵蓋某些內(nèi)容,具體知識點包括語言知識點(n-gram、詞法、句法、語義等)、context 知識點(比如 “輸入為法語” 這種)、世界知識相關知識點(實體 - 屬性、常識、事件等)以及簡單函數(shù)回路知識點這幾種,它們是細粒度的,我們將其統(tǒng)稱為知識點。
綜合上述內(nèi)容可看出,GPT 模型通過 NTP 任務從數(shù)據(jù)中學習知識,在模型內(nèi)部建立起兩類知識體系:層級化的知識結構以及各種任務回路(參考上圖),任務回路是在層級知識體系結構上建立起來的,是用于解決某個任務的、由知識點相互激發(fā)形成的固定通路。
假設已經(jīng)訓練好 GPT 模型,我們可以清晰地探測到它們的存在。首先,這些知識點有不同的抽象層級。越是存儲在 Transformer 底層的知識點,越具體、可復用程度越高、通用性越強、數(shù)量越多,越容易通過 superposition 及 Polysemantic 這種稠密編碼方式來進行編碼;而越是存儲在 Transformer 高層的知識點,越抽象、復用程度低、任務專業(yè)性越強,越傾向用 「單語義神經(jīng)元」 方式單獨編碼(上圖 Transformer 中白色節(jié)點代表具體知識點,紅色節(jié)點代表抽象知識點)。
其次,某些知識點之間形成了由底向上的激發(fā)關系,激發(fā)路徑是由下層不那么抽象的知識點逐層激發(fā)上層越來越抽象的知識點。比如某個編碼在 Transformer 第 L 層的知識點,它可由第 1 到第 L-1 層的其它被激發(fā)的知識點來激活。被激活的神經(jīng)元,除了收集、綜合、抽象傳上來的信息,可能也通過自己的 FFN 結構添加新知識(比如進行世界知識的提?。?,或做數(shù)學邏輯計算(比如比較數(shù)值大?。S柧毢玫?GPT 模型內(nèi)部包含海量這種「局部」知識點構成的「微激發(fā)結構」,這應該是形成 GPT 智能的基礎單元,從而整個 GPT 結構構造出對世界知識進行層級編碼的世界知識結構。而根據(jù) NTP 目標來訓練模型,其實就是在由簡單到復雜、由通用到專用、由具體到抽象、由下層到上層,在訓練過程中逐漸建立起越來越復雜層級知識結構的過程,包括知識點以及知識點之間的激發(fā)關系產(chǎn)生的微結構,之所以會產(chǎn)生這些,是因為它們的存在,對于 NTP 精準預測之后的 Token 有幫助,也就是對于 GPT 模型在 NTP 時降低訓練 loss 有用。
我們在此基礎上可以重新看待任務回路的形成。任務回路應該是 GPT 為了更精準預測某種特殊類型數(shù)據(jù)的 Next Token,從 Transformer 的輸入層開始,逐層關聯(lián)相關的 “激發(fā)微結構”,從而形成了一個由低向上逐層激發(fā),并最終關聯(lián)到輸出位置,以決定輸出 Token 概率的完整通路結構(可參考上圖紅線部分勾勒出的某個任務通路)。學會了這種任務回路,如果 GPT 后續(xù)再見到此類數(shù)據(jù),則 Next Token 預測精準性增加,體現(xiàn)為 NTP 任務 Loss 的降低。比如如果訓練數(shù)據(jù)里大量出現(xiàn) 「13+24=37」這種加減乘除的例子,大概率 GPT 會學會一個用于簡單數(shù)學計算的任務回路,以此增加等號后數(shù)字的 Next Token 預測精準性。
另外,輸入的最后一個 Token 位置對應的各層 Transformer Block,可能有些特殊含義和作用,它可能通過 Attention 機制,起到了對之前全體輸入內(nèi)容的信息匯總工作。如果輸入的 Prompt 是完成某項具體任務的,那么 Last Token 對應的各層 Transformer Block,大致把任務回路信息逐層匯總到了最后位置,以便于在 Last Token 的最高層進行正確的 Next Token 預測。相當于 Last Token 從 Transformer 龐大的知識體系中根據(jù)輸入 Prompt 勾勒出了一個 Prompt 子世界。
上述內(nèi)容宏觀上綜合了目前研究的結論,呈現(xiàn)出目前我們對 GPT 運行機制的了解程度。后面內(nèi)容開始加入我個人的一些推論。
首先的問題是:在訓練 GPT 的過程中,如此多的知識點,它學習這些知識點一定有個先后順序關系,那么,它會遵循怎樣的優(yōu)先順序來學習這些知識點呢?盡管目前有些研究結論是說重要的知識點先被學到,但是這里的重要性往往指的是對降低 GPT 模型 NTP 任務的 loss 角度來說的,降低 loss 越多,則這個知識點越重要。從降低 loss 角度講肯定是對的,但還是太抽象。
我個人認為,在訓練過程中,GPT 模型會優(yōu)先學習具備以下特性的知識點:高頻知識點、通用知識點(被復用概率高的則通用)、具體而非抽象的知識點。應該遵循這三個原則。為什么會這樣呢?因為根據(jù) Next Token Prediction 的原則,越是高頻出現(xiàn)的知識點,如果 GPT 本次預測錯了,則會做反向傳播修正模型參數(shù),以保證下次再見到類似情況會預測對,高頻知識點因為出現(xiàn)次數(shù)多,所以獲得反向傳播修正模型參數(shù)的次數(shù)多,也就更容易建立起對應的知識點,及其和其它知識點的連接通路。高頻知識點如果學會了,在后面的訓練數(shù)據(jù)會很容易碰到這個知識點,所以對降低 NTP 任務的 loss 貢獻就大。其它兩類知識點也是類似的道理,通用知識點因為通用性強,所以在后續(xù)預測中被使用的機會多,所以獲得反向傳播修正模型參數(shù)的次數(shù)也多,也容易被模型學會,具體而非抽象的知識點也因為在訓練數(shù)據(jù)中見到的次數(shù)多,所以容易被建立起來。諸如此類。反過來,低頻的、領域或任務專用的、抽象的知識點,就會越晚被 GPT 模型學會?;蛘哒f,如果想學會這類知識點,則需要讓模型見到更大量的數(shù)據(jù),以增加這些知識點在學習過程中必要的反向傳播修正參數(shù)的機會。
接下來,我們開始正式討論 “回路競爭” 猜想。在引出這個猜想前,我先做一個假設:
假設:為了提高 GPT 模型的參數(shù)利用率,NTP 任務會鼓勵子回路的復用。
所謂「子回路」,指的是完成簡單運算的回路,這種回路涉及到的知識點較少,知識點之間激發(fā)的結構比較簡單。GPT 模型大概會優(yōu)先產(chǎn)生很多完成簡單任務或計算的子回路,而復雜回路應該是由很多子回路進一步連接形成的。為了增加模型參數(shù)的使用效率,GPT 模型應該會鼓勵這些子回路在不同復雜回路中盡可能被復用,這樣使用同樣的參數(shù)量,就能完成更多不同類型的任務。比如上文講過的「Induction Head」 回路,就是一個典型的子回路,由上文我們可知,在更為復雜的「Indirect Object Identification」知識回路中,「Induction Head」回路是其中一個構成部分,子回路和復雜回路的關系大概類此例。
對于兩個解決不同任務的復雜回路,由于子回路復用的原因,兩者之間存在一些相同子回路,我們可以把這些相同的子回路稱為「重疊回路」 。很容易推斷,如果兩個任務越接近,則其對應的重疊回路就越多。而且重疊回路存在 Transformer 底層的情況應該比較多,因為底層回路涉及到的知識點更具體、數(shù)量更多、可復用性更強。上圖是對「子回路復用與重疊回路」 給出的示意圖,途中紅色線(紅色任務)和藍色線(藍色任務)代表兩個不同復雜任務回路,而在底層,則有一些子回路被兩者復用。
所謂 「回路競爭」 猜想,我們用上圖例子來說明。假設我們輸入一個 Prompt,這個 Prompt 本來是要完成紅色任務的,當輸入 Prompt 后,在信息從底層向上層逐層激發(fā)正確通路的時候,越是底層的知識點和子回路,復用性越強,所以容易產(chǎn)生 「過剩激發(fā)現(xiàn)象」,就是除了激發(fā)出我們希望的紅色任務外,也會激發(fā)很多導向其它任務回路的知識點和子回路。這種情況在底層較為明顯,隨著信息逐步往上傳遞,紅色回路會逐漸得到進一步的強化,非正確回路被激發(fā)的上層知識點和子回路越來越少,最終勾勒出了正確的紅色任務回路的路徑。這就是典型的「回路競爭」 猜想的思路。
如果從低向上激發(fā)過程中,我們希望的正確回路被激發(fā),可以認為回路競爭勝利,則模型輸出正確答案,而如果錯誤任務回路被激發(fā),可以認為回路競爭失敗,則模型輸出錯誤答案。可以推斷的是,越是復雜的任務,因為其牽涉到的知識點和子回路越多,相互之間的關系越復雜,所以越容易和更多其它相似任務回路產(chǎn)生重疊,也就越容易在回路競爭中失敗。
我們可以在「回路競爭」 框架下去思考很多 LLM 模型的問題和現(xiàn)象,并給出解釋,本文稍后內(nèi)容會用這個猜想解釋一些目前 LLM 模型未知的一些現(xiàn)象。
模型規(guī)模的差異:更大的模型,更清晰的世界
根據(jù)目前已有研究結論,如果思考大 LLM 模型和小 LLM 模型的差異,我們大致可做如下推斷:小 LLM 模型建立了一個粗粒度的、模糊的世界圖像,而隨著模型規(guī)模越來越大,大 LLM 模型建立起能表征更多細節(jié)信息的清晰度越來越高的世界圖像。
由上文所述可知,LLM 模型的表征能力主要體現(xiàn)在兩個方面:從具體到抽象的層級知識結構,以及可以解決很多問題的任務回路。我們從這兩方面分頭看下大小模型的差異。
層級知識結構的差異:很多研究結論證明了隨著模型規(guī)模增大,模型稀疏程度越來越高。Polysemantic 神經(jīng)元對特征編碼是稠密的,用于編碼大量相對具體的特征,而 Monosemantic 神經(jīng)元屬于單神經(jīng)元,表征是稀疏的,這說明隨著模型規(guī)模越來越大,單語義神經(jīng)元數(shù)量占比增加。單語義神經(jīng)元編碼重要的及抽象的知識,既然單語義神經(jīng)元數(shù)量增加了,說明模型學到的知識點肯定是增加了,新增知識點無非兩個來源可能:第一種來源是這個知識原先小模型沒有學到,現(xiàn)在大模型學會了,從無到有地學會了新知識。這類新知識應該可再細分為兩類:一類應該是世界知識(常識和事件),小模型無法編碼在數(shù)據(jù)中出現(xiàn)頻次比較低的世界知識,大模型通過單語義神經(jīng)元對此進行了編碼(大模型相比小模型能學到更多數(shù)據(jù)中的低頻知識,這一點有很多工作可驗證,且目前看世界知識應該是單神經(jīng)元編碼的),這類知識代表大模型學會了更多有關世界的細節(jié)信息;一類應是模型從數(shù)據(jù)中新歸納的更抽象的知識(比如 「質數(shù)」這種),這類知識代表大模型學會了越來越復雜的抽象知識或能力。
新增知識點的另外一種來源,應該是由前文講過的抽象特征進行特征分裂產(chǎn)生的。就是說原來小模型只有一個粗粒度的抽象知識點,現(xiàn)在模型大了,衍生出一些新的細粒度的表征這類知識的知識點,針對不同的上文 Context 可能會學到對應的一個知識點。舉個例子,目前發(fā)現(xiàn) LLM 中有針對連續(xù)大寫字符產(chǎn)生響應的單語義神經(jīng)元,比如輸入中有「ABCD」,這個神經(jīng)元就會被激活。小 LLM 模型可能只有唯一神經(jīng)元對此進行響應,如果把這個神經(jīng)元滅活,則 GPT 在做 NTP 預測下一個 Token 的時候 Loss 就會激增,說明缺了這個特征對于正確預測后續(xù)內(nèi)容中連續(xù)大寫字符都產(chǎn)生了錯誤;但是,大 LLM 模型除了這個神經(jīng)元,還分裂出細粒度表征神經(jīng)元,比如針對公司名字縮寫「IBM」這類可能有一個神經(jīng)元專門負責響應,針對醫(yī)藥名稱縮寫,比如「GS (葡萄糖注射液)」 ,有另外一個神經(jīng)元負責響應。諸如此類。這種大模型的抽象特征分裂,說明了一點:即使是抽象知識,大模型相比小模型也有更細致的抽象特征表達能力。
可以看出,大模型相對小模型,從對低頻世界知識的編碼角度,可以認為學到了關于世界更多的細節(jié)信息,而從新增抽象知識以及抽象特征分裂角度,說明大 LLM 模型具備更難的以及更細粒度的抽象知識表達能力。
任務回路的差異:任務回路是建立在形成層級結構的知識點之間由底向上激發(fā)并聯(lián)通的回路。由上面對大小模型在層級知識結構差異的分析,可以作出合理推斷:大 LLM 模型大概率能夠建立在路徑上涉及更多細粒度抽象知識點以及路徑更復雜的回路。這大概是大模型可以解決復雜問題的主要原因。
綜合兩者,我們可以認為小模型是對世界的粗粒度建模,而大模型是對世界的細粒度高清建模。而且 Scaling law 說明了:隨著增加更多的數(shù)據(jù)、更大的模型規(guī)模,LLM 模型可以對世界進行清晰度更高的刻畫。從這個角度看,說 LLM 模型參數(shù)是對世界的有損壓縮,其實并沒有什么大問題。
無盡的前沿:使用「回路競爭」 解釋未知現(xiàn)象
本部分我們在「回路競爭」框架下,給出目前 LLM 模型一些現(xiàn)象的解釋。
「回路競爭」視角下的模型涌現(xiàn)能力
模型涌現(xiàn)能力,指的是對于某些任務(大多數(shù)是 In Context Learning 或 COT 相關的任務),小模型幾乎完全沒有解決能力,只有當模型規(guī)模達到某個臨界點,才能很好地完成這個任務。盡管目前有研究(可參考 Are Emergent Abilities of Large Language Models a Mirage?)表明:模型所謂的 「涌現(xiàn)能力」,是度量標準選擇不合理造成的,其實并不存在涌現(xiàn),只是任務選擇的度量標準不夠精準而已。我個人認為,這個說法應該確實能夠解釋一部分目前體現(xiàn)出「涌現(xiàn)能力」的任務,但感覺這可能不是故事的全部,有些任務可能很難僅僅通過這個原因來解釋,所以對于大語言模型為何會出現(xiàn)涌現(xiàn)能力,還是應該做更進一步的研究。
如果在「回路競爭」框架下看這個問題,那么小模型之所以做不了某個任務,無非有兩種可能:一種可能是對小模型來說,這個任務對應的激發(fā)回路沒有建立起來,而大語言模型建立起來了;另一種可能是小模型這個任務對應的回路也建立起來了,但是在回路競爭中非常容易失敗,導致看似做不了這個任務。
我更傾向認為是第一種可能造成我們目前看到的模型「涌現(xiàn)能力」。前文有述,小模型大概建立了一個粗分辨率的模糊的世界鏡像,而大模型則建立起一個高分辨率清晰度更高的世界鏡像。小模型應該在建立某些任務的完整激發(fā)回路存在困難,這些困難可能體現(xiàn)在幾個方面:比如對形成回路很關鍵的某個或者某些,比較抽象的概念知識點,小模型因為抽象能力比較弱,沒有建立起這個知識點(類似本文開頭舉的「質數(shù)」 概念的例子);再比如,一般能體現(xiàn)涌現(xiàn)能力的任務都比較復雜,小模型在建立復雜通路方面能力不足。諸如此類。而當模型規(guī)模變大,則在抽象概念以及復雜回路構建方面能力得到增強,當建立起完整的解決任務的激活通路時,就看似突然能夠解決這個問題,體現(xiàn)出模型的涌現(xiàn)能力。不過,很可能對于這種復雜回路,在激活競爭方面能力也不足夠強,所以當再輔助以 Few shot 幾個任務相關例子,以此來促進任務對應的回路在通路競爭中勝出時,才能看到比較好的解決效果。
「回路競爭」視角下的 In Context Learning 及 Chain of Thought (COT)
從回路競爭的視角看 ICL,這里可能涉及到兩種回路:任務回路以及 Attention 回路,兩者競爭或合作,來決定 ICL 任務的表現(xiàn),COT 是一種特殊的 ICL,機制應類似。
我們先看下任務回路的作用,其實好理解。In Context Learning 會先給 LLM 模型幾個任務相關的例子 ,之后輸入 ,期待模型可以輸出 對應的正確結果 輸入中給出的 個例子的作用,在于激活了 LLM 模型對應的在預訓練階段學到的任務回路,然后再輸入 ,就容易沿著這條被激活的通路走,形成正確輸出 。COT 作用應該類似,也就是說,如果你不用 COT,可能 LLM 激活的是某個簡單結構的任務回路,而如果用了 COT 例子,則容易激活了有很多細節(jié)表征的復雜推理回路,導致之后的輸入也沿著這個子通路走,于是形成詳細推理步驟。由此可見,在 ICL 場景下,任務回路總是對 產(chǎn)生正確答案,起到積極作用。
再來看 Attention 回路,不過這里也是設想(In-context Learning and Induction Heads 這個工作的目的是通過 Induction Head 來解釋 ICL 現(xiàn)象,不過我覺得 Induction Head 機制過于簡單,可能需要再稍微強化下)。假設存在一個加強版本的 Induction Head 回路,比如我們可以稱之為 「Enhanced Induction Head,EIH」,它的運行機制很可能是這樣的(如上圖所示):EIH 回路會依據(jù)當前輸入 與 ICL 各個例子中的 的語義相似性,去拷貝對應的 , 與 相似性越高,越大概率拷貝對應的 。這個過程有點類似由 EIH 回路構成的 KNN 模型,只需根據(jù)輸入例子之間的相似性和對應標簽就可以投票得到正確答案,并不需要模型通過修改參數(shù)來學會 到 之間的映射函數(shù)。算是一種有條件的 Induction Head 拷貝操作,條件觸發(fā)因素是輸入的例子 之間的 Attention 相似性??梢钥闯?,影響 輸出哪個標簽,應該主要取決于 ICL 中這幾種類型的例子:和 越相似的例子影響越大;ICL 中出現(xiàn)次數(shù)越多的 影響越大;以及距離 越近的例子影響越大 (Position embedding 編碼的位置信息及 NLP 中大量存在的局部相關性大概會導致此結果)。
若真存在 EIH 回路,根據(jù)上述運行機制,我們可以推斷出在以下三種情況下,Attention 回路對正確預測結果 的影響:
情況一:如果 ICL 中 到 輸入例子對應的標簽 是 Ground Truth Label,很明顯,EIH 回路是正向積極影響作用,類似如上所述 KNN 機制依據(jù) 到 例子對應的 來做判斷;
情況二:如果 ICL 中例子的標簽不是 Ground Truth Label,而是在 label 空間內(nèi)隨機選擇賦予。很明顯,EIH 回路對于 得到正確答案應該起到負面作用,因為 會從前面 到 的例子中,尋找跟它比較像的內(nèi)容去拷貝對應標簽,但是這個標簽是隨機賦予的,所以大概率是錯的,導致這種情況 EIH 應該是負面效果。
情況三:如果 ICL 中例子的標簽是 label 空間之外的另外一套標簽,但是和 存在對應的映射關系。這種情況下,EIH 回路應該是正面影響作用,這跟第一種情況道理類似,KNN 機制可以學習這種映射關系,因此得到正確的 ,無非現(xiàn)在用的是 而不是 而已。當然,若你仍然是看 標簽下的表現(xiàn),那 ICL 肯定是負面作用。
如果聯(lián)合考慮 LLM 的內(nèi)在任務回路,以及 EIH 這種純 Attention 回路,兩者有時協(xié)同發(fā)力方向相同,有時則競爭發(fā)力方向相反。比如上述三種情形中,第一種情況兩者是協(xié)同作用,都起到促進正確答案的作用,第二和第三種情況則是競爭作用,任務回路對給出正確答案起到促進作用,EIH 回路則起到負向作用。
按照這種思路,大致可以解釋目前我們看到的,在 ICL 研究中出現(xiàn)的很多貌似不可解釋的各種現(xiàn)象。這里舉個例子,比如目前研究表明,假設 ICL 的標簽空間包含兩個標簽: 和 ,如果我們把 ICL 里例子的標簽反轉,就是原來標簽是 的換成 ,原來是 的換成 ,則 ICL 任務效果會變差 (可參考:Overthinking the Truth: Understanding how Language Models process False Demonstrations)。假設 對應的正確標簽是 ,從任務回路和 EIH 回路的角度來看,任務回路會傾向于給出 標簽,EIH 回路在這種情況下,其實對應上面說的情況三,標簽反轉是種特殊的另換標簽,因為 和 的對應關系仍然存在。所以此時,EIH 回路看似會學習 到 的映射關系,會傾向于給出 標簽。此時兩者一個正向,一個負向,起到競爭關系,所以會降低模型效果。
其它很多現(xiàn)象其實大都可以在這個框架里得到解釋,文章長度原因就不展開了,感興趣的同學可以在這個思考框架下自己推導一下。
「回路競爭」視角下的領域任務 Fine-Tuning
我們可以在「回路競爭」視角下,重新審視利用領域數(shù)據(jù)對通用模型進行 Fine-tuning 操作,可能帶來的影響。我們現(xiàn)在已知的事實是,利用領域數(shù)據(jù) Fine-tuning,會造成基礎模型的 「災難遺忘」問題。就是說,因為后續(xù) Fine-tuning 修正模型參數(shù),導致模型遺忘了之前學會的某些知識。而且我的判斷是:目前看,在基礎模型之上,任何形式的 Tuning 操作,都會造成基礎模型某些能力的損失,這也包括 ChatGPT 為了聽懂命令及遵循人類價值觀所做的 Instruct tuning,也應該一樣會損害基礎模型的某些能力,只是目前我們說不清損害的是哪些能力而已。這是目前技術條件下,需要對模型做 Tuning 所必須付出的代價。
但是為何對基礎模型進行 Fine-tuning 會造成能力損害呢?其內(nèi)在原理如何?我們可以在「回路競爭」視角下,分析 Fine-tuning 帶來的影響。我猜大致有兩種影響,這兩種影響也許是某種單獨起作用,也許兩者共同發(fā)生作用。第一種影響是:Fine-tuning 操作通過大量領域數(shù)據(jù),強化了大語言模型解決這個任務的響應回路。這對于模型底層知識點影響估計不大,因為底層更多的是通用性比較強的特征,這個任務也需要,它修正的應該更多是上層的抽象知識節(jié)點,以及底層知識點到上層抽象知識點建立激發(fā)連接的通路。另外一種可能的影響:很可能通過 Fine-tuning 操作,在模型內(nèi)部建立起了 Shortcut 捷徑,導致輸入信息后,信息傳輸直接走了捷徑,而繞過了很多本該要走的通路。比如文本分類任務,這種任務內(nèi)部邏輯應該很簡單,估計就是建立起底層具體領域詞匯知識點,到上層抽象類別概念知識點的激發(fā)通路,所以很可能直接從最底層的知識點,到高層的類別概念知識點,建立起了一個很短的 Shortcut 捷徑,其它的復雜回路都被這個捷徑給 pass 掉了,倒不一定是上層抽象知識點被改寫了,很可能是通過走捷徑被繞過去了。
不論是上述哪個原因,造成的后果是:對于新的輸入,盡管可能是要做其它任務的,就很容易激發(fā)這個被特殊強化過的回路。也就是說,這個被強化過的回路容易在不該競爭勝利的時候也容易競爭勝利,導致其它任務效果變差。
「回路競爭」視角下的 Instruct Tuning
Instruct Tuning 本質上是為了實現(xiàn)和人類行為對齊而做的一種特殊的 Fine-tuning。GPT 4 的技術報告也指出了:Instruct tuning 并不會增強基礎模型的知識和能力,相反可能存在某種能力損害作用。高質量的 Instruct Tuning 肯定是很重要的,但它只是讓大語言模型 「看著好像」效果更好了而已,這只是使用者主觀感受上的,而非模型基礎能力層面的更好。
那么,如果在「回路競爭」視角下,如何理解 Instruct Tuning 是在干什么事情呢?我覺得可以這么理解:Instruct Tuning 的作用,建立起了一個特殊的激活回路,就是說從輸入命令自身形成的激活回路,建立起和對應任務回路的連接。根據(jù) Instruct 訓練好模型后,當輸入命令時,有利于激活對應的任務回路,所以看似大語言模型就理解了命令的含義。這有點類似于巴浦洛夫生物實驗里的「條件反射作用」的運行機制,等于在用戶命令和對應任務通路建立起了一個條件反射通路。
利用「回路競爭」 猜想,除了可以用來對上述目前未知內(nèi)部運行機制的現(xiàn)象,給出看著還算合理的解釋外,也可以用來解釋一些其它現(xiàn)象。比如大模型經(jīng)常出現(xiàn)的「一本正經(jīng)的胡說八道」問題,可以認為是在回路競爭過程中,正確回路競爭失敗,或者正確回路和某個錯誤回路被激發(fā)的強度差不多,導致給出混合兩者的結果,就是看著合理但事實錯誤的答案。諸如此類吧。
世界的參數(shù)倒影:從現(xiàn)實世界到可能世界
物理世界自有支配其運行的 Hidden Rules,概念上我們可以理解存在一個簡潔的 Hidden world,由它產(chǎn)生了五彩繽紛的表象世界,若對世界諸現(xiàn)象歸類,大致可有自然現(xiàn)象、社會現(xiàn)象、心理現(xiàn)象幾大類。人是構成物理世界的一分子,通過觀察世界表象、試圖理解世界運行規(guī)律,以更好維持種群及個體在這個世界里生存。
從種群角度而言,千萬年進化過程中的優(yōu)勝劣汰即人類模型預訓練過程,其優(yōu)化目標為 「Next Person’s survival Prediction」,其 Loss 越小,種群中生存?zhèn)€體數(shù)量越多?;蚓幋a即模型參數(shù),基因編碼表征出的個體,適應環(huán)境者生存,不適應環(huán)境者淘汰。生存者之所以可生存,是因為基因編碼表征出的某些特征適配生存環(huán)境,于是這些匹配生存環(huán)境的基因編碼在種群中得以加強,人類預訓練模型完成一次模型參數(shù)更新。外部物理世界生存環(huán)境的不斷變化驅動著種群基因編碼的變化,以此推動種群在變動環(huán)境下的生存。而我們生來即得到的基因編碼預訓練模型,則記錄了千萬年來學到的各種生存策略,形成了大腦中無意識快速反應的系統(tǒng) 1,它代表了種群的集體記憶。
從個體角度而言,除了通過基因編碼預訓練模型獲得天生的生存策略外,為了維護個體自身在特定環(huán)境下的生存,在整個生命歷程中會進行「繼續(xù)預訓練 (Continual Pre-training)」。其優(yōu)化目標為 「Next Action Prediction」,追求在環(huán)境中輸出正確行為以維持生存。采取類似 LoRA 的模型參數(shù)更新策略:對于個體而言,天生的基因編碼是無力改動的基礎模型,決定了我們的很多行為模式,但大腦中有一部分可修正區(qū)域,可以通過修正這部分區(qū)域里神經(jīng)元之間的聯(lián)系方式,來學會新的知識和技能。如果輸出行為對繼續(xù)生存造成負面影響,則調(diào)整模型參數(shù)以將來更好應對生存環(huán)境,這部分腦區(qū)功能形成了有意識慢決策的系統(tǒng) 2,它代表了個人的個性化生存經(jīng)驗?!柑焐蚓幋a + 個人生存微調(diào)」塑造出了形形色色的不同個體行為,有共性有個性,共性來自于種群集體記憶,個性來自于獨有的生存經(jīng)驗。
語言最初作為人類個體間的溝通協(xié)作工具,有利于促進種群存續(xù)。隨著技術發(fā)展,逐步將之記錄在龜背、竹簡、紙張、電子信號形成文字。每個人都可看成獨立的「編碼 - ****」,個體對物理世界觀察與感受,并編碼在大腦中形成知識和思維,解碼輸出則形成文字,記錄的是個人視角對世界的感受和思考,有主觀感受也有客觀記錄。人群則形成分布式的 「編碼 - ****」,解碼輸出產(chǎn)生了大量包含各種世界運轉的客觀事實以及主觀沖突觀念的文字記錄。所以,文字只是表象,內(nèi)在記錄的是從人類角度形成的對物理世界的認知與對這個世界的主觀感受(物理知識、社會知識、事件記錄、個體感受、個體想象等各種類型),其背后隱藏著人類視角下的世界模型。而 GPT 通過 Next Token Prediction 任務試圖正確復現(xiàn)人類產(chǎn)生的文字,本質上是對隱藏在文字表象之后的世界模型進行解碼復原,并存儲在 GPT 的模型參數(shù)里,形成了物理世界的參數(shù)倒影。
如果我們進行更深入思考,有可能會發(fā)現(xiàn);GPT 從大量文字中,不僅僅學會了如何生成符合我們現(xiàn)實世界事實的內(nèi)容,可能還學會成為一個 「可能世界」 生成器。它從文字模擬我們的現(xiàn)實世界開始,并進而泛化抽象,盡管遵循我們這個世界的物理法則,但是它不僅可以產(chǎn)生符合我們感知到的世界中真實的知識與內(nèi)容,也可以產(chǎn)生其它符合物理法則及人類理解邏輯的可能世界。也許你不能因它產(chǎn)生的內(nèi)容不符合現(xiàn)實世界,就說它是錯的,只能說它有能力把符合邏輯的可能世界全部展示給你,必然有很多情況未必吻合現(xiàn)實,畢竟現(xiàn)有世界只是可能世界的一種已經(jīng)發(fā)生的現(xiàn)實選擇而已,而它有能力給你呈現(xiàn)各種合理的可能性。
世界盡頭與冷酷仙境:「數(shù)字缸中之腦」思想實驗
「一個瘋狂科學家進行了一項手術,他將一個人的大腦切下來并將其放入充滿營養(yǎng)液的容器中。營養(yǎng)液中的養(yǎng)分足以維持大腦的正常運作,而大腦的神經(jīng)末梢連接到電線上,電線的另一端則連接到一臺計算機。計算機模擬真實世界的參數(shù),并通過電線向大腦傳遞信息,讓大腦感到一切都完全正常,好像周圍認識的人、熟悉的事情還照常進行,沒有任何異樣。
有一天,營養(yǎng)液中的大腦突發(fā)奇想,想到了一個很有趣的思想實驗,在他/她的現(xiàn)實感知里,此刻正在上班的地鐵上或自己辦公工位前,耳邊傳來別人輕微的腳步聲,他/她掏出手機把想法寫在備忘錄里,內(nèi)容是這樣的:
「OpenAI 推出了一個新的 LLM 模型,叫 GPT 4,功能很強大,這很可能預示著 AGI 時代的到來,我身邊每個人都在熱烈地討論它。今天我讀到了一篇分析它可能工作機制的文章,題目是《世界的參數(shù)倒影:為何 GPT 通過 Next Token Prediction 可以產(chǎn)生智能》,讀完很有啟發(fā),引起了我的思考。我們可以設想一下:如果將來 AGI 能力足夠強大,它能通過閱讀我書寫的內(nèi)容、我的照片和視頻,甚至可以掃描復制我的大腦反應模式,重構一個和我在物理世界一摸一樣的數(shù)字大腦。那么,另一個我自己就會生活在數(shù)字空間中,而 AGI 接管我的數(shù)字大腦的各種感知信號,模擬我的工作和生活場景,讓大腦感到一切都完全正常,好像周圍認識的人、熟悉的事情還照常進行,沒有任何異樣。那么,這個數(shù)字大腦里的我,或者現(xiàn)實生活里的我,能區(qū)分現(xiàn)在是生活在數(shù)字空間,還是物理空間嗎?我把這個思想實驗稱為:數(shù)字缸中之腦。這個思想實驗,是不是很有意思?」
我把這個思想實驗稱為:數(shù)字缸中之腦。這個思想實驗,是不是很有意思?」
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。