1. MoEの基本概念
1.1 条件付き計算の動機
通常のニューラルネットワーク:全パラメータが全入力に対して活性化。
スケーリングの法則:性能向上にはパラメータ数の増加が必要。しかし計算コストも増加。
MoEの解決策:パラメータは増やすが、各入力に対しては一部のみ使用。
1.2 アーキテクチャ概要
構成要素:
- Expert:複数の独立したサブネットワーク(通常FFN)
- Router(Gating Network):入力をどのExpertに送るか決定
TransformerではFFN層をMoE層に置き換える。Attention層は共有。
1.3 歴史
- 1991:Jacobs et al. による最初のMoE提案
- 2017:Shazeer et al. "Outrageously Large Neural Networks"(スパースMoE)
- 2022:Switch Transformer(1 Expert選択)
- 2023:Mixtral(実用的MoE LLM)
- 2024:DeepSeek-V2/V3(細粒度MoE)
3. ルーティング機構
3.1 基本的なルーター
線形変換 + Softmax:
$$s = W_g \cdot x$$
$$G(x) = \text{Softmax}(\text{TopK}(s, k))$$
$W_g \in \mathbb{R}^{N \times d}$:学習可能なルーター重み
3.2 ノイズ付きTop-K
Shazeer et al. (2017)。探索促進のためノイズを追加。
$$s = W_g \cdot x + \epsilon \cdot \text{Softplus}(W_{noise} \cdot x)$$
$\epsilon \sim \mathcal{N}(0, 1)$
3.3 Expert Choice Routing
Zhou et al. (2022)。トークンがExpertを選ぶのではなく、ExpertがTop-Kトークンを選ぶ。
利点:完全な負荷分散、ドロップなし
欠点:トークン間の依存が生じる
3.4 DeepSeekのルーティング
DeepSeek-V2/V3:
- 共有Expert(全トークンが使用)+ ルーティングExpert
- 細粒度Expert(より多くの小さなExpert)
- Expert並列とデータ並列の組み合わせ最適化
4. 訓練技術
4.1 負荷分散損失(Auxiliary Loss)
問題:特定のExpertに負荷が集中(Expert崩壊)
解決:負荷分散を促す補助損失を追加
Load Balancing Loss:
$$L_{balance} = \alpha \cdot N \cdot \sum_{i=1}^{N} f_i \cdot P_i$$
- $f_i$:Expert $i$ に送られたトークンの割合
- $P_i$:Expert $i$ のルーター確率の平均
- $\alpha$:バランス係数(通常0.01-0.1)
均等分散で最小化。
4.2 Router Z-Loss
ST-MoE (2022)。ルーター出力の大きさを制限。
$$L_z = \frac{1}{B} \sum_{x \in B} \left(\log \sum_i e^{s_i(x)}\right)^2$$
訓練安定性の向上。
4.3 Capacity Factor
各Expertが処理できるトークン数の上限。
$$\text{Capacity} = \frac{\text{tokens}}{\text{num\_experts}} \times \text{capacity\_factor}$$
通常 capacity_factor = 1.25〜2.0。
超過トークンはドロップまたは残差接続でバイパス。
4.4 訓練の安定性
- MoEはDenseより訓練不安定になりやすい
- より小さな学習率
- 長いWarmup
- 適切な補助損失の重み調整
5. 実装と分散処理
5.1 Expert並列(EP)
各Expertを異なるデバイスに配置。
通信:All-to-All通信でトークンをExpertに送信。
計算と通信のオーバーラップが重要。
5.2 データ並列 + Expert並列
実際のシステムでは複数の並列化を組み合わせ:
- データ並列(DP):バッチを分割
- テンソル並列(TP):行列を分割
- Expert並列(EP):Expertを分割
- パイプライン並列(PP):層を分割
5.3 推論時の考慮
- メモリ:全Expert をロードする必要
- バッチ処理:異なるトークンが異なるExpertへ→効率低下
- 量子化:Expert別に量子化可能
5.4 実装フレームワーク
- Megatron-LM(NVIDIA)
- DeepSpeed-MoE(Microsoft)
- Fairseq(Meta)
- Megablocks(Databricks)
6. 主要MoEモデル
6.1 Switch Transformer (2022)
Google。Top-1ルーティング。
- シンプルなルーティング
- T5ベース
- 最大1.6Tパラメータ
主要論文:
- Fedus et al. (2022) "Switch Transformers: Scaling to Trillion Parameter Models", JMLR
6.2 Mixtral 8x7B (2023)
Mistral AI。実用的なオープンソースMoE。
- 8 Expert、各7B
- Top-2ルーティング
- 総パラメータ47B、活性化13B
- LLaMA 2 70Bに匹敵
- Sliding Window Attention併用
主要論文:
- Jiang et al. (2024) "Mixtral of Experts"
6.3 DeepSeek-V2/V3 (2024-2025)
DeepSeek。細粒度MoE + MLA。
DeepSeek-V2:
- 160 Expert + 2 共有Expert
- Top-6ルーティング
- MLA(KV圧縮)
DeepSeek-V3:
- 671B総パラメータ、37B活性化
- FP8訓練
- 圧倒的なコスト効率
- GPT-4レベルの性能を主張
6.4 その他のMoEモデル
- Grok(xAI):MoE採用
- DBRX(Databricks):16 Expert、Top-4
- Qwen-MoE(Alibaba)
- GPT-4:MoE使用と報告(非公式)
7. 利点と課題
7.1 利点
- 計算効率:同性能でFLOPs大幅削減
- スケーラビリティ:Expert追加でパラメータ増加
- 専門化:異なるExpertが異なるパターンを学習
- コスト:訓練・推論コストの削減
7.2 課題
- メモリ:全Expertをロードする必要
- 訓練安定性:負荷分散、Expert崩壊
- 通信オーバーヘッド:分散環境でのAll-to-All
- バッチ効率:推論時の不均一な負荷
- ファインチューニング:どのExpertを調整するか
7.3 Dense vs MoE
| 観点 |
Dense |
MoE |
| 計算効率 |
パラメータに比例 |
活性化パラメータに比例 |
| メモリ(推論) |
パラメータ分 |
全Expert分 |
| 訓練安定性 |
安定 |
要注意 |
| 同計算量での性能 |
基準 |
優位 |
7.4 いつMoEを選ぶか
- 計算予算に対して最大の性能が必要
- 推論時のメモリに余裕がある
- 大規模訓練インフラがある
8. 参考文献
基礎論文
- Jacobs et al. (1991) "Adaptive Mixtures of Local Experts", Neural Computation
- Shazeer et al. (2017) "Outrageously Large Neural Networks: The Sparsely-Gated MoE Layer", ICLR
現代のMoE
- Fedus et al. (2022) "Switch Transformers", JMLR
- Jiang et al. (2024) "Mixtral of Experts"
- DeepSeek-AI (2024) "DeepSeek-V2: A Strong, Economical, and Efficient MoE"
訓練技術
- Lepikhin et al. (2021) "GShard: Scaling Giant Models with Conditional Computation", ICLR
- Zoph et al. (2022) "ST-MoE: Designing Stable and Transferable Sparse Expert Models"
関連ページ