語言模型的物理學 Physics of Language Models - ICML 2024 Tutorial

這是一個ICML 2024的tutorial talk,同時也是一系列的研究,talk的youtube link在這裡
本篇主要把看這個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來避免犯錯,為什麼不直接馬上糾正這個錯誤呢?