MoE 分片:混合專家模型的平行化策略
閱讀順序
LLM Inference Infrastructure
下一章
尚無可用文章
在 I-00 篇中,我們列出了 LLM 推論與傳統模型服務的五項差異。前四項——可變長度運算、兩階段資源特徵、不斷增長的記憶體需求,以及快取感知路由——每一項都已經在本系列的專文中討論過了。第五項則只用一句話帶過:「部分現代 LLM 使用混合專家模型(MoE, mixture of experts)架構,不同的輸入會啟動模型的不同部分。將 MoE 模型分散部署到多張 GPU 上,所需的分片(sharding)策略與密集模型(dense model)截然不同。」
那句話刻意寫得很短,因為要真正說清楚得另外花篇幅把基礎打好。這篇就是在做這件事。讀完之後,你會明白為什麼許多正式環境中的高能力模型——包括 DeepSeek-R1、Mixtral 和 Llama 4——採用了一種與前四篇所假設的密集模型根本不同的內部架構,也會理解為什麼這種架構需要不同的策略來將運算分散到多張 GPU 上。

什麼是 MoE 模型
本系列到目前為止討論的模型都是密集模型。在密集模型中,每個參數都參與每次前向傳播。當一個 token 通過一個 transformer 區塊時,它會依序流過注意力層(attention layer)和前饋層(feed-forward layer)。兩層中的每一個權重都會參與每個 token 的運算,沒有例外。
混合專家模型改變的是其中一個部分。注意力層保持不變——每個 token 仍然通過它。但前饋層被替換成一個 MoE 層:由 N 個獨立的前饋網路(也就是專家,expert)和一個小型路由器(router,也稱為門控網路)組成。路由器負責決定每個 token 該使用哪些專家。
路由器本身是一個透過訓練學到的線性層,它以 token 的表徵作為輸入,為 N 個專家各產生一個機率分數。只有分數最高的 top-k 個專家會被啟動——其餘的直接跳過。被選中專家的輸出會依路由器給出的分數進行加權組合,結果再傳入下一層。
這就是所謂的稀疏啟動(sparse activation)。模型有 N 個專家前饋網路,但每個 token 只使用其中 k 個。假設 N 是 8、k 是 2,每個 token 啟動 25% 的專家容量;假設 N 是 256、k 是 8,每個 token 大約啟動 3%。其餘的專家對該 token 完全不參與——系統不會讀取它們的權重、不會為它們執行運算、也不會產生任何輸出。
這個架構最初出現在 Shazeer et al. 的 "Outrageously Large Neural Networks"(2017)中,該論文引入了稀疏門控的混合專家層。後來 Fedus et al. 的 Switch Transformers(2022)將路由簡化為 top-1——每個 token 只選一個專家——並展示了 MoE 可以擴展到兆級參數的模型,同時實現 7 倍的預訓練加速。這些都是研究上的重要里程碑,但對正式環境產生實際影響則是更後來的事了。
這裡有一點需要補充說明:專家不是完整的模型。每個專家是一個前饋網路——通常是兩個線性變換中間夾一個激活函數(activation function)——存在於單一 transformer 區塊之內。所有專家共用相同的注意力層、嵌入層和輸出頭。所謂「8 專家的 MoE 模型」,不是 8 個獨立的模型在協作,而是一個模型,只不過每個區塊有 8 條可替換的前饋路徑,由路由器來選擇。
總參數量與活躍參數量
稀疏啟動帶來了一個在密集模型中不存在的區別:總參數量(total parameters)與活躍參數量(active parameters)的差異。
以 Mixtral 8x7B 為例。這個模型每個 MoE 層有 8 個專家,採用 top-2 路由。總參數量為 467 億——這是所有專家、所有注意力層和所有共用元件的權重加總。但因為每個 token 只啟動 8 個專家中的 2 個,每個 token 的活躍參數量只有 129 億。換句話說,模型佔據的是 467 億參數的記憶體空間,卻只執行相當於 129 億參數模型的運算量。
規模再放大來看,這個比例更加懸殊。DeepSeek-V3 每個 MoE 層有 256 個路由專家加上 1 個共用專家,採用 top-8 路由。總參數量:6,710 億。每個 token 的活躍參數量:370 億。模型需要 6,710 億參數的記憶體空間,但每個 token 的運算成本相當於一個 370 億的密集模型——大約只有 5.5% 的模型參與任何單一 token 的前向傳播。
這個區別——總參數量決定記憶體成本,活躍參數量決定運算成本——是本文最核心的概念。後面所有的服務決策都是這個落差的結果。
為什麼簡單複製行不通
在 I-01 到 I-04 篇中,我們假設模型可以跨 GPU 複製:把完整模型拷貝到每張 GPU 上,每份模型副本(model replica)獨立處理請求。對密集模型來說,這行得通——每份副本上的每個參數都會被每個 token 用到,記憶體成本因所帶來的運算能力而顯得合理。
但對 MoE 模型來說,複製就很浪費了。把 Mixtral 8x7B 複製到 4 張 GPU 上,每張 GPU 都持有全部 467 億參數。可是每張 GPU 上的每個 token 只啟動其中 129 億。剩下的 338 億參數——那 6 個未啟動的專家——白白佔著 GPU 記憶體卻毫無貢獻。跨 4 張 GPU,你總共載入了 1,868 億參數,但在任何時刻只有 516 億是活躍的。每張 GPU 上每個 token 都有七成二的專家權重在閒置。
以 DeepSeek-V3 來看,浪費更加明顯。每份副本持有 6,710 億參數,但每個 token 只使用 370 億。每張 GPU 上有九成四的專家權重閒置。那些閒置的記憶體原本可以拿來存放更多請求的 KV 快取(KV cache),或者透過更聰明的分配策略,根本就不需要佔用這麼多。
歸根究柢,問題出在記憶體擴展與運算擴展之間的不匹配。記憶體隨總參數量擴展(所有專家都必須載入,因為路由器可能選擇其中任何一個)。運算隨活躍參數量擴展(每個 token 只有 k 個專家實際執行)。複製方式在每張 GPU 上付出了完整的記憶體代價,卻只換到一小部分的運算效益。
複製注意力、分片專家的策略
解法其實可以直接從問題本身推導出來。注意力層和專家層的存取模式不同,所以應該用不同的方式來分配。
注意力層處理每一個 token。無論路由器怎麼決定,序列中的每個 token 都會通過相同的注意力運算。注意力權重必須存在於每一張處理 token 的 GPU 上。複製是注意力層的正確策略,因為每個被複製的權重確實都會被每個 token 用到。
專家層就不一樣了——它是稀疏啟動的。每個專家只處理路由器分配給它的 token。在一個有 8 個專家、採用 top-2 路由的模型中,每個專家平均只處理大約 25% 的 token。沒有理由讓每張 GPU 持有所有專家——其中大多數根本不會被該 GPU 正在處理的 token 用到。
高效的做法是:將注意力層複製到所有 GPU 上,並將專家層分片(sharding),讓每張 GPU 只持有一部分專家。以最簡單的情形來說,8 個專家分布在 8 張 GPU 上,每張 GPU 持有完整的注意力層(複製的)加上恰好一個專家(分片的)。如此一來,每張 GPU 上的每一個參數都被頻繁使用,沒有東西閒置。
借用一位業界工程師的說法:這不像是有 8 份不同的模型副本,而是一個大型模型,內部帶有路由機制。所有 GPU 共同持有完整模型,但沒有任何一張 GPU 持有全部。Token 在本地 GPU 上流經複製的注意力層,然後被路由到路由器選定的專家所在的遠端 GPU。
專家平行化詳解
這種分配策略有個專門的名稱:專家平行化(expert parallelism)。要理解它的獨特之處,可以先和密集模型常用的兩種平行化策略做對比。
張量平行化(tensor parallelism)將單一層切分到多張 GPU 上。每張 GPU 持有每一層的一個切片,所有 GPU 協同完成相同的運算。每一層結束後,GPU 透過一個 allreduce 操作同步各自的部分結果——每張 GPU 把自己的輸出發送給其他所有 GPU,最終大家都得到相同的合併結果。通訊模式是靜態且可預測的:無論輸入資料是什麼,每一層之後都會執行相同的 allreduce。這種同步開銷可佔到端對端延遲的 30%。
管線平行化(pipeline parallelism)將模型切分成多個循序階段,每個階段分配給不同的 GPU。GPU 1 持有第 1 到 20 層,GPU 2 持有第 21 到 40 層,以此類推。資料依序流過管線:GPU 1 處理完後把結果傳給 GPU 2,GPU 2 處理下一組層後再傳給 GPU 3。通訊模式同樣是靜態且可預測的:資料始終以相同的方向、通過相同的 GPU 序列流動。
專家平行化則有根本性的不同,因為它的通訊模式是動態的、取決於資料內容。專家分布在各張 GPU 上,路由器在執行時——根據實際的 token 表徵——決定每個 token 需要哪個專家。不同的 token 可能路由到不同的 GPU,不同的查詢可能啟動專家池中完全不同的子集。系統無法提前預測哪些 GPU 會跟哪些 GPU 通訊,因為這完全取決於路由器為每個 token 算出的結果。
實現這一點的通訊原語稱為全對全通訊(all-to-all communication):每張 GPU 可以根據路由決策向任何其他 GPU 發送 token,並從任何其他 GPU 接收 token。這個全對全模式在每個 MoE 層出現兩次——一次是將 token 分派到持有其啟動專家的 GPU(分散階段),一次是將結果送回原始 GPU(收集階段)。根據 NVIDIA 的測量,即使在配置良好的叢集上,全對全通訊可佔端對端推論延遲的 10-30%。在跨多節點的訓練工作負載中,甚至可佔總時間的 50-60%。
這裡的關鍵取捨在於:張量平行化和管線平行化的通訊是靜態、可預測的,可以提前優化。專家平行化的通訊則是動態且不可預測的,取決於流經模型的資料。這使得專家平行化更難優化,但它特別適合 MoE 架構,因為在稀疏啟動的模式下,靜態平行化策略反而造成浪費。
動態 token 路由
接下來逐步走過單一 MoE 層內的路由流程。
步驟一:共用注意力。 所有 token 在本地 GPU 上通過注意力層。這部分運算在每張 GPU 上是相同的——注意力權重是複製的,所以每張 GPU 都能獨立完成任何 token 的注意力計算。此時 token 尚未分流。
步驟二:路由器評分。 路由器取得每個 token 經注意力層處理後的表徵,為所有 N 個專家評分。以一個有 8 個專家的模型為例,路由器為每個 token 產生 8 個分數,再經過一個 softmax 轉換成機率分布,然後選出分數最高的 top-k 個專家。
步驟三:分派(全對全散佈)。 Token 被發送到持有其啟動專家的 GPU 上。假設一個 token 需要專家 5,而專家 5 在 GPU 5 上,那麼該 token 的資料就從處理其注意力的那張 GPU 傳輸到 GPU 5。這是第一個全對全通訊步驟——token 根據路由決策,從來源 GPU 散播到各自的目標 GPU。
步驟四:專家運算。 每張 GPU 處理到達其本地專家的 token。GPU 5 處理所有被路由到專家 5 的 token,不管那些 token 來自哪張 GPU。這就是標準的前饋運算——和密集模型會做的相同兩個線性變換,只不過只套用在分配給這個專家的 token 子集上。
步驟五:收集(全對全收集)。 結果從專家 GPU 送回原始 GPU。GPU 5 把每個 token 的輸出送回該 token 注意力計算所在的 GPU。
步驟六:組合。 在原始 GPU 上,來自 top-k 個專家的輸出以路由器給出的機率分數進行加權組合。假設一個 token 以 0.6 和 0.4 的分數啟動了專家 2 和專家 5,組合後的輸出就是 60% 來自專家 2、40% 來自專家 5。這個組合結果傳入下一個 transformer 區塊。
以上流程在模型的每一個 MoE 層都會重複。一個有 60 個 MoE 層的模型會執行 60 輪路由、分派、專家運算和收集——每層兩次全對全通訊,也就是每次前向傳播共 120 次 GPU 間通訊事件。
實際範例:兩筆查詢通過 MoE 路由
回到主系列的旅遊小助理。假設它使用一個 MoE 模型,每個 MoE 層有 8 個專家,top-2 路由,部署在 8 張 GPU 上。每張 GPU 持有完整的複製注意力層加上一個專家:GPU 1 持有專家 1、GPU 2 持有專家 2,以此類推。
查詢 A——飯店空房:
Show me wheelchair-accessible hotels in Kyoto under $200/night with onsen access.
查詢的 token 通過複製的注意力層。路由器為所有 8 個專家評分,選出專家 2 和專家 5 作為 top-2。Token 透過全對全通訊分派到 GPU 2(持有專家 2)和 GPU 5(持有專家 5)。每個專家處理路由到它的 token。結果收集回原始 GPU。來自專家 2 和專家 5 的加權輸出組合後傳入下一層。
查詢 B——航班比較:
Compare direct flights from Tokyo to Osaka on April 15, sorted by departure time.
相同的注意力運算、相同的複製權重、相同的 GPU。但路由器選的是不同的專家:專家 1 和專家 4。Token 分派到 GPU 1 和 GPU 4。不同的查詢,啟動了不同的 GPU。
從這個對比就能看出核心差異:注意力路徑對兩筆查詢來說是相同的(每個 token 通過每張 GPU 的複製注意力),但專家路徑取決於查詢內容(路由器選了不同的專家,就會啟動不同的 GPU)。在複製策略下,所有 8 張 GPU 會持有全部 8 個專家,而每張 GPU 上每筆查詢都有 6 個專家閒置。在專家平行化策略下,每張 GPU 只持有一個專家,而那個專家處理來自整個系統的 token。
關於專家標籤補充一點:本範例使用「結構化資料」或「旅遊領域」之類的簡稱作為教學用途的專家標籤。實際上,專家的專業化是在訓練過程中自然湧現的——不一定對應到人類可理解的類別。研究顯示專家有時確實會發展出可辨識的專業分工,但這是實證觀察到的現象,不是設計上的保證。
當前 MoE 格局
MoE 不只是學術上的新奇概念。截至 2026 年初,它已是先進模型的主流架構。
DeepSeek-V3(2024 年 12 月):總參數量 6,710 億,每 token 活躍 370 億。每個 MoE 層有 256 個路由專家加上 1 個共用專家。Top-8 路由。使用無輔助損失(auxiliary-loss-free)的負載平衡(load balancing)策略。
DeepSeek-R1(2025 年 1 月):與 DeepSeek-V3 相同的 MoE 架構(總計 6,710 億,活躍 370 億),應用於以強化學習訓練的推理導向模型。這說明 MoE 不僅適用於標準語言建模,也適用於推理密集型工作負載。
Mixtral 8x7B 與 8x22B(2024 年 1 月):總計 467 億,活躍 129 億(8x7B)。每層 8 個專家,top-2 路由。這是第一個被廣泛採用的開源 MoE 模型,在基準測試中與 Llama 2 70B 匹敵甚至超越,同時推論速度顯著更快。
Llama 4 Scout(2025 年 4 月):總參數量 1,090 億,活躍 170 億。每層 16 個專家,top-1 路由。這是 Meta 的第一個 MoE 架構,標誌著 Llama 家族告別密集模型。
Llama 4 Maverick(2025 年 4 月):總參數量約 4,000 億,活躍 170 億。每層 128 個專家。與 Scout 相同的活躍參數量,但專家數量是 8 倍,以相同的每 token 運算成本提供更大的模型容量。
GPT-4(2023 年 3 月):常在業界評論中被討論為可能採用 MoE 的系統,但 OpenAI 並未正式確認其架構。GPT-4 的 MoE 說法應視為傳聞,而不是架構事實。
即使不依賴未確認模型,趨勢也已經相當明確。NVIDIA 報告指出,推論基準測試中排名最前的開源模型使用 MoE 架構,Meta、Mistral、DeepSeek 等主要模型建構者也已發布 MoE 系統。從 2017 年的研究提案到成為正式環境的主流選擇,這個架構花了不到八年。
背後的原因就在於總參數量與活躍參數量之間的落差。MoE 讓模型建構者在擴展容量——也就是編碼在權重中的知識和能力總量——的同時,不必按比例擴展每個 token 的推論運算成本。一個推論運算量相當於 370 億模型的 6,710 億參數模型,在產品經濟性上遠優於一個每個 token 都需要 6,710 億參數運算量的 6,710 億密集模型。
權衡與失敗模式
MoE 並非在所有情況下都比密集架構好。它的好處伴隨著正式環境中不可忽視的代價。
負載不平衡。 如果路由器持續把大多數 token 送到同幾個專家,那些 GPU 就成為瓶頸,其他 GPU 則處於低度利用狀態。一個「熱門」專家讓一張 GPU 過載,其他七張卻閒著。結果就是延遲波動增大、吞吐量下降。訓練時的輔助損失和推論時的容量限制可以緩解這個問題,但負載不平衡至今仍是一個需要持續應對的工程挑戰。
全對全通訊開銷。 專家平行化在每個 MoE 層需要兩次全對全通訊。在 GPU 間頻寬有限的叢集上——特別是當專家分布在不同節點,而節點間只能透過較慢的網路互連(而非高速的節點內連結)相連時——這種通訊開銷可能主導推論延遲,把稀疏啟動省下來的運算量又吃回去。
記憶體開銷。 儘管啟動是稀疏的,所有專家都必須載入 GPU 記憶體。路由器可以將任何 token 分配給任何專家,因此沒有任何專家可以安全地卸載。記憶體需求隨總參數量擴展,而非活躍參數量。專家平行化將這個成本分攤到各張 GPU 上,但整體記憶體需求並不會因此減少。
硬體相關的策略選擇。 即使是 MoE 模型,專家平行化也不一定是最佳選擇。舉例來說,AMD 的 ROCm vLLM MoE Playbook 就建議在單節點 MI300X 部署中使用張量平行化而非專家平行化,原因在於該硬體的 XGMI 頻寬特性。最佳平行化策略取決於專家數量、GPU 數量、互連拓撲及其頻寬。實務上,大型部署通常會同時結合專家平行化、張量平行化和管線平行化——這屬於超出本文範疇的混合策略。
本文不涵蓋的內容
本文探討的是 MoE 模型如何部署和服務,不涉及 MoE 模型如何訓練。輔助負載平衡損失、專家容量因子、訓練時的 token 丟棄,以及 MoE 微調技巧都屬於訓練階段的範疇——它們影響模型的行為,但不直接決定已訓練好的模型如何部署推論。
本文也不是在教如何建構 MoE 推論引擎,而是在解釋 vLLM 和 SGLang 這類引擎遇到 MoE 模型時會做什麼,以及為什麼密集模型的預設服務策略不夠用。目標是架構層面的理解,不是實作細節。
最後,本文不涵蓋進階的多維度平行化——也就是在單一部署中同時結合專家平行化、張量平行化、管線平行化和資料平行化。尖端規模的正式系統普遍使用這些組合策略。本文引入的概念——哪些元件該複製、哪些該分片、為什麼通訊模式不同——是理解那些更複雜配置的基礎。
完整的基礎設施全貌
這是基礎設施系列的最後一篇。跨越六篇文章,我們從一次 API 呼叫出發,追蹤了讓正式 LLM 推論得以運作的完整服務堆疊。
在 I-00 中,我們打開了整條流程:注意力計算 token 之間的關係、KV 快取儲存結果、預填充與解碼有相反的硬體瓶頸,以及 GPU 是處於競爭下的共享資源。在 I-01 中,我們處理了批次問題:連續批次處理在迭代層級排程,讓請求可以獨立進出 GPU,不必等待靜態批次中最慢的請求。在 I-02 中,我們處理了記憶體問題:分頁式 KV 快取管理從作業系統的虛擬記憶體借鑑概念,消除了浪費 60-80% 快取容量的碎片化。在 I-03 中,我們拆開了兩個階段:預填充-解碼解耦讓每個階段在與其瓶頸匹配的硬體上運行,因為一個運算受限的階段和一個記憶體頻寬受限的階段不應該爭奪同一資源。在 I-04 中,我們讓路由變得聰明:前綴感知排程將請求導向已經快取了其共用前綴的副本,避免跨副本的冗餘預填充運算。而在本文 I-05 中,我們探討了當模型本身不再是密集架構時的變化——當稀疏啟動意味著模型自身的架構就決定了它該如何分布在多張 GPU 上。
以上就是讓 LLM 推論從學術探索走向正式基礎設施的五大服務創新:連續批次處理、分頁式記憶體、階段解耦、快取感知路由,以及模型感知分片。每一項解決的是不同的問題。合在一起,它們解釋了為什麼需要專用推論引擎,以及為什麼通用的服務框架對 LLM 工作負載來說是不夠的。
應用層系列涵蓋的是你在這些基礎設施之上所建構的東西——複合式 AI 系統、檢索管線、工具使用、代理人,以及評估。本系列涵蓋的則是底層發生的事。兩者結合起來,就是完整的全貌:從應用程式組裝的系統提示,通過 API 呼叫,進入 GPU 流程,經過批次處理、記憶體和路由決策,通過模型自身的內部架構,最後以串流 token 的形式回到使用者面前,成為他們看到的回應。
參考來源
本文取材自以下第一手資料與業界來源:
Shazeer, N., Mirhoseini, A., Maziarz, K., et al. "Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer." ICLR, 2017. 引入稀疏門控 MoE 層和 top-k 專家選擇的奠基論文。arxiv.org/abs/1701.06538
Fedus, W., Zoph, B., Shazeer, N. "Switch Transformers: Scaling to Trillion Parameter Models with Simple and Efficient Sparsity." JMLR, 2022. 將 MoE 路由簡化為 top-1,展示了兆級參數規模和相對於 T5-XXL 的 7 倍預訓練加速。arxiv.org/abs/2101.03961
Jiang, A.Q., Sablayrolles, A., Mensch, A., et al. "Mixtral of Experts." Mistral AI, January 2024. Mixtral 8x7B 技術報告:總參數量 467 億,活躍 129 億,每層 8 個專家,top-2 路由。arxiv.org/abs/2401.04088
DeepSeek-AI. "DeepSeek-V3 Technical Report." December 2024. 總參數量 6,710 億,活躍 370 億,256 個路由專家加 1 個共用專家,top-8 路由,無輔助損失負載平衡。arxiv.org/abs/2412.19437
DeepSeek-AI. "DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning." January 2025. 確認 MoE 架構延伸至推理導向的尖端模型。arxiv.org/abs/2501.12948
Meta. "The Llama 4 herd: The beginning of a new era of natively multimodal AI innovation." April 2025. 確認 Llama 4 Scout(總計 1,090 億,16 個專家,top-1)和 Maverick(總計約 4,000 億,128 個專家)。ai.meta.com/blog/llama-4-multimodal-intelligence/
NVIDIA. "Mixture of Experts Powers the Most Intelligent Frontier AI Models." 2025. 業界層級確認推論基準測試中的頂尖開源模型使用 MoE。blogs.nvidia.com/blog/mixture-of-experts-frontier-models/
NVIDIA. "Scaling Large MoE Models with Wide Expert Parallelism on NVL72 Rack Scale Systems." Developer Blog. MoE 訓練和推論中全對全通訊開銷的量化資料。developer.nvidia.com/blog/scaling-large-moe-models-with-wide-expert-parallelism-on-nvl72-rack-scale-systems/
Meta Engineering. "Scaling LLM Inference: Innovations in Tensor Parallelism, Context Parallelism, and Expert Parallelism." October 2025. 專家平行化搭配兩次全對全通訊的正式環境參考。engineering.fb.com/2025/10/17/ai-research/scaling-llm-inference-innovations-tensor-parallelism-context-parallelism-expert-parallelism/
BentoML. "Data, tensor, pipeline, expert and hybrid parallelism." LLM Inference Handbook. 平行化策略與其通訊模式的業界比較。bentoml.com/llm/inference-optimization/data-tensor-pipeline-expert-hybrid-parallelism
AMD. "The vLLM MoE Playbook: A Practical Guide to TP, DP, PP and Expert Parallelism." ROCm Blogs. MoE 模型的硬體相關平行化策略建議。rocm.blogs.amd.com/software-tools-optimization/vllm-moe-guide/README.html
Hugging Face. "Mixture of Experts Explained." MoE 門控機制和負載平衡概念的易讀參考。huggingface.co/blog/moe
Huang Tzu Lin
With over five years in autonomous robotics, there's a strong passion for incorporating cutting-edge technologies and innovative approaches. Dedicated to transforming the latest research and insights into practical applications, this journey pushes the limits of possibility.
相關文章
訂閱最新資訊
將最新技術洞察直接送到您的信箱。


