新智元報道
編輯:peter東 喬楊
【新智元導讀】大模型在數學問題上的表現不佳,原因在於採取啟發式演算法進行數學運算的,透過定位到多層感知機(MLP)中的單個神經元,可以對進行數學運算的具體過程進行解釋。
由於缺少對執行邏輯的解釋,大模型一向被人稱為「黑箱」,但近來的不少研究已能夠在單個神經元層面上解釋大模型的執行機制。
例如Claude在2023年發表的一項研究,將大模型中大約500個神經元分解成約4000個可解釋特徵。
而10月28日的一項研究,以算術推理作為典型任務,借鑑類似的研究方法,確定了大模型中的一個模型子集,能解釋模型大部分的基本算術邏輯行為。
論文地址:https://arxiv.org/abs/2410.21272
該研究首先定位了Llama3-8B/70B, Pythia-6.9B及GPT-J四個模型中負責算術計算的模型子集。
如圖1所示,少數注意力頭對大模型面對算術問題的正確率有顯著影響。第一個 MLP(多層感知機) 明顯影響運算元和運算子位置,而中間層和後期層的 MLP 將token資訊投影到最後位置,提升正確答案的出現機率。
圖1:Llama3-8B中發現算術相關的模型子集
該研究聚焦於單個神經元層面,發現了一組重要的神經元,它們實現了簡單的啟發式演算法。只需要關注特定的極少量神經元,就能正確預測大模型進行算術運算的結果(圖2)。
圖2:大模型 中每層神經元中只需要關注1.5%的少數子集,就能預測大模型進行四則運算的結果
舉個例子:當輸入的提示詞為“ 226−68= ”時,神經元24|12439在結果介於150和180的減法提示下顯示出高啟用值,可被視為一個啟發式演算法。而每個啟發式演算法識別一個數值輸入模式,並輸出相應的答案。
具體可分為兩種不同的啟用模式:第一種直接啟發式指的是在某些神經元中,啟用模式取決於兩個運算元,值向量編碼了算術計算的預期結果(圖 3b,c)。
第二種間接啟用模式取決於單個運算元對應的神經元中,值向量通常編碼下游處理的特徵,而不是直接的計算結果(圖3a)。
圖3:啟發式方法的視覺化
神經元和運算的因果聯絡
該如何確認特定神經元和相關數學運算之間存在因果關係?一種常見的方法是消融分析,即將大模型大模型中特定的神經元敲除,看看模型的效果會有何改變,結果如圖4所示。
圖4:四則運算中敲除對應的算術神經元后模型的效能對比
去掉了對應神經元后,模型的運算準確性無論加減乘除都顯著下降。
不僅如此,相比去除特定算術神經元時造成的效能下降,可以發現,去除隨機神經元的影響相對較小,而且這種效應在模型8B和70B不同引數量中普遍存在。
圖5:敲除與算術相關的啟發式演算法的神經元(實線)相比與算術無關的相同數量的隨機神經元(虛線)
上述結果表明,可僅根據其相關啟發式演算法來識別對特定對大模型進行算術重要的神經元,也證明了屬於幾個啟發式演算法的神經元與提示正確完成之間的因果關係。
此外,該結果還支援了啟發式演算法集合的主張:即每個啟發式演算法僅略微提高正確答案的機率,但它們結合在一起,使得大模型以高機率產生算術題的正確答案。
大模型為何做不對算術題
Llama3-8B模型無法可靠地對每道算術題時給出正確的回答。基於啟發式規則,該研究闡述了模型為何會做錯,可能的機制共有兩種:
第一,由於引數量的限制,大模型缺乏足夠的算術神經元,無法針對每一種情況都給出應對。
第二種原因是,可能存在回憶不完整的情況,比如某個啟發式規則對應的神經元沒有在運算時被觸發。
圖6:隨機抽取了50個正確完成和50個錯誤完成的算術題目,考察大模型中被正確和錯誤啟用的算術神經元個數
如圖6所示,在大模型回答正確及錯誤時,啟用的算術神經元個數不存在差異,這不支援前述的第一種算術神經元個數不足的假設。
然而,在大模型回答正確的情況下,更多比例的正確神經元被激活了,而回答錯誤的案例中,應當被啟用的神經元啟用機率反而較小。
這意味著大模型在特定算術題上失敗的主要原因是對能得出正確答案的神經元缺少泛化能力,而不是算術神經元的數量不足。
「算術神經元」何時誕生
由於其訓練檢查點可供公眾獲取,該研究採用Pythia-6.9B來考察大模型過程中算術神經元的出現階段。
結果顯示,大模型在訓練過程中逐漸發展其最終的算術啟發式機制,且算術神經元在模型訓練早期就已出現。
圖7 :啟發式的算術神經元的百分比隨著訓練增加
在模型訓練的不同階段,移除特定的啟發式神經元會大幅降低模型在所有訓練檢查點的準確性,這表明算術準確性主要來自啟發式,即使在早期階段也是如此。算術啟發式神經元與大模型算術能力的因果關係在整個訓練過程中都存在。
圖8:不同階段敲除算術神經元對大模型進行算術運算準確性的影響
結論
理解大模型如何進行數學運算,不僅可以開啟大模型內部執行的黑箱,解釋它們為何在簡單的數學題上翻車,例如最著名的「9.11和9.8哪個大」。
這項研究告訴我們,並不是因為大模型缺少相關訓練,而是激活了錯誤的啟發式神經元,例如將這個問題當成了詢問哪個版本更大。
理解了大模型的算術運算,是依賴於啟發式方法集,而非單純的依靠記憶(背題目)或學會規則,這表明提高大模型的數學能力可能需要訓練和架構的根本性改變,而不是像啟用引導這樣的小修小補。
對訓練過程的分析結果指出,大模型在訓練早期就學會了這些啟發式方法,並隨時間推移逐漸強化。這可能會導致模型過度擬合到早期的簡單策略,因此可作為之後最佳化方向的參考。
參考資料:
https://arxiv.org/abs/2410.21272