模型與訓練
MoE 專家混合架構是什麼?參數很大卻跑得很快的原因
MoE(Mixture of Experts,專家混合架構)是一種稀疏啟動的模型架構。它把模型拆成多個「專家」模組,前面放一個門控網路(Router)負責看輸入問題屬於哪一類,只叫醒最相關的少數幾位專家去算,其餘的保持休息,最後把被選中的專家結果加權合併成答案。因為每次只用到一小部分參數,模型總參數量可以做得非常大,實際運算成本與延遲卻遠低於同樣大小的傳統密集模型。
MoE 專家混合架構是什麼?參數很大卻跑得很快的原因
你會看到某些模型號稱幾千億參數,回應卻很快、收費也不誇張。這通常不是誰在灌水,而是它用了 MoE 架構。
看懂這個詞,你就知道為什麼「參數大」跟「跑得慢」現在不必然畫等號。
你將學到什麼
定義
把模型拆成多位專家,由門控網路挑出最相關的少數幾位啟動。
白話比喻
像醫院的分診台,先判斷你該掛哪一科,只叫那幾位醫師來看。
為什麼重要
總參數可以很大,每次實際動用的只有一小部分,成本與延遲都降下來。
代價
工程複雜度高,容易出現某幾位專家過勞、其他人閒置的負載不均。
定義
MoE 是一種稀疏啟動的模型架構。它把模型拆成多個專家模組,並在前面放一個門控網路負責分配工作。
門控網路會替每位專家算一個相關性分數,挑出分數最高的前幾位啟動,其餘休息。最後把被選中的專家輸出加權合併,產生最終答案。
白話比喻
像你走進醫院掛號。分診台先聽你的症狀,判斷該看神經內科還是感染科。
醫院裡有幾十科醫師,但不會每一科都出來會診。只叫相關的那兩位,一樣看得好,成本卻低很多。門控網路做的就是分診台的事。
跟傳統密集模型差在哪?
| 比較項 | 傳統密集模型 | MoE 稀疏模型 |
|---|---|---|
| 每次啟動 | 所有參數都要算 | 只啟動被選中的少數專家 |
| 運算量 | 隨參數規模等比上升 | 遠低於總參數所對應的量 |
| 速度與成本 | 參數越大越慢越貴 | 參數可以很大,單次仍相對便宜 |
| 記憶體 | 載入等於實際使用 | 仍需載入全部參數才能隨時調用 |
重點是這句話:參數量可以很大,但每次只用一小部分。這是 MoE 全部好處的來源,也是它工程難度的來源。
實際用例
你直接的體感是「同樣聰明但更快更便宜」。這也是近年愈來愈多頂尖大模型改採這個架構的原因。
設計上有幾個關鍵旋鈕:專家總數、每次啟動幾位(Top-K)、每位專家的容量上限,還有一個負載平衡的損失項,專門避免某幾位專家被操到爆而其他人整天閒著。
常見誤解
最常見的誤解是以為 MoE 可以省記憶體。省的是運算,不是容量:所有專家的參數都得在記憶體裡待命,隨時可能被叫到。自架模型時這一點很傷。
另一個誤解是把 MoE 當成取代 Transformer 的新架構。它其實是在 Transformer 裡替換掉某些層的做法,兩者是搭配關係,不是二選一。
本文源起本文內容出自酒Ann 的「AI 實戰陪跑班」課程教材,由酒Ann 編寫成彙編條目。想系統性搞懂 AI 名詞,歡迎追蹤 酒Ann 的 Facebook。
延伸學習
常見問答
專家是指懂數學或懂法律的模組嗎?
只能算比喻。專家是訓練過程中自己分化出來的參數群組,不是有人手動指派「你負責法律」。分化出來的分工往往人看不太懂,用數學專家、程式專家來稱呼只是方便理解。
MoE 模型比較笨嗎?
不必然。它的設計目標是在保住大模型能力的前提下降低運算量。同樣的推論成本下,MoE 通常能塞進更多知識;但它對訓練技巧的要求高,做不好會有專家利用率低、訓練不穩的問題。
我用得到的模型有 MoE 嗎?
多數人不需要知道自己用的是哪一種架構,因為介面完全一樣。它會間接影響你感受到的速度與價格。真正需要分辨的時候通常是自架模型,這時要注意記憶體要吃下全部參數,即使每次只算一部分。

