語言模型的物理學 Physics of Language Models - ICML 2024 Tutorial
這是一個ICML 2024的tutorial talk,同時也是一系列的研究,talk的youtube link在這裡1. Language Structures













本篇主要把看這個talk的一些讀書筆記記錄下來,雖然實際上talks是從 3 -> 2 -> 1 這個順序去講的,但這裡仍然以投影片的順序來描述,並把講者最後的感概放在Part 1的最後。
Intro
- 把智慧分為1.結構、2.知識以及3.推論
- 在可控制、理想的環境下做研究 (控制資料、調整參數)
- 可重複性高的實驗 (使用100M大小的模型,推出通用法則)
- 使用 probing 技巧去看模型裡面如何運作
1. Language Structures
這個部分有兩個目標:
1. 大型語言模型的解讀 (interpretation of LLMs)
- 並不是基於token level,而是使用更困難的階層式演算法來更精確地解釋LLM如何學習解決這樣的演算法
2.大型語言模型的結構
- LLM如何學習格式(format)? → hallucination(幻覺)
- hallucination只是LLM學習到格式的速度比底層任務快而造成的現象
- 希望能觀察LLM如何解決更階層式、複雜的語言架構
他們使用的方法是CFG(context-free grammar)作為課題來達成以上兩個目標
他們設計了自己的CFG,大約有20+的長度,這是一個非常長的CFG
- CFG會從root開始 → leaf 完成整個推論的樹,這樣長度的CFG會非常難從最終結果回推到他們的源頭,要完全記住這些samples也不可能,因為會有10的80次方個sample
他們從三個面向來測試模型是否能學習這樣的CFGs: accuracy, diversity, distribution
- 如果使用相對或旋轉嵌入的位置編碼,準確度會很高,但如果是用絕對的位置編碼就會得到很差的結果
為什麼會這樣呢?
- 因為使用相對/旋轉的位置編碼對於語言架構的注意力來說非常有幫助
- 相對注意力表現比旋轉好,但相對注意力太慢了
- 但如果用一個GPT_stupid也可以發現不錯的表現 (這個GPT的head h會往回看2^h-1個token)
- 例如第一個head會往前看第1個token,第二個head往前看前3個token,第三個head往前看前7個token,這些token的權重都是uniform attention的
也就是說,即使未來我們想要換掉注意力機制(like Mamba),我們最好還是給他一個位置編碼,即使只是給一個uniform的都好
LLM如何學習?
- 在產生這一串sentence x的時候,實際上CFG是透過parsing tree來產生,而模型是看不到這個tree的
- 那麼模型是否在預訓練的過程中祕密的學習到了解析CFG tree的方法呢? → 答案是yes
模型不只編碼了而且還在正確的位置上編碼了它
- 舉例來說,有一個子樹的node是11,另一個node是7,他們其實是經過線性轉換後局部儲存在2, 1, 1這個附近的序列中
- 即使GPT從未看過parsing tree,它仍然學習到了這個映射的規則
- 但Encoder-based的模型(如BERT)是沒有這樣的能力的,因為這些模型會使用MLM來訓練,將一部分(如15%)的x遮蔽掉,要模型預測出被遮蔽掉的token是哪些
- 而LM做的事情比Encoder-based得更困難,它得從leaf推到root才能知道下一個標記要產生的是什麼
- 這其實也驗證了Part3討論過的"使用雙向模型無法讓模型提取知識"
對人類來說,我們使用DP來推論CFG tree,而在LLM中,這些DP state其實是儲存在hidden state當中,除此之外,在做dp的時候也需要去將每個狀態連接起來,這件事情其實就是attention在做的
除了這個從attention機制得到的parse CFG的能力以外,LLM還擁有產生下一個CFG的能力,這樣的能力還需要另一個層級的DP能力
- 舉例來說,在產生node 9之前需要先確認 1.) node 9是否能被node 10所跟隨著且 2 .) node 8可以產生出它
- 這個能力也是attention給LLM的,可見attention有多麼強大
Summary of part 1
這裡是talk的最後,講者感概LLM竟然已經擁有了DP的能力。在他17歲參加IOI的時候最後一個問題就是DP,當時他並沒有解出來,這個今日的LLM智力已經超越17歲的他的這個事實使他開始研究了語言模型的物理學這個topic (講者曾拿過兩次IOI金牌)
2. Reasoning
2.1 Grade-School Math and the Hidden Reasoning Process
這個部分以國小的數學資料(iGSM)加上probing技巧來探索LLM的推論過程、LLM如何思考
GSM8k太小,有資料汙染,而使用GPT-4去擴充GSM8k又會有偏差,因此他們自己創造了iGSM
- 他們從GSM8k中移除了一些常識資料,但保留數學推理過程的資料
舉例來說,為了去推論出某個高中有多少個背包,所產生出的所有拓樸圖node
他們計算了每個資料有多少的解決方案,結果是好十億、幾百億個,讓模型不可能硬記
- 實驗結果發現,GPT-2可以達成level-1的推理能力,這表示模型在產生答案之前自己有想過,而非只靠CoT
如何證明LLM真的自己有想過?
- 他對模型的幾個步驟做probing
- 在產生答案之前,問模型是否參數A對於回答某個問題是必要的 nece(A)
- 在產生答案的時候,問模型是否知道參數A接下來可以被計算 can_next(A)
- 在提問之前,問模型是否知道參數A依賴在參數B之上 dep(A,B)
- 最後發現模型在這三個階段都有很高的掌握度 (99%)
除此之外,他們也發現LLM有level-2的推理能力
- GPT-2學習到了對回答答案來說沒有幫助的知識 (依賴性和是否能在下一個步驟被計算)
- 這可能是AGI的G的來源 (Generalizing to skills not taught in the training data)
LLM在iGSM上會犯的錯誤
- 最常見的錯誤有兩種,寫下非必要的參數A(nece)以及寫出沒有準備好被計算的參數A導致推論卡住 (can_next),即使在GPT-4o上也會有這些錯誤
對nece來說,既然模型在回答之前就會開始思考,我們可以對這些錯誤做相關性測試,看是否錯誤之間是相關的,並且看是否能夠在模型回答之前就偵測到答案可能會有錯誤
→ 錯誤可能是系統性的而非隨機的
對can_next來說,模型是在心中認為這個參數準備好了但實際上沒有,那模型就很可能會犯下這個錯誤
→ 為了增強模型的推論能力,模型在can_next上的準確度非常重要
過去的研究認為,對LLM來說只有尺寸是重要的 (width和depth不重要)
但他們的實驗發現,對推論來說,depth很重要 → 因為深度就是模型在心中推論過程的長度
而且這個特性是無法用CoT來解決的,因為模型在做CoT之前就有在思考了
Summary of 2.1
2.2 How to Learn from Mistakes
即使是最強大的模型也會在推論的時候犯錯
- 假如模型可以透過多步驟的prompting來避免犯錯,為什麼不直接馬上糾正這個錯誤呢?