清華團隊革新MoE架構!像搭積木一樣構建大模型,提出新型類腦稀疏模塊化架構
探索更高效的模型架構, MoE是最具代表性的方向之一。
MoE架構的主要優勢是利用稀疏激活的性質,將大模型拆解成若干功能模塊,每次計算僅激活其中一小部分,而保持其余模塊不被使用,從而大大降低了模型的計算與學習成本,能夠在同等計算量的情況下產生性能優勢。
然而,此前像MoE等利用稀疏激活性質的研究工作,都認為大模型需要在預訓練階段就額外引入模塊化結構約束。
如今,來自清華的一項最新研究打破了以上思維定式,并將MoE架構進行了革新。
具體而言,研究人員受啟發于人腦高效的稀疏模塊化架構,在論文《Configurable Foundation Models: Building LLMs from a Modular Perspective》中提出了一種類腦高效稀疏模塊化架構:Configurable Foundation Model。
該架構將大模型的模塊拆分為預訓練階段產生的涌現模塊(Emergent Brick)與后訓練階段產生的定制模塊(Customized Brick),然后通過模塊的檢索、組合、更新與增長可以高效地實現復雜功能配置與組合,因此,將這一類模塊化模型架構命名為“Configurable Foundation Model”——可配置的基礎模型。
從此,訓練大模型無需在預訓練階段就像MoE架構一樣引入模塊化結構約束,而是可以在預訓練階段產生涌現模塊之后,像搭積木一樣來構建大模型!
如下圖所示,大模型看做是一個大的積木,將其按照功能拆分成一個一個小模塊之后,給定一個指令時,我們僅需選用部分相關的模塊組成子模型即可完成任務。
圖片
該研究揭示了「模塊化」是大模型本身自帶的性質,所有 Transformer-based 大模型的預訓練和后訓練等工作都可以通過模塊化的視角進行解構,其中MoE、Delta tuning只是Configurable Foundation Model包含的一種路線。
Configurable Foundation Model架構具有高效性、可復用性、可溯源性、可擴展性,并且更適合分布式計算,能夠更好地契合未來大模型在端側部署、在廣泛的場景中使用、在新環境中進化的未來趨勢。
圖片
論文鏈接:https://arxiv.org/pdf/2409.02877
論文單位:清華大學、加州大學圣地亞哥分校、卡耐基梅隆大學、面壁智能、中國人民大學、普林斯頓大學、新加坡國立大學、斯坦福大學和加州大學洛杉磯分校。
可配置的大模型 —— 涌現模塊與定制模塊
研究人員描述了涌現模塊和定制模塊兩種模塊類型及其構建方式。
1. 涌現模塊
隨機初始化的模型參數,在預訓練過程中,模型神經元將會自發地產生功能分化的現象,進而組成了大模型的功能分區。在推理階段,只有與當前輸入內容相關的功能分區會被激活,并作用于模型的輸出結果。
圖片
在該機制作用下,許多研究致力于發掘大模型神經元的稀疏激活性質與功能定位:
稀疏激活:
最早利用稀疏激活性質的模型架構為稀疏混合專家模型,它通過預定義的模塊化結構,強制每個詞僅能使用部分專家進行計算。
進一步地,在稠密訓練的模型中,神經元同樣存在稀疏激活現象:在處理每個詞語過程中,大量神經元激活值的絕對值很低,無法對輸出產生有效貢獻。稀疏激活的性質使得我們可以訓練高效的參數選擇器,在推理時動態選擇參數進行計算,以降低計算開銷。
功能定位:
與人腦類似,大模型神經元在預訓練后產生了功能分化,各自僅負責部分功能。目前已經被廣泛發現的功能神經元包括:
- 知識神經元,用于存儲世界三元組知識;
- 技能神經元,用于輔助模型完成特定任務,例如情感分類;
- 語言神經元,用于識別特定的語法特征或處理特定語言。
這些功能神經元的發現進一步佐證了大模型具備與人腦一樣進行高效稀疏化推理的潛力。
2. 定制模塊(插件)
預訓練之后,我們往往需要對模型進行后訓練,從而將模型與人類需求對齊,并增強包括領域能力和任務能力在內的模型能力。最近的研究表明,后訓練過程中參數變化本質上是低秩的,這意味著該過程只訓練少部分參數。受這些發現的啟發,多樣化的定制模塊(插件)被提出。
其中,最廣為人知的是通過少參數微調形成的任務模塊,保持模型主體參數不變,僅微調少量的任務相關參數。進一步地,許多研究發現,小規模的外部插件,不僅可以賦予大模型任務特定的能力,還可以為它們補充更多額外的知識和功能,例如用于世界知識注入的知識插件、用于多模態組合的模態插件、用于長文本處理的記憶插件,以及用于推理加速的壓縮插件等。
因此,該論文研究者認為,后訓練的本質是定制模塊的訓練,這些模塊可以充分補充和激發大模型的知識和能力。
圖片
由涌現模塊與定制模塊構成的可配置的大模型相比于傳統的稠密模型擁有五大優勢:
- 高效性:我們依舊可以使用數百億、數千億的參數來存儲海量的世界知識,但每次計算過程,僅有部分參數參與計算,保證了模型效果的同時,大幅降低計算開銷。
- 可復用性:不同數據、不同任務訓練得到的模塊,可以在同一個序列中通過模塊路由器/選擇器進行組合,實現能力的遷移與復用。
- 可溯源性:模塊化架構改變了傳統黑盒大模型的使用方法,在推理階段,我們可以觀察到不同功能模塊的激活調用情況,從而更好地觀測模型產生錯誤行為的原因。
- 可擴展性:模塊化架構使得我們可以通過模塊的更新與構建實現對模型的更新、能力增強,而無需對所有模型參數進行訓練。這使得模型可以高效地不斷學習新知識與新能力。
- 分布式計算:功能模塊的拆分使得我們在部署模型時,可以天然地將不同模塊置于不同機器上進行計算。例如,將包含有個人隱私數據的模塊部署在端側設備中,而將大部分通用模塊署在云端服務器,實現高效、安全的端云協同。
在定義了可配置的大模型架構之后,研究人員提出了四種主要的模塊操作,通過這些操作,可以讓不同模塊進行靈活地配合,實現復雜能力。
- 檢索與路由:根據需求,選擇相關的功能模塊參與計算;
- 組合:將多個單一能力的模塊進行組合,實現復合能力;
- 更新:根據外部世界的需求,對特定的知識與功能模塊進行更改;
- 增長:構建新的功能模塊,對模型進行能力增強的同時,使其能夠與其他模塊進行高效合作。
這些模塊化操作,使得我們能夠更方便地對模型能力進行高效配置。
大模型的涌現模塊分析
進一步地,為了驗證大模型模塊化觀點,作者對現在被廣泛使用的通用生成式大模型(Llama-3-8B-Instruct,Mistral-7B-Instruct-v0.3)進行了涌現模塊分析:
- 稀疏激活特性:通用的生成式大模型是否存在稀疏激活現象,即每個詞僅要求少量的神經元參與計算;
- 功能分化特性:對于不同的能力,是否存在特定的神經元來負責;
- 功能分區特性:不同的能力對應的神經元之間,是否存在重疊。
(1)針對稀疏激活特性,作者采用了神經元激活值、神經元輸出向量的模長兩個指標,作為神經元是否激活的評價指標。并且,作者還開展了擾動實驗,探究對每個詞語將其中激活指標最低的神經元給遮蓋掉之后,模型性能是否會受到影響。
圖片
結果表明,對于神經元激活值和輸出向量模長兩個指標而言,神經元激活指標均存在長尾分布特點,即絕大多數神經元的激活指標均較低。同時,將每個詞激活指標最低的70%-80%的神經元進行遮蓋,模型性能僅會受到非常微弱的影響。這充分表明了,通用生成式大模型存在稀疏激活特性,每次計算過程中,大量神經元的計算對輸出并不會造成太多的影響。
(2)針對功能分化特性:作者選取了7種大模型能力,包括代碼、倫理、知識、語言、數學、翻譯和寫作能力,并且計算了神經元激活與輸入指令所需能力之間的相關性。下圖結果表明,每種能力都有非常少量的神經元與其高度相關,而在需要改能力的指令中,大部分與該能力無關的神經元的激活特性與隨機激活的神經元相似。
圖片
進一步地,作者嘗試將每種能力特定的神經元進行剪枝,觀察這些神經元對其他能力的影響。
下圖結果表明,對大部分能力而言,剪除與其最相關的神經元,對其他能力影響甚微,表明了這些神經元的特異性。
比如,對于Llama-3-8B-Instruct而言,剪除代碼神經元之后,性能下降(PPL上漲了) 112%,而對其他能力的性能影響均不超過8%。
此外,Llama-3-8B-Instruct中的知識相關神經元、Mistral-7B-Instruct-v0.3中翻譯相關神經元對每一種能力都非常關鍵,這可能是常駐神經元的影響,識別特定能力神經元時算法,將常駐神經元識別出來,影響了模型通用能力。這也進一步需要研究者針對神經元能力探索開展更多的后續研究。
圖片
(3)功能分區特性:作者對不同能力神經元開展了分布上的分析,結果發現,不同能力神經元之間重疊度很低。這表明,我們可以進一步將神經元進行聚類分隔,形成功能分區。
大模型的定制模塊(插件)分析
Configurable Foundation Model由預訓練階段的涌現模塊與后訓練階段的定制化模塊構成。前文已經對大模型涌現模塊的相關性質進行了分析。同樣,作者團隊已經在插件構建層面,取得了很多有益的嘗試:
- 知識插件:為實現高效地長時知識更新,我們提出面向大模型的即插即拔參數化知識插件:把無結構文本知識參數化為大模型的模塊,在模型需要相關知識時,將模塊插入模型中實現知識注入。該方法能夠有效地為模型注入知識,降低知識驅動任務中的文本編碼開銷,節省69%的計算成本。
論文鏈接:https://arxiv.org/pdf/2305.17691 https://arxiv.org/pdf/2305.17660
- 長文本記憶插件:為實現高效地短時知識記憶,我們提出面向大模型的免訓練上下文記憶模塊:將遠距離上下文存儲到額外的記憶單元中,并采用一種高效的機制來查找與當前文本相關的記憶單元進行注意力計算。實驗結果表明,我們提出的InfLLM能夠有效地擴展Mistral、LLaMA的上下文處理窗口,并在1024K上下文的passkey檢索任務中實現100%召回。
論文鏈接:https://arxiv.org/pdf/2402.04617
- 加速插件:閱讀知覺廣度是影響人閱讀速度的重要因素,人單次注視可以閱讀并處理多個字詞,然而大模型卻始終只能夠逐字閱讀并處理。受啟發于此,該研究提出了一種文本推理加速模塊。該加速模塊在大模型內部對文本序列進行長度壓縮,使得模型單次閱讀可以處理多個詞語,從而實現效率的提升。該加速模塊不改變大模型原本參數,通過部署一個模型+多個不同速率的加速模塊,可以實現速度與效果的動態平衡。
論文鏈接:https://arxiv.org/pdf/2310.15724
總結和更多研究
在本篇文章中,作者提出了一種高效模塊化架構 —— 由涌現模塊與定制模塊組成的可配置大模型。該架構強調將大模型根據功能拆解為若干模塊,通過模塊的檢索、組合、更新、增長實現復雜能力的組合。該架構具有高效性、可復用性、可溯源性、可擴展性,并且更適合分布式計算,能夠更好地契合未來大模型在端側部署、在廣泛的場景中使用、在新環境中進化的未來趨勢。
清華大學自然語言處理實驗室已經在大模型稀疏模塊化架構方面開展了大量的研究工作,附上相關論文列表,供大家參考:
- 參數模塊化聚類
Moefication: Transformer feed-forward layers are mixtures of experts (https://arxiv.org/pdf/2110.01786)
- 大模型稀疏模塊性增強:
ProSparse: Introducing and Enhancing Intrinsic Activation Sparsity within Large Language Models (https://arxiv.org/pdf/2402.13516)
ReLU^2 Wins: Discovering Efficient Activation Functions for Sparse LLMs (https://arxiv.org/pdf/2402.03804)
- 大模型模塊化性質分析:
Emergent Modularity in Pre-trained Transformers (https://arxiv.org/pdf/2305.18390)
- 稀疏模塊化預訓練:
Exploring the Benefit of Activation Sparsity in Pre-training (https://arxiv.org/pdf/2410.03440?)
- 神經元功能定位:
Finding Skill Neurons in Pre-trained Transformer-based Language Model(https://arxiv.org/pdf/2211.07349)
- 大模型知識插件:
Plug-and-play document modules for pre-trained models (https://arxiv.org/pdf/2305.17660)
Plug-and-play knowledge injection for pre-trained language models (https://arxiv.org/pdf/2305.17691)
- 大模型記憶插件:
Infllm: Training-free long-context extrapolation for llms with an efficient context memory (https://arxiv.org/pdf/2402.04617)
- 大模型加速插件:
Variator: Accelerating Pre-trained Models with Plug-and-Play Compression Modules (https://arxiv.org/pdf/2310.15724)
- 大模型任務插件:
Delta tuning: A comprehensive study of parameter efficient methods for pre-trained language models (https://arxiv.org/pdf/2203.06904)