生成式 AI · 大模型架構

MoE 混合專家

與其用「一個大腦」處理所有事,不如養「一群專家+一個分派櫃台」——每個字只交給最合適的少數幾位專家。結果:模型知識容量爆增,計算量卻幾乎沒變。

Mixture of Experts路由器 Routertop-k稀疏 Sparse參數量≠計算量

💡一句話定義

MoE(Mixture of Experts,混合專家)=把 Transformer 每層裡的一個大前饋網路(FFN)換成很多個「專家」FFN + 一個路由器。每個 token 進來,路由器只挑分數最高的 top-k 個專家來處理。好處:總參數量可以爆增(知識容量大),但因為每個 token 只走 k 個專家,實際計算量只跟 k 有關——這就是「參數量 ≠ 計算量」。

🎮互動:路由器怎麼分派 token

選一句話、按 ▶ 逐字路由(或把滑鼠移到某個字上),看每個 token 被送到 8 個專家裡的哪 top-k 個。切換 top-k,看啟用比例與計算量怎麼變。

🔀 MoE 路由器 互動演示
路由器(Gating)依分數挑選 top-2 專家
專家總數 N8
每 token 啟用2
啟用比例 k/N25%
計算量 vs Dense25%
同樣「8 專家」的知識容量,每個 token 要算多少?
Dense(用全部 8 個)
100%
MoE(只用 top-k)
25%
真實例子 Mixtral 8×7B:8 個專家、top-2 路由 → 總參數約 47B(要存進記憶體),但每個 token 只啟用約 13B(決定速度)。用 47B 的知識,只花約 13B 的計算。
*為了直覺,這裡讓專家看起來各有專長;真實 MoE 的專家分工其實更微妙,常是依 token 的語法/型態自動形成,不見得對應人類的「主題」。

🔀路由器(Gating)與 top-k

🚦路由器 Gating
一個小網路,幫每個 token 對所有專家打分數。
🎯top-k 選擇
只留分數最高的 k 個專家(常見 k=1 或 2),其餘不算。
加權合併
被選中的專家輸出,依路由分數加權後相加,成為該 token 的結果。

🧮重點:參數量 ≠ 計算量

這是 MoE 最核心的賣點。總參數=所有專家都要存起來,決定模型多大/多佔記憶體/知識容量啟用參數=每個 token 實際只走 top-k 個專家,決定運算量/速度/訓練與推論成本。所以 MoE 能把模型做得超大(塞很多專家),卻讓每個 token 的計算量維持很省——用小成本換大容量。

⚖️Dense vs MoE(Sparse)

面向Dense(傳統)MoE(稀疏)
每個 token用到整個 FFN 的全部參數只用 top-k 個專家
總參數受計算成本限制、較難放大可塞很多專家、大幅放大
計算量隨總參數等比上升只跟 k 有關,幾乎不變
記憶體相對省所有專家都要存,較吃記憶體
訓練單純要處理負載平衡、較不穩

⚠️MoE 的代價

負載不均(Load Imbalance):路由器可能把大多數 token 都丟給少數幾個「熱門專家」,其他專家閒置、浪費容量;實務上要加一個負載平衡輔助損失把流量攤平。記憶體大:只算 top-k,但所有專家都得放在記憶體裡。其他:訓練較不穩、分散式訓練有通訊開銷、路由不當會傷品質。

🌍真實世界的 MoE

Switch Transformer(Google)用 top-1 路由把參數推到上兆級。Mixtral 8×7B(Mistral)用 8 專家、top-2,約 47B 總參數、每 token 啟用約 13B。DeepSeek 等新模型也採 MoE,據報導 GPT-4 也是 MoE 架構。共同動機都一樣:用可負擔的計算量,換更大的模型容量

自我檢測

Q1. MoE 是什麼?
把 Transformer 的大 FFN 換成多個專家 FFN+一個路由器,每個 token 只走 top-k 個專家;總參數可爆增,但每 token 計算量只跟 k 有關。
Q2. 路由器(gating)做什麼?
幫每個 token 對所有專家打分,挑分數最高的 top-k 個專家來處理,再把它們的輸出依分數加權相加。
Q3. 為什麼說「參數量 ≠ 計算量」?
總參數要把所有專家都存起來(模型很大),但每個 token 只啟用 top-k 個專家,實際計算量只跟 k 有關,所以能大容量、低計算。
Q4. MoE 有哪些代價?
負載不均(需負載平衡輔助損失)、所有專家都要占記憶體、訓練較不穩、分散式通訊開銷。
Q5. 舉個真實的 MoE 模型?
Switch Transformer(top-1)、Mixtral 8×7B(8 專家、top-2,約 47B 總/13B 啟用);據報導 GPT-4 也採 MoE。

🎯重點整理

📝 iPAS 考點提醒

MoE(Mixture of Experts,混合專家)是大模型架構的重要考點。核心:把 Transformer 每層的 FFN 換成多個專家+路由器(Gating),每個 token 只走 top-k 個專家(常見 k=1 或 2)。關鍵觀念「參數量≠計算量」:總參數(所有專家都要存)決定模型大小與記憶體,啟用參數(top-k)決定計算量與速度,故能大容量、低計算。易混點:MoE 是稀疏啟用,不是把整個模型都跑一遍。代價:負載不均(需負載平衡輔助損失)、記憶體大、訓練較不穩。實例:Switch Transformer(top-1)、Mixtral 8×7B(top-2,約 47B 總/13B 啟用)。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

MoE 是什麼?

把 Transformer 的大 FFN 換成多個專家 FFN+一個路由器,每個 token 只走 top-k 個專家;總參數可爆增,但每 token 計算量只跟 k 有關。

路由器(gating)做什麼?

幫每個 token 對所有專家打分,挑分數最高的 top-k 個專家來處理,再把它們的輸出依分數加權相加。

為什麼說「參數量≠計算量」?

總參數要把所有專家都存起來(模型很大),但每個 token 只啟用 top-k 個專家,實際計算量只跟 k 有關,所以能大容量、低計算。

MoE 有哪些代價?

負載不均(需負載平衡輔助損失)、所有專家都要占記憶體、訓練較不穩、分散式通訊開銷。

舉個真實的 MoE 模型?

Switch Transformer(top-1)、Mixtral 8×7B(8 專家、top-2,約 47B 總/13B 啟用);據報導 GPT-4 也採 MoE。

🧭 相關主題

← 返回 AI 學習與考證地圖