Mixture of Experts(MoE — エキスパート混合)

article technology high #moe#mixture-of-experts#sparse-gating#top-k-routing#load-balancing#mixtral#deepseek-v3#llm
Created: 2026-05-24 Updated:

Transformer FFN を sparse routed expert に置換し総パラメータと FLOPs/token を分離。Shazeer 2017 から Mixtral・DeepSeek-V3 へ、aux-loss-free と fine-grained が現代設計の柱。

Mixture of Experts(MoE — エキスパート混合)

Mixture of Experts (MoE) は Transformer の FFN を EE 個のエキスパート FFN とルーターで置換し、各トークンが top-kk のみ活性化することで総パラメータ容量と FLOPs/token を分離する。Shazeer 2017 (arXiv:1701.06538) が現代版を確立、Switch Transformer 2021 が top-1 で簡素化、Mixtral 8×7B (2024-01) が open-weights の分水嶺、DeepSeek-V3 (2024-12) が fine-grained 256 + 補助損失なし負荷分散で open MoE の SOTA を取った。

動機 — なぜ FFN を sparse 化するのか

dense Transformer では位置別 FFN がブロック全パラメータの約 2/3 を占め、容量を増やすと FLOPs/token が線形に増える (詳細は Transformer — tech-35 §FFN・残差接続・正規化の変遷)。Chinchilla 則 (Hoffmann 2022) により dense では計算予算と知識容量が 1 対 1 で結びつくが、MoE はこれを切り知識ストレージを計算量と独立に拡張する。attention 層は dense 共有のまま FFN のみ sparse 化するため KV キャッシュ・全トークン相互参照特性は保たれる。

起源 — 1991 Jacobs/Jordan/Hinton から Shazeer 2017 まで

原型は Jacobs, Jordan, Nowlan & Hinton (1991) “Adaptive Mixtures of Local Experts” (Neural Computation 3(1):79–87) で、エキスパート群とゲートを同時学習し入力空間の部分領域に特化させる発想 (全エキスパート計算の soft gating)。1994 年 Jordan & Jacobs が階層 MoE と EM 学習を、2013 年 Eigen, Ranzato & Sutskever (arXiv:1312.4314) が MoE 層を深層スタックに積む構造を導入。決定的転換点は Shazeer et al. 2017 (arXiv:1701.06538) で、LSTM 層間に top-kk sparse gating + 双補助損失の MoE 層を挿入し同一計算量で 1000 倍級のパラメータが使えることを実証。

アーキテクチャ — Router・Top-k・Capacity Factor

FFN サブ層を EE 個のエキスパート FFN と線形ルーターで置換。入力 xRdmodelx \in \mathbb{R}^{d_{\text{model}}} にルーターが g(x)=softmax(xWg)g(x) = \text{softmax}(x W_g) を計算し上位 kk 個のインデックス {ij}\{i_j\} と重み {gj}\{g_j\} を取り出し、選択エキスパートのみが forward、出力は

y=j=1kgjExpertij(x)y = \sum_{j=1}^{k} g_j \cdot \text{Expert}_{i_j}(x)

として residual に加算される。アクティブパラメータ = k×k \times エキスパート + 非エキスパート、総パラメータ = E×E \times エキスパート + 非エキスパート。Capacity Factor CC は各エキスパートの 1 バッチ最大処理数を C×(tokens/E)C \times (\text{tokens}/E) に制限し超過は drop または residual 素通し (C=1.25C = 1.252.02.0 が一般的)。Mixtral 8×7B は k=2,E=8k = 2, E = 8 で active 12.9B / total 46.7B。

ルーティング変種 — Token-Choice / Expert-Choice / Soft MoE

Token-choice top-1 (Switch Transformer): 1 エキスパート選択、最小 FLOPs だが負荷分散が critical で drop も生じやすい。Token-choice top-2 (GShard, GLaM, Mixtral): 2 エキスパートの加重和、バックアップで学習が安定し open-weights 本番標準。Expert-choice routing (Zhou et al. 2022, arXiv:2202.09368): エキスパートがトークンを選ぶ逆向き設計で負荷が構造的に均衡し補助損失不要だが、選ばれないトークンは残差で素通し。Soft MoE (Puigcerver et al. 2023, arXiv:2308.00951): 離散ルーティングを廃止し全トークンの加重混合を各「スロット」が処理、完全微分可能で drop なし、小規模で優位だが LLM 本番採用は限定的。Hash routing はトークン ID/位置の固定ハッシュ割当、学習不要・完全均衡だが意味的特化なしで baseline 用途。

負荷分散の進化 — Aux Loss から DeepSeek の Bias 方式まで

無対策ルーターは rich-get-richer collapse に陥り一部エキスパートに勾配集中、他は飢餓で学習されない。Shazeer 2017 は 2 補助損失 (importance + load) を併用 (α102\alpha \approx 10^{-2}10110^{-1})。Switch Transformer (arXiv:2101.03961) は単一補助損失 Laux=αifiPiL_{\text{aux}} = \alpha \sum_i f_i \cdot P_i に簡素化。ST-MoE (arXiv:2202.08906) は router z-loss Lz=1Bx(logiexpxi)2L_z = \frac{1}{B} \sum_x (\log \sum_i \exp x_i)^2 で softmax ロジット爆発を抑え bf16/fp16 の loss spike を抑制、大規模 MoE 安定化に寄与。DeepSeek-V3 (arXiv:2412.19437) は auxiliary-loss-free balancing を導入: ルーティング決定は si=σ(xei)+bis_i = \sigma(x \cdot e_i) + b_i、ゲート重みは bias なしの σ(xei)\sigma(x \cdot e_i) のみ。bias bib_i は「過負荷なら減らす、未負荷なら増やす」勾配非経由 heuristic で更新され、負荷分散信号が本損失と干渉しないため最終品質が補助損失方式より向上と報告。

ランドマークモデル年表

モデル総 / アクティブEtop-k出典
2017Shazeer MoE-LSTM137B / —2048 (小)4arXiv:1701.06538
2020GShard (Google)600B / —20482arXiv:2006.16668
2021Switch Transformer1.6T / —〜20481arXiv:2101.03961
2021GLaM (Google)1.2T / 97B642arXiv:2112.06905
2022ST-MoE-32B32B / —322arXiv:2202.08906
2024-01Mixtral 8×7B (Mistral)46.7B / 12.9B82arXiv:2401.04088
2024-05DeepSeek-V2236B / 21B160 + 2 共有8arXiv:2405.04434
2024-12DeepSeek-V3671B / 37B256 + 1 共有9arXiv:2412.19437

Mixtral 8×7B (Apache 2.0) は LLaMA 2 70B 超えを約 3 倍少ない active params で達成、open-weights MoE の分水嶺。DeepSeek-V3 (MIT) は 2024 年末時点で最強の open MoE、HumanEval・SWE-bench・AIME 等で GPT-4o・Claude 3.5 Sonnet と同等以上を報告。GPT-4 と Gemini 1.5 Pro は MoE 採用と推測されるが公式公表はない (Gemini 1.5 技報 arXiv:2403.05530 も MoE と明言せず) ため本記事では事実として扱わない。

Fine-Grained Expert + Shared Expert (DeepSeek 設計)

Fine-grained MoE (DeepSeekMoE, Dai et al. 2024, arXiv:2401.06066) は従来 E=8/16/64E = 8/16/64 の大エキスパートを mm 個の小エキスパート (h×(4h/m)h \times (4h/m)) に分割し kkmm 倍にする。総パラメータ・総計算量は不変だが組合せ空間が劇的に拡大。さらに常時活性化される shared expertKs=1K_s = 122 個併設し全トークンが通過。DeepSeek-V3 は 1 shared + 256 routed、top-8 で計 9 active、組合せ空間 (2568)1014\binom{256}{8} \approx 10^{14} (Mixtral の (82)=28\binom{8}{2} = 28 を桁違いに上回る)。shared = 共通背景知識、routed = 特化知識と役割分担。fine-grained 化 + shared expert + 補助損失なし負荷分散の 3 点が現代 MoE 設計の三本柱。

計算量 vs パラメータ — Dense との比較

FLOPs/token は active params にほぼ比例 (forward 約 2×Nactive2 \times N_{\text{active}})。同 FLOP 予算で Switch Transformer は T5-Base 対比約 7 倍速く同 perplexity に到達。同総パラメータでは Mixtral 8×7B は推論速度が 12–13B dense 相当だがメモリは 47B dense 相当 (全エキスパート常駐)。Chinchilla 則 (詳細は Transformer — tech-35 §スケーリングと計算量) は dense 前提で、MoE では「active × トークン数」を Chinchilla 軸に据え総パラメータを独立な「知識容量」軸として追加と解釈できる。breakeven は概ね「並列リクエスト数 E\geq E」、バッチ内 token 分布が均一化し全エキスパートが均等稼働し始める時点。

エンジニアリング課題 — All-to-All・メモリ・学習安定性・サービング

All-to-All 通信: エキスパートを別 device に分散すると 2 段 all-to-all (dispatch + combine) が並列度と相互接続帯域に律速され、NVLink 4.0 / InfiniBand 400G が大規模 MoE では実質必須。DeepSeek-V3 は DualPipe で all-to-all と計算を overlap し FP8 (E4M3/E5M2) で memory を圧縮。メモリ: 全エキスパート常駐必須、DeepSeek-V3 671B は bf16 で約 1.3 TB、最低 16× H100 80GB (INT4/INT8 量子化で軽減可)。学習安定性: router z-loss・選択的 fp32 ルーター・勾配クリッピング。Fine-tuning はエキスパート崩壊が起きやすく、補助損失係数弱化・容量係数縮小・LoRA を expert / shared のみに適用などの運用 know-how が要る。Serving: vLLM・SGLang・TensorRT-LLM・DeepSpeed-MoE。continuous batching でエキスパート利用が偏ると最負荷エキスパートが律速する「バッチ内同期律速」が起き、EE 以上の並列リクエスト確保が実効スループットを決める。

2026 年の選択指針

状況推奨
1 GPU で 7–13B 級dense (Mistral 7B, Qwen2.5 7B)
高スループット並列 + GPU 多数MoE (Mixtral, DeepSeek-V3)
コーディング・数学・難問推論DeepSeek-V3 / R1, Qwen3-MoE
エッジ・モバイルdense + 量子化 (Phi-3.5)

並列リクエスト数が概ね EE に達して初めて MoE のスループット優位が出る。breakeven 未満では dense の運用簡素さとレイテンシ予測性が勝つ。実装は HuggingFace transformers・vLLM・SGLang・TensorRT-LLM・llama.cpp (GGUF)。直交潮流として Mixture of Depths (Raposo et al. 2024, arXiv:2404.02258) は「どのトークンが層を通るか」を router で選ぶ追加 FLOP 削減で MoE と併用可。

二言語用語対照表

日本語English
エキスパート混合 / 疎ゲート MoEMixture of Experts / Sparsely-gated MoE
ルーター / ゲーティングネットワークRouter / Gating network
Top-k ルーティングTop-k routing
トークン選択 / エキスパート選択Token-choice / Expert-choice routing
補助損失 / ルーター z-lossAuxiliary loss / Router z-loss
補助損失なし負荷分散Auxiliary-loss-free load balancing
容量係数 / トークンドロップCapacity factor / Token dropping
共有エキスパートShared expert
細粒度エキスパートFine-grained expert
All-to-All 通信All-to-all communication
アクティブパラメータ / 総パラメータActive parameters / Total parameters
エキスパート並列Expert parallelism
専門化崩壊Expert collapse
連続バッチングContinuous batching

参考文献

Local graph