多專家模型 (MoE) 大型語言模型 (LLM) 架構最近出現了,無論是在 GPT-4 等專有 LLM 中,還是在開源版本的社區模型中,如 Mistral Mixtral 8x7B。Mixtral 模型的強勁相對性能引起了極大的興趣,并引發了許多關于 MoE 及其在 LLM 架構中使用的問題。那么,什么是 MoE,為什么它很重要?
多專家模型是神經網絡的架構模式,它將層或運算 (例如線性層、MLP 或注意力投影) 的計算拆分為多個“專家”子網絡。這些子網絡各自獨立執行自己的計算,并組合其結果以創建 MoE 層的最終輸出。MoE 架構可以是密集的,這意味著每個專家都用于每個輸入,也可以是稀疏的,這意味著每個輸入都使用一個專家子集。
本文主要探討MoE在LLM架構中的應用。如需了解MoE在其他領域的應用,請參閱使用稀疏的專家混合模型擴展視覺、適用于多語言ASR流式傳輸的專家級混合轉換器以及FEDformer:用于長期序列預測的頻率增強型分解轉換器。
LLM 架構領域的專家齊聚一堂
本節提供一些背景信息,并重點介紹在 LLM 架構中使用 MoE 的優勢。
模型容量
模型容量可以定義為模型能夠理解或表達的復雜程度。通常情況下,(經過充分訓練的) 具有更多參數的模型過去證明具有更大的容量。
如何將 MoE 分解為容量?參數較多的模型通常具有更大的容量,而 MoE 模型可以通過將模型的各個層替換為 MoE 層 (其中專家子網絡的大小與原始層相同),從而有效地增加相對于基礎模型的容量。
研究人員已經對MoE模型的準確性進行了調查,該模型使用與全密集模型相似數量的標記進行訓練(MoE大小:E+P參數與全密集大小相比:EP參數)。盡管這仍然是一個活躍的研究領域,但全密集模型的表現普遍優于MoE模型。有關更多詳細信息,請參閱適用于路由語言模型的統一擴展定律。
這就提出了一個問題,為什么不直接使用密集模型?這里的答案在于稀疏 MoE,具體來說,稀疏 MoE 在每個使用的參數上都更高效。
請考慮 Mixtral 8x7B 是一個使用 8 位專家 MoE 的模型,其中每個令牌僅使用 2 位專家。在這種情況下,在模型中單個令牌的任何給定前向傳遞中,批量中任何給定令牌使用的參數數量都要低得多 (共使用 460 億個參數,其中使用 120 億個參數)。與使用所有 8 位專家或類似大小的全密集模型相比,這需要的計算量更少。給定在訓練中將令牌分批在一起,則使用大多數 (如果不是所有) 專家。這意味著在此模式中,與相同大小的密集模型相比,稀疏 MoE 使用的計算量較少,且內存容量相同。
在一個 GPU 小時數備受追逐、時間和成本高昂的世界里,大規模訓練全密集模型顯得尤為昂貴。據報道,Meta 訓練的 Lama 2 模型集(全密集)耗費了 330 萬 NVIDIA A100 預訓練的 GPU 小時數。具體來說,在 1024 個 GPU 上以全容量運行 330 萬個 GPU 小時,不包括任何停機時間,大約需要 134 天。這還不包括任何實驗、超參數掃描或訓練中斷。
MoE 在降低成本的同時訓練更大的模型
MoE 模型通過提高每個權重的觸發器效率來降低成本,這意味著在具有固定時間或計算成本限制的機制下,可以處理更多令牌,并可以進一步訓練模型。鑒于具有更多參數的模型需要更多樣本才能完全收,這基本上意味著我們可以在固定預算下訓練比密集模型更好的 MoE 模型。
MoE 可降低延遲
在大量提示和批量(其中計算是瓶頸)的情況下,MoE 架構可用于降低第一個令牌的服務延遲。隨著用例(例如 檢索增強生成 (RAG) 和自主智能體可能需要多次調用模型,從而增加單次調用延遲。
MoE 架構的工作原理是什么?
MoE 模型有兩個關鍵組件。首先,構成混合模型的“專家”子網絡,用于密集和稀疏 MoE.其次,稀疏模型使用路由算法來確定哪些專家會處理哪些標記。在密集和稀疏 MoE 的某些公式中,MoE 可能包含一個加權機制,用于執行專家輸出的加權平均值。在本文中,我們將重點介紹稀疏案例。
在許多已發表的論文中,MoE 技術應用于 Transformer 模塊內的多層感知器 (MLP).在這種情況下,Transformer 模塊內的 MLP 通常被一組專家 MLP 子網絡取代,這些子網絡會結合其結果,使用平均值或求和生成 MLP MoE 輸出。
研究還表明,MoE 的概念可以推廣到 Transformer 架構的其他部分。最近的論文 SwitchHead: 利用混合專家注意力加速 Transformer 建議 MoE 也可應用于投影層,這些層將輸入轉換為 Q、K 和 V 矩陣,以供注意力運算使用。其他論文則建議將條件執行 MoE 概念應用于注意力頭本身。
在特定輸入的情況下,路由網絡(或算法)用于確定哪些專家被激活。路由算法可以是簡單的(在張量平均值中統一選擇或合并),也可以是復雜的,如在采用專家選擇路由的多專家組合中所述。
在決定給定路由算法對問題的適用性的許多因素中,我們經常討論兩個核心因素:特定路由機制下的模型準確性和特定機制下的負載均衡。選擇正確的路由算法可以在準確性和觸發器效率之間進行權衡。完美的負載均衡路由算法可能會降低每個令牌的準確性,而最準確的路由算法可能會在專家之間分配不均的令牌。
許多提議的路由算法旨在最大化模型準確性,同時最小化任何給定專家提出的瓶頸。雖然 Mixtral 8x7B 使用 Top-K 算法來路由令牌,但諸如 采用專家選擇路由的多專家組合 引入概念,以確保專家不會被過度引導。這可以防止瓶頸的形成。
試驗 Mixtral 模型
在實踐中,每位專家都會學習什么?他們專注于低級語言結構 (例如標點符號、動詞、形容詞等),還是精通高級概念和領域 (例如編碼、數學、生物學和法律)?
為了進行實驗,我們使用了Mixtral 8x7B 模型,該模型包含32個順序Transformer塊,每個塊中的MLP層被替換為稀疏MoE塊,每個MoE塊包含8個專家,每個令牌只激活其中兩個專家。其他層,包括自注意力層和歸一化層,由所有令牌共享。
值得注意的是,當讀取 8x7B 的名稱時,可以想象專家是 8 個獨立的完整網絡,每個網絡都有 70 億個參數,每個令牌都由這 8 個完整網絡中的一個完全端到端處理 (圖 1)。這種設計將生成一個 8x7B=56B 的模型。

雖然這無疑是合理的設計,但并不是 Mixtral 8x7B 中使用的設計。圖 2 描述了實際設計,每個令牌都處理了 70 億個參數。請注意,令牌及其副本 (由第二專家在每層處理) 總共僅處理 129 億個參數,而不是 2x7B=14B.由于共享層的原因,整個網絡僅處理 470 億個參數,而不是 8x7B=56B 參數。

因此,每個通過網絡的令牌都必須通過類似格點的結構,Mixtral 8x7B 有 32 個 Transformer 模塊,因此總共有
可能的網絡實例化。
如果我們將每個實例化都視為“全棧專家”(處理端到端令牌的專家),是否有可能了解它們提供的專業知識?遺憾的是,由于 28%=32%是一個非常大的數字 (+2+10%=46%),它比用于訓練 LLM 的所有數據 (大多數 LLM 的數據為+3T 到 10T 令牌) 大幾個數量級,因此同一實例化很少會處理任何兩個令牌。因此,我們將研究每個層專家專門研究的是什么,而不是每個完整的專家組合。
實驗結果
我們使用大規模的多任務語言理解(MMLU)基準測試來評估模型的性能。該基準測試包括涉及57個主題的多項選擇題,涵蓋了廣泛的領域,如抽象代數、世界信仰、專業法、解剖學、天文學和商業道德等。我們記錄了第1層、第16層和第32層8位專家中每個專家的令牌專家作業。
在解析數據后,有幾項觀察值得注意。
負載均衡
得益于負載均衡,專家可以獲得均衡的負載,但最忙碌的專家仍可獲得比最忙碌的專家多 40 – 60%的令牌。

領域專家任務分配
某些領域比其他領域更能激活某些專家。
在第 32 層中,其中一個示例是抽象代數,它比其他示例更多使用專家 3 和專家 8、

另一方面,專業法領域主要激活專家 4,而相對來說使專家 3 和專家 8 靜音。

另一個引人入勝的例子是世界性的教會,專家 7 收到的令牌比專家 8 少 5 倍多。

這些實驗結果表明,專家的負載分布傾向于在不同的主題范圍內保持一致。但是,當所有樣本都完全屬于某個主題時,可能會出現很大的分布不平衡。
專家推薦的最佳令牌
圖 7 中的“cloud”(云) 一詞顯示了每位專家最頻繁處理的令牌。

按令牌劃分的首選專家
每個令牌是否都有首選專家?每個令牌似乎都有一組首選專家,如下示例所示。
令牌“:”和所有“:”令牌的專家分配在第 1 層由專家 1 和 7 處理,在第 32 層由專家 3 和 8 處理 (圖 8)。圖 9、10 和 11 顯示了各種令牌的專家分配。




總結
MoE 模型為模型預訓練吞吐量提供了明顯的優勢,支持在與密集模型相同的計算量上訓練更具表現力的稀疏 MoE 模型。這將在相同的計算預算下生成更具競爭力的模型。MoE 模型可以針對整個網絡或現有網絡中的特定層。通常,應用帶有路由的稀疏 MoE 以確保僅使用部分專家。
我們的實驗探索了令牌的分配方式以及專家之間的相對負載平衡。這些實驗表明,盡管采用了負載平衡算法,但仍然存在很大的分布不平衡,這可能會影響推理效率低下,因為一些專家提前完成工作,而另一些則過載。這是一個值得關注的積極研究領域。
您可以嘗試 Mixtral 8x7B 指令模型 以及其他 AI 基礎模型,這些模型可以在 NVIDIA NGC 目錄中找到。
想要了解更多信息?請不要錯過在NVIDIA GTC 2024舉辦的座談會,主題為Mistral AI:前沿 AI 掌握在您手中。
?