「DeepSeek-V3 技術解析」:DeepSeekMoE 原創
編者按: 為什么說 DeepSeekMoE 的“共享專家隔離”設計,既能保留通用知識又能減少冗余?傳統 MoE 的專家真的“專精”嗎?傳統 MoE 專家易“崩潰”,DeepSeekMoE 如何通過“更細粒度的專家分割”讓每個專家專注更小領域,解決負載不均衡問題?
作者巧妙地用餐廳廚師的比喻,將抽象的技術概念形象化 —— 是聘用一位熟悉多種菜系的廚師,還是聘用多位各有專長的廚師更明智?隨后,文章深入剖析了 DeepSeekMoE 的兩大創新:更細粒度的專家分割通過增加專家數量并降低單個專家的參數規模,促進了專家的專業化;共享專家隔離則通過預留部分專家處理通用知識,減少了專家間的知識冗余。實驗結果表明,在相同計算成本下,DeepSeekMoE不僅性能更優,其專家的不可替代性也更強,知識冗余度更低。
作者 | Shirley Li
編譯 | 岳揚
這是 DeepSeek-V3 系列的第二篇文章,本文將解析 DeepSeek[1,2,3] 模型的另一個關鍵架構創新:DeepSeekMoE[4]。
具體而言,本文將解釋混合專家系統(Mixture-of-Experts,MoE)的工作原理、為什么該技術在 LLMs 領域備受青睞及其面臨的挑戰。我們還將探討 expert specialization(譯者注:在 MoE 架構中,每個專家能夠獲取不重疊且聚焦的知識。) 與 knowledge sharing(譯者注:指通過門控網絡與專家模型的協同機制,使不同專家在獨立處理特定任務的同時,仍能共享底層知識或通用特征,從而提升模型的整體性能和效率。) 之間的權衡,以及 DeepSeekMoE 如何實現更優的平衡。
最精彩的部分:為了讓這些概念更直觀,本文將通過餐廳這個場景來類比解析整個系統,借助廚房中廚師的角色來闡釋 MoE 的各個要素。
本文目錄:
- 技術背景:介紹 MoE 的工作原理、優勢與面臨的挑戰,探討 expert specialization 與 knowledge sharing 之間的權衡
- DeepSeekMoE 架構:解析更細粒度的專家分割(Fine-Grained Expert Segmentation)和共享專家隔離(Shared Expert Isolation)
- 評估:通過多個有趣實驗討論 DeepSeekMoE 的性能表現
- 總結
- 參考文獻
01 技術背景
1.1 MoE(混合專家系統)在 LLM 中的應用
在 LLM(大語言模型)中,MoE 通常是指用 MoE 層替換 Transformer 模型中的 FFN(前饋神經網絡)層,如下圖所示:
圖 1. MoE 層示意圖,圖片來自 GShard 論文[5]
具體來說,左側展示的是由 N 個 Transformer 層組成的堆疊結構,每層包含一個 MHA(多頭注意力)子層和一個 FFN 子層。而右側展示的是由 N/2 個 Transformer 層組成的堆疊結構,其中下層 Transformer 的 FFN 子層被替換為 MoE 層。換言之,每隔一個 Transformer 層,其 FFN 子層就會被 MoE 層替代。實際應用中,可以按指定間隔將 FFN 替換為 MoE 層。
若進一步觀察 MoE 層,會發現它包含一個門控(Gating)操作和一組具有相同架構的 FFN(與標準 FFN 子層一致)。這些 FFN 層在 MoE 中被稱為“專家”,門控操作通過訓練學習選擇激活哪些專家來處理特定輸入。
圖 2. 包含門控操作和多個 FFN 專家的 MoE 層,圖片來自文獻[5]
MoE 的通用架構可形式化描述如下(公式編號沿用自文獻[4]):
其中:
- u^l_t 和 h^l_t 分別表示第 l 層中第 t 個 token 的輸入和輸出的隱藏狀態(hidden state)。
- FFN_i 是 N 個專家中的第 i 個專家。
- g_{i, t} 是第 t 個 token 對第 i 個專家的門控值,該值通過對 Softmax 的輸出應用 TopK 操作獲得。
- e^l_i 在公式 (5) 中常被稱為第 i 個專家的“質心(centroid)”,可通過聚合歷史上路由到該專家的所有輸入 token 計算得到:
該公式由原文作者創建
公式逐步解析(從公式 (5) 到公式 (3) 反向說明):
- 公式 (5):通過計算 u^l_t 與 e^l_i 的內積,衡量當前輸入 token 與歷史上路由到第 i 個專家的所有輸入 token 的均值的相似度。若專家 i 處理過大量與當前 token 相似的輸入,則其處理當前 token 的能力更強。隨后對結果應用 Softmax,將其轉換為概率分布。由于共有 N 個專家,每個 token 會得到N個 s_{i, t} 值。
- 公式 (4):對 s_{i, t} 值應用 TopK 操作,生成稀疏的 g_{i, t} 值。
- 公式 (3):利用稀疏的 g_{i, t} 值選擇 K 個專家來計算輸出的隱藏狀態。
換言之,對于第 t 個 token,僅會激活 N 個專家中的 K 個(通常 K 遠小于 N),導致門控值 g_{i,t} 呈現稀疏性。通過這種設計,模型的可訓練參數總量會因增加的 FFN 而上升,但前向傳播時僅激活其中一小部分參數。
這正是采用 MoE 的 LLM 在描述模型規模時常用 “總參數量XX,其中每個 token 激活 YY” 的原因 —— 例如 DeepSeek-V3 :
“模型總參數量 2360 億,每個 token 激活 210 億參數……”
那么,如果增加更多參數,MoE 有何優勢?
1.2 MoE 的優勢與面臨的挑戰
MoE 最妙的地方在于它體現了許多具有相似原理的現實場景,因此我們可以通過這些案例更直觀地理解它。
現在假設我們要為一家同時提供中餐和意大利菜的餐廳雇傭廚師,有兩種選擇:
- 選項1:雇傭一位同時精通中餐和意大利菜的廚師,這樣他/她可以獨自處理所有菜品。這類似于標準 Transformer 模型,由單個 FFN 子層處理所有輸入 token。
- 選項2:雇傭多位各有所長的廚師(比如中餐專家和意大利菜專家),再加一位主廚根據訂單內容指派擅長該菜系的廚師處理。這類似于 MoE 方法,每個廚師充當專家,主廚則作為門控機制(Gating)來選擇專家。
通過以上類比可以明顯看出,選項 2 不僅更容易招聘人才,還能保證兩種菜系都保持高水準。相比之下,要找到同時精通多種菜系的單一廚師難度極大(甚至不可能),我們可能不得不降低菜品質量要求。
回到 LLM 場景,構建 MoE 的動機部分源于“擴展假說”(scaling hypothesis),即在大規模數據上擴展 LLM 時更可能涌現出新的能力,這也是為什么我們看到現在 LLM 的規模越來越大的原因 —— 比如 GPT 模型已從 117M 參數擴展到 175B 參數。
然而并非所有人都有機會訓練如此大規模的 LLM,而 MoE 提供了一種折中方案:通過僅激活每個輸入 token 對應的少量參數,我們可以在擴大模型規模(增加模型容量)的同時,保持訓練和推理成本可控。
如文獻[4]所示,你可以訓練一個 2B 參數的模型僅激活 0.3B 參數,或訓練 16B 參數模型僅激活 2.8B 參數,甚至還可以訓練 145B 參數的模型僅激活 22.2B 參數。在每種情況下,每次僅使用總參數量的約 1/7,大大提升了訓練和推理效率。
然而,每種設計都有其局限性,并會帶來新的挑戰。就 MoE 而言,其性能高度依賴門控機制的有效性 —— 因為無法保證門控始終將每個輸入 token 路由到最優專家,且可能出現少數專家處理大部分輸入 token,而其他專家因缺乏訓練機會無法充分發揮作用的現象。 這通常被稱為"專家崩潰"(expert collapse)問題。
這還會導致其他問題,例如負載不均衡(多數 token 被路由到少數專家)和不穩定性(當 token 被路由到未經充分訓練的專家時效果欠佳)。
這就是為什么我們在 MoE 架構領域中經常能夠看到大量關于負載均衡的討論。
DeepSeekMoE 也提出了若干負載均衡策略,但本文將聚焦其核心創新點,關于無輔助損失負載均衡(auxiliary-loss-free load balancing)[8]的深入解析將在后續文章中展開。
1.3 Knowledge Specialization vs. Knowledge Sharing
在上述餐廳案例中,我們做雇傭決策時其實也在權衡 expert specialization(譯者注:在 MoE 架構中,每個專家能夠獲取不重疊且聚焦的知識。) 與 knowledge sharing(譯者注:指通過門控網絡與專家模型的協同機制,使不同專家在獨立處理特定任務的同時,仍能共享底層知識或通用特征,從而提升模型的整體性能和效率。):選項1追求通才但可能犧牲技能深度,選項2追求專精。這種權衡廣泛存在于現實場景的各類組織中(如企業、團隊等)。
在 MoE 中這種權衡同樣存在,但呈現形式更為隱晦。理論上,每個專家都應具備特定領域的專長,因為每個專家僅處理部分輸入 token;同時所有專家仍會共享部分通用知識,因為它們共享大量參數。與現實場景不同,我們很難界定每個專家的專精程度及他們掌握的通用知識范圍的邊界。
權衡 expert specialization 與 knowledge sharing 是 MoE 架構設計的關鍵考量因素,因為過度專精與過度冗余均非理想狀態。
在前一種情況下,過度專精的專家會導致訓練和推理的不穩定,任何次優的路由都可能顯著影響性能。同時這往往會造成模型容量利用率不足,因為高度專精的專家只能處理極少數 token。
在后一種情況下,若專家間掌握的知識過于相似,MoE 引入的額外參數將無法帶來成比例的容量提升,這顯然是對有限計算資源的浪費。
下一節我們將看到 DeepSeekMoE 如何實現兩者的更優平衡。
02 DeepSeekMoE 架構
DeepSeekMoE 通過兩項關鍵技術創新來平衡 MoE 中的 knowledge specialization 和 knowledge sharing,即更細粒度的專家分割(fine-grained expert segmentation)和共享專家隔離(shared expert isolation)。
圖 3. DeepSeekMoE 示意圖。圖片來自文獻[4]。
2.1 更細粒度的專家分割
DeepSeekMoE 提出更細粒度的專家分割以促進專家的專業化,提出該技術的想法非常簡單:對于每個輸入 token,如果有更多專家被激活,那么處理該 token 所需的知識就更有可能被分解并由不同專家獲取。
在前文的餐廳案例中,就類似于將每位廚師的技能進行專業化拆分,如下圖所示。最初,我們讓一位廚師負責所有中餐,另一位負責所有意大利菜。應用更細粒度的專家分割(fine-grained expert segmentation)后,每種菜系所需的技能被拆分給多個專家掌握,于是我們得到一組專精中餐的廚師和另一組專精意大利菜的廚師,每位廚師只需掌握該菜系的特定技能。
圖 4. 用餐廳案例說明(a)應用前和(b)應用更細粒度的專家分割后的對比。由原文作者供圖。
圖 3 也說明了這一點:子圖 (a) 中每個輸入 token 被路由到 N 個專家中的 2 個,而子圖 (b) 中每個 token 被路由到 2N 個專家中的 4 個。在更一般的情況下,我們可以將專家數量從 N 增加到 mN,同時將每個專家 FFN 的中間隱藏層維度降至1/m,并為每個輸入 token 激活 m 倍的專家數量。通過這種方式,(a) 和 (b) 的總體計算成本將大致保持相同。
盡管作者未對該策略的有效性提供理論證明,但他們確實設計了實驗來驗證這一思路,我們將在“評估”部分詳述。
2.2 共享專家隔離
DeepSeekMoE 提出的另一項技術是隔離部分共享專家以減少冗余,提出該技術的核心想法在于:若預留部分共享專家來學習不同任務的通用知識,可給其他專家更多的自由來剝離此類通用知識,從而減少非共享專家間的冗余。
在前文提到的餐廳案例中,這就類似于將所有廚師進一步劃分為兩組(如下圖所示):上方第一組廚師掌握刀工、火候、調味等通用烹飪技能,下方第二組廚師專注于自己的特色菜品。
例如,包餃子的師傅只需專注包捏與蒸煮餃子,無需考慮擺盤技巧;意面師傅只需鉆研意面的制作,無需學習刀工。由此減少廚師間的知識冗余。
圖 5. 基于圖 4 的餐廳案例,進一步添加共享專家隔離的示意圖。由原文作者供圖。
圖3 (c) 也展示了該策略的實現方式:選定一個專家作為共享專家(綠色高亮標記),所有輸入 token 均不經路由層(Router)直接激活該專家,同時將激活的專項專家數量從 4 個減至 3 個,使總激活專家數量與圖 3 (b) 保持相同。
綜上,DeepSeekMoE 架構可形式化表示為下圖右側公式(左側為傳統 MoE 架構作為對比):
圖 6. (左) 傳統 MoE vs. (右) DeepSeekMoE。作者根據文獻 [4] 中的公式繪制該圖。
其中:
- 式 (11) 與傳統 MoE 的式 (5) 相同
- 式 (10) 與式 (4) 類似,但此處通過 TopK 從 (mN-K_s) 個專家中選擇 (mK-K_s) 個,K_s 表示共享專家數量
- 式 (9) 將式 (3) 的第一項拆分為兩個子項,分別對應共享專家與路由專家
原文同樣未對該策略提供理論證明,但后續評估結果表明:引入共享專家既能提升性能,又能有效降低知識冗余。
03 Evaluation
正如前文所述,盡管兩項策略的直覺依據看似合理,但作者并未提供理論證明,因此我們仍需驗證:這些策略是否真能緩解 expert specialization(譯者注:在 MoE 架構中,每個專家能夠獲取不重疊且聚焦的知識。) 與 knowledge sharing(譯者注:指通過門控網絡與專家模型的協同機制,使不同專家在獨立處理特定任務的同時,仍能共享底層知識或通用特征,從而提升模型的整體性能和效率。)的沖突?其有效性程度如何?
我們主要關注三個核心問題:
- DeepSeekMoE 能否取得更好效果?
- 更細粒度的專家分割能否促進 expert specialization?其作用程度如何?
- 共享專家隔離能否減少冗余?其作用程度如何?
為解答這些問題,作者設計了系列實驗,在此有必要詳述。
3.1 DeepSeekMoE能否取得更好效果?
首先驗證該方法能否提升整體性能。作者訓練了總參數/激活參數規模相當的多個模型,并在不同任務上評估它們的性能。主要結果如下表所示(最優指標用粗體標注):
圖 7. 整體性能對比。作者根據文獻 [4] 表 1 整理。
幾點啟示:
- 藍色高亮列對比標準 Transformer(Dense)與兩種 MoE 架構(Hash Layer [6]和Switch Transformer [7]):在激活參數量相近時,MoE 架構性能顯著更優。
- 綠色高亮列進一步比較了 DeepSeekMoE 與另一種 MoE 方法 GShard [5]:在激活參數量相近時,DeepSeekMoE 性能明顯更優。
但性能提升并不直接等同于更好地平衡了 expert specialization 與 knowledge sharing 的沖突,因此仍需其他實驗驗證。
3.2 DeepSeekMoE 是否促進了專家的專業化?
直接衡量專家的專業化程度較為困難,作者轉而設計了一項反向實驗:禁用部分高優先級路由專家并觀察性能變化。
從直覺上講,專家專業化程度越高時其不可替代性越強,因此禁用高優先級路由專家應該會導致更明顯的性能下降。
更具體一點,作者在 DeepSeekMoE 和 GShard x 1.5(作為 baseline)中逐步禁用高優先級路由專家。兩種方法在未禁用專家時的 Pile loss 相當(對應下圖中禁用比例為 0 時的最左側數據點):
圖 8. 禁用高優先級路由專家時 DeepSeekMoE 與 GShard x 1.5 的 Pile loss 對比。圖片來自文獻[4]。
隨著禁用路由專家比例的增加,DeepSeekMoE 的 Pile loss 持續高于 baseline,表明其路由專家具有更強的專業性,因此更難被其他專家替代。
3.3 DeepSeekMoE 是否能夠減少知識冗余?
按照類似的思路,作者還嘗試禁用共享專家并額外激活了一個路由專家,以觀察共享專家是否可被替代。
實驗結果顯示“Pile loss 從 1.808 明顯上升,至 2.414”,這證明了共享專家學習的知識具有獨特性,而路由專家未能充分覆蓋該部分知識。換言之,路由專家具有更高專業性且冗余度更低。
04 Summary
本文通過餐廳案例進行類比,解析了 DeepSeek-V2、DeepSeek-V3 等模型的核心架構創新之一 —— DeepSeekMoE。
具體而言,本文首先介紹了通用 MoE 的工作原理、優勢及面臨的挑戰,以及 expert specialization 與 knowledge sharing 之間的權衡關系。隨后重點解析了 DeepSeekMoE 的兩大核心設計:更細粒度的專家分割(fine-grained expert segmentation)與共享專家隔離(shared expert isolation),并通過實驗驗證了其有效性。
核心結論:DeepSeekMoE 在保持與通用 MoE 架構相當計算成本的條件下,通過促進專家的專業化實現了更優效果,從而實現更高的計算效率。
參考文獻
[1] DeepSeek(??https://www.deepseek.com/)??
[2] DeepSeek-V3 Technical Report(??https://github.com/deepseek-ai/DeepSeek-V3/blob/main/DeepSeek_V3.pdf)??
[3] DeepSeek-V2: A Strong, Economical, and Efficient Mixture-of-Experts Language Model(??https://arxiv.org/abs/2405.04434)??
[4] DeepSeekMoE: Towards Ultimate Expert Specialization in Mixture-of-Experts Language Models(??https://arxiv.org/abs/2401.06066)??
[5] GShard: Scaling Giant Models with Conditional Computation and Automatic Sharding(??https://arxiv.org/abs/2006.16668)??
[6] Hash Layers For Large Sparse Models(??https://arxiv.org/abs/2106.04426)??
[7] Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity(??https://arxiv.org/abs/2101.03961)??
[8] Auxiliary-Loss-Free Load Balancing Strategy for Mixture-of-Experts(??https://arxiv.org/abs/2408.15664)??
Thanks for reading!
Hope you have enjoyed and learned new things from this blog!
About the author
Shirley Li
I am a Machine Learning Engineer working on building multi-modality models to solve real-world problems.
END
本期互動內容 ??
?文章中的餐廳廚師類比是否幫助你理解了這個概念?如果讓你用身邊的例子來解釋 DeepSeekMoE 架構,你會用什么比喻?
原文鏈接:
??https://ai.gopubby.com/deepseek-v3-explained-2-deepseekmoe-106cffcc56c1??
