當 LoRA 遇見 MoE,會擦出怎樣的火花?
▲ 左側(cè):原始版本的 LoRA,權(quán)重是稠密的,每個樣本都會激活所有參數(shù);右側(cè):與混合專家(MoE)框架結(jié)合的 LoRA,每一層插入多個并行的 LoRA 權(quán)重(即 MoE 中的多個專家模型),路由模塊(Router)輸出每個專家的激活概率,以決定激活哪些 LoRA 模塊。 由于大模型全量微調(diào)時的顯存占用過大,LoRA、Adapter、IA 這些 參數(shù)高效微調(diào) (Parameter-Efficient Tuning,簡稱 PEFT )方法便成為了資源有限的機構(gòu)和研究者微調(diào)大模型的標配。PEFT 方法的總體思路是凍結(jié)住大模型的主干參數(shù),引入一小部分可訓練的參數(shù)作為適配模塊進行訓練,以節(jié)省模型微調(diào)時的顯存和參數(shù)存儲開銷。 傳統(tǒng)上,LoRA 這類適配模塊的參數(shù)和主干參數(shù)一樣是 稠密 的,每個樣本上的推理過程都需要用到所有的參數(shù)。近來,大模型研究者們?yōu)榱丝朔砻苣P偷膮?shù)效率瓶頸,開始關注以 Mistral、DeepSeek MoE 為代表的混合專家(Mixure of Experts,簡稱 MoE )模型框架。 在該框架下,模型的某個模塊(如 Transformer 的某個 FFN 層)會存在多組形狀相同的權(quán)重(稱為專家),另外有一個 路由模塊(Router) 接受原始輸入、輸出各專家的激活權(quán)重,最終的輸出為: 如果是 軟路由(soft routing) ,輸出各專家輸出的加權(quán)求和; 如果是 離散路由(discrete routing) ,即 Mistral、DeepDeek MoE 采用的稀疏混合專家(Sparse MoE)架構(gòu),則將 Top-K(K 為固定的 超參數(shù),即每次激活的專家個數(shù),如 1 或 2)之外的權(quán)重置零,再加權(quán)求和。 在 MoE 架構(gòu)中,每個專家參數(shù)的激活程度取決于數(shù)據(jù)決定的路由權(quán)重,使得各專家的參數(shù)能各自關注其所擅長的數(shù)據(jù)類型。在離散路由的情況下,路由權(quán)重在 TopK 之外的專家甚至不用計算,在保證總參數(shù)容量的前提下極大降低了推理的計算代價。 那么,對于已經(jīng)發(fā)布的稠密大模型的 PEFT 訓練,是否可以應用 MoE 的思路呢?近來,筆者關注到研究社區(qū)開始將以 LoRA 為代表的 PEFT 方法和 MoE 框架進行結(jié)合,提出了 MoV、MoLORA、LoRAMOE 和 MOLA 等新的 PEFT 方法,相比原始版本的 LORA 進一步提升了大模型微調(diào)的效率。 本文將解讀其中三篇具有代表作的工作,以下是太長不看版: MoV 和 MoLORA [1] :提出于 2023 年 9 月,首個結(jié)合 PEFT 和 MoE 的工作,MoV 和 MoLORA 分別是 IA 和 LORA 的 MOE 版本,采用 token 級別的軟路由(加權(quán)合并所有專家的輸出)。作者發(fā)現(xiàn),對 3B 和 11B 的 T5 大模型的 SFT,MoV 僅使用不到 1% 的可訓練參數(shù)量就可以達到和全量微調(diào)相當?shù)男Ч@著優(yōu)于同等可訓練參數(shù)量設定下的 LoRA。 LoRAMOE [2] :提出于 2023 年 12 月,在 MoLORA [1] 的基礎上,為解決微調(diào)大模型時的災難遺忘問題,將同一位置的 LoRA 專家分為兩組,分別負責保存預訓練權(quán)重中的世界知識和微調(diào)時學習的新任務,并為此目標設計了新的負載均衡 loss。 MOLA [3] :提出于 2024 年 2 月,使用離散路由(每次只激活路由權(quán)重 top-2 的專家),并發(fā)現(xiàn)在每一層設置同樣的專家個數(shù)不是最優(yōu)的,增加高層專家數(shù)目、降低底層專家數(shù)目,能在可訓練參數(shù)量不變的前提下,明顯提升 LLaMa-2 微調(diào)的效果。
MoV和MoLORA:PEFT初見MoE,故事開始 論文標題:
Pushing Mixture of Experts to the Limit: Extremely Parameter Efficient MoE for Instruction Tuning https:///abs/2309.05444
該工作首次提出將 LoRA 類型的 PEFT 方法和 MoE 框架進行結(jié)合,實現(xiàn)了 MoV(IA 的 MOE)版本和 MoLORA(LORA 的 MOE)版本,發(fā)現(xiàn) MoV 的性能在相等的可訓練參數(shù)量設定下優(yōu)于原始的 LORA,非常接近全參數(shù)微調(diào)?;仡櫹翴A 的適配模塊設計,即在 Transformer 的 K、V 和 FFN 的第一個全連接層的輸出,各自點乘上一個可訓練的向量 :
那么,MOV 就是將這些可訓練向量各自復制 份參數(shù)(n 為專家個數(shù)),并加入一個路由模塊接受 K/V/FFN 原本輸出的隱向量 、輸出各專家的激活權(quán)重,過 softmax 之后得到各專家的激活概率 ,以其為權(quán)重對各個可訓練向量求和(之后向原始版本的 IA 一樣,將求和后的向量點乘上原輸出的隱向量)。圖示如下: 實驗部分,作者在 Public Pool of Prompts 數(shù)據(jù)集上指令微調(diào)了參數(shù)量從 770M 到 11B 的 T5 模型,在 8 個 held out 測試集上進行測試。實驗的微調(diào)方法包括全量微調(diào)、原始版本的 IA 和 LORA、MoV 和 MoLORA。 從測試結(jié)果上來看, MoV的性能明顯好于 MoLORA 和原始版本的 IA 和 LORA 。 例如,專家個數(shù) 的 MoV-10 只用 3B 模型 0.32% 的參數(shù)量,就能達到和全量微調(diào)相當?shù)男Ч?,明顯優(yōu)于同等可訓練參數(shù)量的 IA 和 LORA,而使用 0.68% 可訓練參數(shù)的 MoV-30(60.61)甚至超過全量微調(diào)。
▲ 3B 模型的測試結(jié)果,只使用 0.32% 可訓練參數(shù)的MoV-10 的平均 accuracy(59.93)接近全量微調(diào)(60.06),明顯優(yōu)于使用 0.3% 可訓練參數(shù)的原始版本 LORA(57.71)。使用 0.68% 可訓練參數(shù)的 MoV-30(60.61)甚至超過全量微調(diào)。
此外,作者還對專家的專門程度(speciality,即每個任務依賴少數(shù)幾個特定專家的程度)進行了分析,展示 MOV-5 微調(diào)的 770M 模型最后一層 FFN 中各專家路由概率的分布:
▲ 路由概率的分布,左側(cè)為模型在訓練集中見過的任務,右側(cè)為測試集中模型未見過的任務。
可以看出,無論模型是否見過任務數(shù)據(jù),大多數(shù)任務都有 1-2 個特別側(cè)重的專家占據(jù)了大部分激活概率值,說明 MoV 這個 MoE 實現(xiàn)達成了專家的專門化。 LoRAMOE:LoRA專家分組,預訓練知識記得更牢 論文標題:
LoRAMoE: Revolutionizing Mixture of Experts for Maintaining World Knowledge in Language Model Alignment https:///abs/2312.09979
此文為復旦大學 NLP 組的工作,研究動機是解決 大模型微調(diào)過程中的災難遺忘問題 。作者發(fā)現(xiàn),隨著所用數(shù)據(jù)量的增長,SFT 訓練會導致 模型參數(shù)大幅度偏離預訓練參數(shù) ,預訓練階段學習到的 世界知識(world knowledge) 逐漸被遺忘,雖然模型的指令跟隨能力增強、在常見的測試集上性能增長,但需要這些世界知識的 QA 任務性能大幅度下降:
▲ 左側(cè)為不需要世界知識的常見測試集上的性能,右側(cè)為需要世界知識的 QA 測試集上的表現(xiàn),橫軸為 SFT 數(shù)據(jù)量,紅線為模型參數(shù)的變化程度。
數(shù)據(jù)部分: 加入 world knowledge 的代表性數(shù)據(jù)集 CBQA,減緩模型對世界知識的遺忘; 模型部分: 以(1)減少模型參數(shù)變化、(2)隔離處理世界知識和新任務知識的參數(shù)為指導思想,在上一篇文章的 MoLORA 思想上設計了 LoRAMoE 方法,將 LoRA 專家們劃分為兩組,一組用于保留預訓練參數(shù)就可以處理好的(和世界知識相關的)任務,一組用于學習 SFT 過程中見到的新任務,如下圖所示:
為了訓練好這樣的分組專家,讓兩組專家在 組間各司其職 (分別處理兩類任務)、在 組內(nèi)均衡負載 ,作者設計了一種名為 localized balancing contraint 的負載均衡約束機制。具體地,假設 為路由模塊輸出的重要性矩陣, 代表第 個專家對第 個訓練樣本的權(quán)重, 作者定義的和 形狀相同的矩陣:
其中 為 0-1 之間的固定值(控制兩組專家不平衡程度的超參), 為第 個專家的類型(設負責保留預訓練知識的那組為 0,負責習新任務的那組為1), 為第 個樣本的類型(設代表預訓練知識的 CBQA 為 0,其他 SFT 數(shù)據(jù)為 1)。負載均衡損失 的定義為用 加權(quán)后的重要性矩陣 的方差除以均值:
這樣設計 loss 的用意是,對任意一種訓練樣本,兩組 LoRA 專家組內(nèi)的 值是相等的,優(yōu)化 即降低組內(nèi)路由權(quán)重的方差,使得組內(nèi)負載均衡;兩組專家之間,設專家組 A 對當前類型的數(shù)據(jù)更擅長,則其 值大于另一組專家 B,訓練起始階段的 A 的激活權(quán)重就顯著大于 B,A 對這種數(shù)據(jù)得到的訓練機會更多,路由模塊在訓練過程中逐漸更傾向?qū)@種數(shù)據(jù)選擇A組的專家。 這種 “強者愈強”的極化現(xiàn)象 是 MoE 領域的經(jīng)典問題,可以參見經(jīng)典的 sMoE 論文 The Sparsely-Gated Mixture-of-Experts Layer [4] 對該問題的闡述。 這樣一來,即使推理階段沒有數(shù)據(jù)類型 的信息,A 對這種數(shù)據(jù)的路由值 也會顯著大于 B 的相應值,這就實現(xiàn)了兩組專家各司其職的目標。 實驗部分,作者在 CBQA 和一些列下游任務數(shù)據(jù)集混合而成的 SFT 數(shù)據(jù)上微調(diào)了 LLaMA-2-7B,對比了全量 SFT、普通 LORA 和作者所提的 LoRAMoE 的性能。 結(jié)果顯示,LoRAMoE 有效克服了大模型 SFT 過程中的災難性遺忘問題,在需要世界知識的 QA 任務(下表下半部分)上性能最佳,在與 SFT 訓練數(shù)據(jù)關系更大的其他任務上平均來說基本與 SFT 訓練的模型相當:
MOLA:統(tǒng)籌增效,更接近輸出端的高層需要更多專家 論文標題:
Higher Layers Need More LoRA Experts https:///abs/2402.08562
該工作受到 MoE 領域先前工作 [5] 發(fā)現(xiàn)的 專家個數(shù)過多容易導致性能下降 的現(xiàn)象之啟發(fā),提出了兩個問題: 現(xiàn)有 PEFT+MoE 的微調(diào)方法是否存在 專家冗余 的問題? 如何在不同中間 層之間分配專家個數(shù) ?
為了解答問題 1,作者訓練了每層專家個數(shù)均為 5 的 LoRA+MoE(基座模型為 32 層的 LLaMa-2 7B),路由機制采用 Top-2 離散路由,計算了每層 self-attention 的 Q、K、V、O 各組專家權(quán)重內(nèi)兩兩之間求差的 Frobenius 范數(shù)的平均值,可視化如下:
▲ 橫軸為模型層數(shù),縱軸為專家權(quán)重之間的差異程度。
可以看出,層數(shù)越高(約接近輸出端),專家之間的差異程度越大,而低層的專家之間差異程度非常小, 大模型底層的 LoRA 專家權(quán)重存在冗余 。該觀察自然導出了對問題 2 答案的猜想: 高層需要更多專家 ,在各層的專家個數(shù)之和固定的預算約束下,應該把底層的一部分專家挪到高層,用原文標題來說就是: Higher Layers Need More Experts
為了驗證該猜想,作者提出了四個版本的專家個數(shù)劃分方式分別嚴重性能,它們統(tǒng)稱為 MoLA (M oE-Lo RA with L ayer-wise Expert A llocation),分別是: MoLA-△:正三角形,底層專家個數(shù)多,高層專家個數(shù)少;
▲ 四種在不同中間層之間劃分專家個數(shù)的方式。 具體實現(xiàn)中,作者將 LLaMA 的 32 層從低到高分為 4 組,分別是 1-8、9-16、17-24、25 到 32 層,以上四種劃分方式總的專家個數(shù)相等,具體劃分分別為: 路由機制為 token 級別的 Top-2 路由,訓練時加入了負載均衡損失。MoLA 的 LoRA rank=8,基線方法中 LoRA 的秩為 64(可訓練參數(shù)量略大于上述四種 MoLA,與 MOLA-□ 的 8-8-8-8 版本相同)評測數(shù)據(jù)集為 MPRC、RTE、COLA、ScienceQA、CommenseQA 和 OenBookQA,在兩種設定下訓練模型: 設定1:直接在各數(shù)據(jù)集的訓練集上分別微調(diào)模型; 設定2:先在 OpenOrac 指令跟隨數(shù)據(jù)集上進行 SFT,再在各數(shù)據(jù)集的訓練集上分別微調(diào)模型。 從以下實驗結(jié)果可以看出,在設定 1 下,MoLA-▽ 都在大多數(shù)數(shù)據(jù)集上都取得了 PEFT 類型方法的最佳性能,遠超可訓練參數(shù)量更大的原始版本 LoRA 和 LLaMA-Adapter,相當接近全量微調(diào)的結(jié)果。
在設定 2 下,也是倒三角形的專家個數(shù)分配方式 MoLA-▽ 最優(yōu),驗證了“高層需要更多專家”的猜想。
筆者點評:從直覺來看,模型的高層編碼更 high-level 的信息,也和目標任務的訓練信號更接近,和編碼基礎語言屬性的底層參數(shù)相比需要更多調(diào)整,和此文的發(fā)現(xiàn)相符,也和遷移學習中常見的 layer-wise 學習率設定方式(頂層設定較高學習率,底層設定較低學習率)的思想不謀而合,未來可以探索二者的結(jié)合是否能帶來進一步的提升。 [1] Zadouri, Ted, et al. 'Pushing mixture of experts to the limit: Extremely parameter efficient moe for instruction tuning.'arXiv preprint arXiv:2309.05444(2023).https:///pdf/2309.05444.pdf
[2] Dou, Shihan, et al. 'Loramoe: Revolutionizing mixture of experts for maintaining world knowledge in language model alignment.'arXiv preprint arXiv:2312.09979(2023).https:///abs/2312.09979
[3] Gao, Chongyang, et al. 'Higher Layers Need More LoRA Experts.'arXiv preprint arXiv:2402.08562(2024).https:///abs/2402.08562
[4] Shazeer, Noam, et al. 'Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer.'International Conference on Learning Representations. 2016.https:///abs/1701.06538
[5] Chen, Tianlong, et al. 'Sparse MoE as the New Dropout: Scaling Dense and Self-Slimmable Transformers.'The Eleventh International Conference on Learning Representations. 2022.https:///abs/2303.01610
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀 ,也可以是學術(shù)熱點剖析 、科研心得 或競賽經(jīng)驗講解 等。我們的目的只有一個,讓知識真正流動起來。
?? 稿件基本要求:
· 文章確系個人原創(chuàng)作品 ,未曾在公開渠道發(fā)表,如為其他平臺已發(fā)表或待發(fā)表的文章,請明確標注
· 稿件建議以 markdown 格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題
· PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競爭力稿酬 ,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算
?? 投稿通道: