首頁  >  文章  >  科技週邊  >  演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

PHPz
PHPz原創
2024-08-06 01:49:02944瀏覽
LLM 很強,而為了實現 LLM 的可持續擴展,有必要找到並實現能提升其效率的方法,混合專家(MoE)就是這類方法的一大重要成員。

最近,各家科技公司提出的新一代大模型不約而同地正在使用混合專家(Mixture of Experts:MoE)方法。

混合專家這個概念最早誕生於 1991 年的論文《Adaptive mixtures of local experts》,三十多年來已經得到了廣泛的探索和發展。近年來,隨著稀疏門控 MoE 的出現和發展,尤其是與基於 Transformer 的大型語言模型相結合,這種已有三十多年歷史的技術煥發了新的生機。

MoE 框架基於一個簡單卻又強大思想:模型的不同部分(稱為專家)專注於不同的任務或數據的不同方面。

使用此範式時,對於一個輸入,僅有與之相關的專家(Expert)才會參與處理,這樣一來便能控制計算成本,同時仍能受益於大量專業知識。因此,MoE 可在不大幅提升運算需求的前提下提升大語言模型的能力。

如圖 1 所示,MoE 相關研究成長強勁,尤其是在 2024 年 Mixtral-8x7B 以及 Grok-1、DBRX、Arctic、DeepSeek-V2 等各種產業級 LLM 出現後。

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

這張圖來自香港科技大學(廣州)的一個研究團隊近日發布的一篇MoE 綜述報告,其中清晰且全面地總結了MoE 相關研究,並提出了一種全新的分類法,將這些研究歸類到了演算法、系統和應用三大類。

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

  • 論文標題:A Survey on Mixture of Experts

  • 論文地址:https://arxiv.org/pdf/2407.06204

    論文地址:https://arxiv.org/pdf/2407.06204
  • 論文地址:https://arxiv.org/pdf/2407.06204
論文地址以幫助讀者了解目前MoE 的發展概況,更多詳情請閱讀原論文。此外,我們也在文末整理了一些與 MoE 相關的報導。

混合專家的背景知識

在基於Transformer 的大型語言模型(LLM)中,每個混合專家(MoE)層的組成形式通常是? 個「專家網絡」{?_1, ... , ?_?} 搭配一個「門控網路」G。

這個門控網絡的形式通常是一個使用 softmax 激活函數的線性網絡,其作用是將輸入引導至合適的專家網絡。 MoE 層的放置位置是在 Transformer 模組內,作用是選取前向網路(FFN),通常位於自註意力(SA)子層之後。這種放置方式很關鍵,因為隨著模型增加,FFN 的計算需求也會增加。舉個例子,在參數量達到 5,400 億的 PaLM 模型中,90% 的參數都位於其 FFN 層中。

用數學形式描述的話:每個專家網路?_? (通常是一個線性- ReLU - 線性網路)都由W_? 進行參數化,其接收相同輸入x 並產生輸出?_? (x; W_? )。同時,參數為 Θ 的閘控網路 G(通常由一個線性 - ReLU - 線性 - softmax 網路構成)得到輸出 G (x; Θ)。再根據門控函數的設計方式,可以將 MoE 層大致分為以下兩類。

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

密集 MoE

密集混合專家層是在每次迭代過程中激活所有專家網絡 {?_1, ... , ?_?}。早期的 MoE 研究普遍採用了這項策略。近段時間也有一些研究採用了密集 MoE,例如 EvoMoE、MoLE 、LoRAMoE 和 DS-MoE。圖 2a 給出了密集 MoE 層的結構。因此,密集 MoE 層的輸出可以表示成:

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

其中,?(x; Θ) 是 softmax 運算之前的閘控值。

稀疏 MoE

儘管密集混合專家的預測準確度通常更高,但其計算負載也非常高。

為了解決這個問題,Shazeer et al. 的論文《Outrageously large neural networks: The sparsely-gated mixture-of-experts layer》引入了稀疏門控MoE 層,其能在每次前向通過時僅激活選定的專家子集。此策略實現稀疏性的方式是計算 top-k 個專家的輸出的加權和,而非將所有專家的輸出聚合在一起。圖 2b 展示了這種稀疏 MoE 層的結構。

根據上述論文提出的框架,可對 2.2 式進行修改以反映稀疏門控機制:

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

這裡解釋一下:TopK (・, ?) 函數是僅保留向量原始值的前 k 項,同時將其它項設為 −∞。之後是 softmax 運算,所有 −∞ 項都會變成近似於零。超參數 k 要根據特定應用選取,常見選項是 ? = 1 或 ? = 2。加入噪音項 R_noise 是訓練稀疏門控 MoE 層的常用策略,可促進專家之間的探索並提升 MoE 訓練的穩定性。

儘管稀疏門控 G (x; Θ) 可在不增加相應計算成本的前提下顯著擴展模型的參數空間,但也會導致負載平衡問題。負載平衡問題是指各專家的負載分佈不均 —— 某些專家被頻繁使用,而另一些專家則很少被使用甚至完全不上場。

為了解決這個問題,每個 MoE 層都要整合一個輔助損失函數,其作用是敦促每批次的 token 被均勻分配給各個專家。從數學形式描述來看,先定義一個包含 T 個 token 的查詢批次 B = {x_1 , x_2, ... , x_? } 以及 N 個專家。則對於其的輔助負載平衡損失定義為:

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

其中 D_i 是分配給專家 i 的 token 比例,P_i 是分配給專家 i 的門控機率比例。為了確保該批次在 N 個專家之間均勻分佈,應最小化負載平衡損失函數 L_{load-balancing}。當每位專家都被分配了同等數量的token D_? = 1/? 和同等的門控機率P_? = 1/? 時,即達到最優條件:

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

此時各專家的負荷達到平衡。

在後文中,除非另有明確說明,則「MoE」這個術語單指「稀疏 MoE」。

混合專家的分類

為了幫助研究者在大量採用MoE 的LLM 研究中找到目標,該團隊開發了一套分類方法,根據三個方面對這些模型進行了分類:演算法設計、系統設計和應用。

圖 3 展示了這種分類法以及一些代表性研究成果。

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

下面將全面深入地介紹各類別的情況。

混合專家的演算法設計

門控函數

門控函數(也被稱為路由函數或路由器)是所有MoE 架構的基礎組件,其作用是協調使用專家計算以及組合各專家的輸出。

根據每個輸入的處理方法,該閘控可分為三種類型:稀疏式、密集式和 soft 式。其中稀疏式門控機制是激活部分專家,而密集式是激活所有專家,soft 式則包括完全可微方法,包括輸入 token 融合和專家融合。圖 4 展示了 MoE 模型中使用的各種閘控函數。

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

  • 稀疏式

稀疏門控函數在處理各個輸入 token 時會激活被選中的部分專家,這可被視為一種形式的條件計算。

門控函數可以實現多種形式的門控決策,例如二元決策、稀疏或連續決策、隨機或確定性決策;其已經得到了深入的研究,可使用各種形式的強化學習和反向傳播來訓練。

Shazeer et al. 的研究《Outrageously large neural networks: The sparsely-gated mixture-of-experts layer》開創性地提出了一種使用輔助負載平衡損失的可微分啟發式方法,其中可根據選取概率對專家計算的輸出進行加權。這為門控過程引入了可微性,由此可透過梯度來引導門控函數的最佳化。

後來,這個典範便成了 MoE 研究領域的主導典範。由於此方法會針對每個輸入 token 選擇專家,因此可將其視為 token 選擇式閘控函數。

以下為這一小節的要點,詳見原論文:

  • token 選擇式門控

  • 用於token 選擇式門控的輔助損失專家

  • 用於token 選擇式門控的輔助損失專家

  • 用於token 選擇式門控的輔助損失

  • token 選擇式門控的其它進展

  • 不可訓練的token 選擇式門控

演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

密集MoE是指處理每個輸入時都啟動所有專家。

    雖然稀疏 MoE 有效率方面的優勢,但密集 MoE 方向仍在不斷迎來創新。尤其值得一提的是,密集活化在 LoRA-MoE 微調方面表現得很好,且 LoRA 專家的計算開銷相對較低。這種方法能夠有效且靈活地整合多個 LoRA 以完成各種下游任務。這能保留原始預訓練模型的生成能力,同時保留各個 LoRA 針對各個任務的獨特特性。

    • soft 式

    對稀疏 MoE 來說,一大基本離散最佳化難題是如何決定為每個 token 分配哪些合適的專家。為了確保專家能平衡地參與並儘可能減少無分配 token,這通常必須啟發式的輔助損失。在涉及分佈外資料的場景(例如推理批次小、有全新輸入或遷移學習)中,這個問題尤其顯著。

    類似於密集 MoE,soft MoE 方法在處理每個輸入時也會使用所有專家,從而維持完全可微性,進而避免離散專家選擇方法的固有問題。 soft MoE 與密集 MoE 的不同在於前者會透過對輸入 token 或專家進行門控加權的融合來緩解運算需求。

    專家

    這一節會介紹 MoE 框架內專家網路的架構,並會討論協調這些專家的激活的門控函數。

    • 網路類型

    自從 MoE 被整合到 Transformer 架構中以來,其通常會取代這些模型中的前向網路(FFN)模組。通常來說,MoE 層中的每個專家都會複製其替換的 FFN 的架構。

    這種將 FFN 用作專家的範式到現在依然是主流,但人們也對此做了不少改進。

    • 超參數

    稀疏MoE 模型的規模由幾個關鍵超參數控制,包括:

    • 每個MoE 層的專家數量

    • 每個MoE 層的專家數量
    • 層在整個模型中的放置頻率

    這些超參數的選擇至關重要,因為它會深刻影響模型在各種任務中的性能和計算效率。因此,要根據特定的應用要求和計算基礎設施來選擇最佳超參數。表 2 給出了一些使用 MoE 的模型的配置。 演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

    另外,表 3 列舉了一些近期的開源模型的參數數量和基準性能。 演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

    • 激活函數

    基於密集 Transformer 架構構建的稀疏 MoE 模型採用了與 BERT、T5、GPT 和 LLAMA 等領先的密集 LLM 類似的激活函數。激活函數已經從 ReLU 發展了 GeLU、GeGLU、SwiGLU 等更先進的選擇。

      這一趨勢也擴展到了 MoE 模型的其它組件,它們經常整合均方根層歸一化(RMSNorm)、分組查詢注意力(GQA)和旋轉位置嵌入(RoPE)等技術。
    • 共享專家

    DeepSpeed-MoE 創新性地引入了殘差MoE(Residual-MoE)架構,其中每個token 都由一個固定專家外加一個門控選擇的專家進行處理,實現了每一層都有兩個專家參與處理,同時也不會讓通訊成本超過top-1 門控方法。這個方法是把門控選擇的 MoE 專家當成固定密集 FFN 的糾錯輔助。

    NLLB 中使用的條件式 MoE 路由(CMR/Conditional MoE Routing)也採用了類似的方法,將密集 FFN 和 MoE 層的輸出組合起來使用。

    將固定 FFN 和稀疏 MoE 整合起來的範式通常被稱為共享專家,如圖 5b 所示。 演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

    近期有 DeepSeekMoE、OpenMoE、Qwen1.5-MoE 和 MoCLE 等模型採用此範式,顯示正在成為一種主流配置。不過 DeepSeekMoE 和 Qwen1.5-MoE 採用了多個共享專家,而不是單一。

    混合參數高效率型專家

    參數高效率型微調(PEFT)是一種提升微調效率的方法。簡單來說,PEFT 就是在微調時只更新基礎模型的一小部分參數。

    PEFT 很成功,但由於其可訓練的參數有限以及可能存在的災難性遺忘問題,該方法難以用於需要泛化到多個任務的情況。

    🎜為了緩解這些局限,混合參數高效型專家(MoPE)誕生了,其將 MoE 框架與 PEFT 整合到了一起。 MoPE 整合了 MoE 的門控機制與多專家架構,同時每個專家都使用了 PEFT 技術進行建置。這種巧妙的組合能大大提升 PEFT 在多任務場景中的表現。此外,由於使用了 PEFT 來建立專家,因此 MoPE 使用的參數也更少,資源效率比傳統 MoE 模型高得多。 🎜

    MoPE 融合了 MoE 的多任務特性與 PEFT 的資源效率,是一個極具前景的研究方向。圖 6 根據在 Transformer 模型架構中的位置對 MoPE 進行了分類。至於 MoPE 方面更詳細的研究成果介紹,請參考原論文。

    演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

    訓練和推理方案

    混合專家在進步發展,相關的訓練和推理方案也在進步發展。

    初始的訓練和推理方案需要從頭開始訓練 MoE 模型,直接採用訓練的模型配置來執行推理。

    但現在,MoE 模型的訓練和推理方面已經出現了許多新範式,包括組合密集模型和稀疏模型的優勢實現取長補短。

    演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

    圖7 展示了與MoE 相關的訓練和推理方案,可以看到新出現的方案可分為三類:

    • 密集到稀疏:從密集模型訓練開始,逐步過渡到稀疏MoE配置;

    • 稀疏到密集:涉及將稀疏MoE 模型降格為密集形式,這有利於將推理實現為硬體形式;

    • 專家模型融合:將多個預訓練密集專家模型整合成一個統一的MoE 模型。

    MoE 的衍生技術

    混合專家(MoE)啟發了許多不同的變體技術。舉個例子,Xue et al. 的論文《Go wider instead of deeper》提出了模型寬度增大的WideNet,其做法是將前向網路(FFN)替換成MoE 層,同時維持Transformer 層上的共享可訓練參數,但歸一化層除外。

    另外還有Tan et al. 提出的SYT(稀疏通用Transformer)、Antoniak et al. 提出的MoT(混合token)、Choi et al. 提出的SMoP(稀疏混合提詞)、Chen et al. 提出的Lifelong-MoE、Raposo et al. 提出的MoD(混合深度)等。

    總結一下,MoE 衍生技術的發展揭示了一個趨勢:MoE 的功能越來越多,越來越能適應不同的領域。

    混合專家的系統設計

    混合專家(MoE)雖然能增強大型語言模型的能力,但也帶來了新的技術挑戰,因為其具有稀疏且動態的計算負載。

    GShard 引入了專家並行化(expert parallelism),可根據專家能力的負載平衡限制來調度切分後的局部 token,從而實現並行的門控和專家計算。此範式已成為促進 MoE 模型高效擴展的基礎策略。我們可以將該方法視為增強版的資料並行化 ——MoE 層中的每個專家都被分配到一台不同設備,同時所有設備上都重複配備所有非專家層。

    如圖 8a 所示,專家並行化的工作流程是依序執行以下操作:閘路由、輸入編碼、All-to-All 調度、專家計算、All-to-All 組合、輸出解碼。

    演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

    一般來說,GEMM 的輸入大小需要足夠大,以便充分利用計算設備。因此,要使用輸入編碼將同一個專家的輸入 token 聚合到連續的記憶體空間中,這由閘路由中的「token - 專家映射」決定。之後,All-to-All 調度的作用是將輸入 token 分發給各設備上對應的專家。之後是專家的本地化計算。計算完成後再透過 All-to-All 組合匯總,然後解碼輸出,根據門控索引恢復原始資料的佈局。

    此外,也有研究者探索專家並行化與其它已有並行策略(例如張量、管道化、序列並行化)的協同,以提升 MoE 模型在大規模分佈式環境中的可擴展性和效率。

    圖 8 中給出了一些混合並行化範例,包括 (b) 數據 + 專家 + 張量並行化、(c) 數據 + 專家 + 管道並行化、(d) 專家 + 張量並行。

    需要認識到,計算效率、通訊負載、記憶體佔用之間存在複雜的相互作用,分散式並行化策略的選擇會對其產生影響,並且也會被不同的硬體配置影響。因此,在部署用於實際應用的策略時,必須細緻地權衡考慮並針對具體場景進行調整。

    之後,團隊分計算、通訊和儲存三大板塊介紹了 MoE 模型開發所面臨的系統設計難題以及解決這些難題的研究成果,詳見原論文。表 4 給出了開源 MoE 框架的概況。

    演算法、系統和應用,三個視角全面讀懂混合專家(MoE)

    混合專家的應用

    Dalam bidang model bahasa besar (LLM) yang kini dikuasai oleh Transformer, paradigma pakar campuran (MoE) sangat menarik kerana ia dapat meningkatkan keupayaan model dengan ketara tanpa memperkenalkan keperluan pengiraan yang berlebihan kepada peringkat latihan dan inferens. Teknologi jenis ini boleh meningkatkan prestasi LLM dengan ketara pada pelbagai tugas hiliran, malah mencipta beberapa aplikasi AI yang mengatasi tahap manusia.

    Terdapat khabar angin bahawa GPT-4, yang begitu berkuasa, mungkin juga menggunakan beberapa jenis seni bina KPM yang terdiri daripada 8 pakar dengan 220 bilion parameter, dilatih mengenai set data dan tugas yang pelbagai, serta menggunakan 16 lelaran proses penaakulan. Untuk butiran lanjut tentang khabar angin ini, sila rujuk laporan di tapak ini ""Pendedahan" muktamad: Seni bina model GPT-4, kos latihan dan maklumat set data telah didedahkan".

    Jadi, tidak hairanlah KPM berkembang pesat dalam pemprosesan bahasa semula jadi, penglihatan komputer, sistem pengesyoran dan aplikasi berbilang modal.

    Aplikasi ini pada asasnya memerlukan penggunaan pengiraan bersyarat untuk meningkatkan bilangan parameter model dengan banyak untuk meningkatkan prestasi model di bawah kos pengkomputeran tetap, atau untuk melaksanakan pemilihan pakar dinamik melalui mekanisme gating untuk mencapai pembelajaran berbilang tugas yang cekap .

    Pasukan juga memperkenalkan aplikasi wakil KPM dalam bidang berbeza ini, yang boleh membantu pembaca memahami cara menggunakan KPM untuk tugasan tertentu. Lihat kertas asal untuk butiran.

    Cabaran dan Peluang

    Pakar hibrid, berkuasa, mengurangkan kos dan meningkatkan prestasi. Walaupun prospeknya baik, masih ada cabaran.

    Dalam bahagian ini, pasukan menyelesaikan cabaran utama yang berkaitan dengan KPM dan menunjukkan hala tuju penyelidikan masa depan yang menjanjikan untuk mencapai keputusan penting. Cabaran dan arahan penyelidikan ini disenaraikan secara ringkas di bawah, dan sila lihat kertas asal untuk butiran lanjut.

    • Melatih kestabilan dan pengimbangan beban

    • Skalabiliti dan komunikasi overhed

    • Pakar pengkhususan dan kerjasama

    • Kecekapan pengkomputeran dan

    • penghapusan dan keteguhan

    • Kebolehtafsiran dan ketelusan

    • Seni bina pakar yang optimum

    • Integrasi dengan rangka kerja sedia ada

    Bacaan lanjutan: laporan berkaitan KPM

    Asas:

    jarang model berbilang modal MoE setanding LLA1-3BVA dengan ketara, model besar LLa5BVA yang setanding dengan LLa15B - 7B

以上是演算法、系統和應用,三個視角全面讀懂混合專家(MoE)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn