天天看點

大語言模型真的需要這麼多層嗎?

作者:CSDN
大語言模型真的需要這麼多層嗎?

研究表明,移除 70% 的注意力頭和 20% 的前饋網絡對上下文學習影響甚微,這暗示大語言模型或許訓練得不夠充分。

本文經授權轉載寶玉老師的個人部落格(微網誌@寶玉xp ),鍊 接https://baoyu.io/translations/amazon/do-large-language-models-really-need-all-those-layers

作者 | Karthik Gopalakrishnan

責編 | 夏萌出處 | baoyu.io

研究表明,移除 70% 的注意力頭和 20% 的前饋網絡對上下文學習影響甚微,這暗示大語言模型或許訓練得不夠充分。

大語言模型(LLMs)已經存在一段時間,但随着 ChatGPT 的出現,今年它們真正進入了公衆視野。LLMs 通常會在龐大的資料集上進行預訓練,并且最近的版本還通過應用強化學習進行調整,以便更好地遵循指令并整合人類回報。

這些 LLMs 展示出的一項令人着迷的能力是上下文學習,也就是說,模型能夠僅憑幾個(有時甚至不需要)好的示例,就學會如何執行新任務。遵循這種學習模式,當預訓練資料量固定時,更大的 LLMs 在執行多種任務方面也表現出比小型模型更強的能力。

在我們即将在今年計算語言學協會(ACL)會議上展示的一篇論文中,我們從架構的可解釋性角度出發,探讨了模型規模對于上下文學習的重要性。我們特别探讨了這個問題:所有 LLM 元件真的對于執行上下文學習都是必需的嗎?

我們的研究以 OPT-66B 模型為案例,這是 Meta 去年開源的一款擁有 660 億參數的大語言模型(LLM),旨在模仿 GPT-3,并且在我們研究時期是最大的公開解碼器僅限大語言模型。我們的發現顯示,模型的很大一部分可以被剔除而不影響其性能,這暗示 OPT-66B 乃至其他著名大語言模型可能存在訓練不足的情況。

我們相信,識别并改善那些需要更精細訓練的架構要素,可以幫助我們建構更強大、更有效的大語言模型。

大語言模型真的需要這麼多層嗎?

大語言模型的基礎構件

現代大語言模型(LLM)主要基于 Transformer 架構,核心在于一種稱為注意力機制的技術。這種機制讓模型能夠學習在預測目前 Token 時,應該重點關注之前序列中的哪些 Token。

具體來說,LLM 采用多頭注意力機制,這意味着模型同時運用多個不同的注意力機制,我們稱之為“頭”。例如,OPT-66B 模型就包含 64 層,每層有 72 個這樣的頭。這些多頭注意力的輸出會在每一層通過一個獨立的前饋網絡(FFN)進行處理。

我們分析 OPT-66B 的方法之一是對每個注意力頭和 FFN 進行打分,以此判斷它們在特定任務中的重要性。基于這些評分,我們進一步對模型進行了精簡。

我們的研究發現,對于模型來說,較為重要的注意力頭多集中于中間層,而重要的 FFN 則多位于後期層。令人驚訝的是,即便我們删去了高達 70% 的注意力頭(在 OPT-66B 中約占 15.7B 個參數),模型在處理 14 種不同自然語言處理(NLP)任務時的零樣本/少樣本學習能力幾乎未受影響。

大語言模型真的需要這麼多層嗎?

這張熱圖展示了 OPT-66B 模型在 14 個自然語言處理 (NLP) 任務中,用于五次少樣本學習的注意力頭的綜合重要性評分,覆寫了模型的每一個層級。

研究發現,在不同任務和次數的學習過程中,對上下文學習至關重要(或不那麼重要)的注意力頭有相似之處。這說明存在一批既通用又與特定任務無關的注意力頭,它們在上下文學習中發揮着核心作用。此外,我們還觀察到,OPT-66B 模型中多達 20% 的前饋神經網絡 (FFNs,大約有 85 億參數) 可以在對零樣本/少樣本上下文學習的性能影響極小的情況下被移除。

我們采用的第二種分析方法是,量化 OPT-66B 模型中所有注意力頭在執行兩種與上下文學習相關的任務無關的基礎操作的能力。這兩種操作分别是字首比對和複制:即在上下文中查找目前 Token 之前出現的位置,并複制其後續的 Token(即字尾)。

大語言模型真的需要這麼多層嗎?

字首比對和複制操作

這兩種操作專用的頭部最初由機器學習研究公司 Anthropic 發現,被稱為歸納頭部。我們的研究表明,OPT-66B 模型中隻有少數頭部能夠在這兩種基礎操作上都表現出色。而且,這些頭部在不同程度上與我們之前識别的對特定任務重要的頭部有所重疊。這意味着歸納頭部不僅能夠進行更為複雜的上下文學習相關行為,如隐性概念比對,還表明它們并非是唯一具備這類能力的頭部。

我們的一個關鍵發現是,隻有少數的注意力頭 (attention heads) 和前饋神經網絡 (FFNs) 對于上下文學習顯得至關重要,這揭示了 OPT-66B 乃至其他知名的大語言模型 (LLMs) 可能存在訓練不充分的問題。這一點進一步印證了近期的一些研究成果,它們對在擴大模型規模時保持預訓練資料量不變的有效性提出了質疑,認為要想取得最佳性能,必須讓預訓練資料的數量與模型的規模同步增長。對于我們的研究釋出後出現的新版大語言模型,比如那些經過調整以更好地遵循指令的模型,了解它們在此類分析中的表現将會非常有意義。

大語言模型真的需要這麼多層嗎?

繼續閱讀