# Outrageously Large Neural Networks: The Sparsely-Gated Mixture-of-Experts Layer
**論文情報**
- 著者: [[Noam Shazeer]]・[[Azalia Mirhoseini]]・Krzysztof Maziarz・Andy Davis・[[Quoc V. Le]]・[[Geoffrey Hinton]]・[[Jeffrey Dean]]
- 所属: [[Google Brain]](Shazeer, Mirhoseini, Davis, Le, Hinton, Dean)、ヤギェウォ大学クラクフ校(Maziarz)
- 発表: ICLR 2017
- arXiv: 1701.06538v1(2017-01-23)
- URL: https://arxiv.org/abs/1701.06538
## アブストラクト日本語訳
ニューラルネットワークが情報を吸収できる容量はパラメータ数によって制約される。条件付き計算(conditional computation)——入力ごとにネットワークの一部だけを活性化する手法——は、計算量を比例増加させずにモデル容量を飛躍的に拡大する手段として理論的に提案されてきた。しかし実際にはアルゴリズム上・性能上の課題が多く残っていた。本研究ではこれらの課題を克服し、現代の GPU クラスタ上で計算効率をほとんど落とすことなくモデル容量を 1000 倍以上改善することに初めて成功した。提案するスパースゲート型 Mixture-of-Experts(MoE)層は、最大数千のフィードフォワードサブネットワークから構成される。訓練可能なゲーティングネットワークが入力ごとにエキスパートの疎な組み合わせを選択する。言語モデリングと機械翻訳に MoE を適用した結果、最大 137 億パラメータの MoE を積層 LSTM 間に畳み込み的に適用するアーキテクチャで、大規模ベンチマークにおいて低い計算コストで従来の SOTA を大幅に上回る結果を達成した。
## 概要・位置づけ
本論文は**スパースゲート型 MoE 層の基礎論文**であり、Jacobs et al. 1991 や Jordan & Jacobs 1994 に遡る MoE の概念を大規模深層学習に初めて実用的に適用した画期的な研究である。後の Switch Transformer・GShard・DeepSeek-MoE・Mixtral 等、現代の主要 MoE ベース LLM のすべてがこの論文を理論的起点とする。
**条件付き計算の課題と本論文の貢献:**
1. 現代の GPU は分岐より算術演算が高速であり、条件付きの「大きなブロック」単位で on/off する必要がある
2. 大バッチサイズが性能に不可欠だが、条件付き計算はバッチを縮小する「バッチ縮小問題」がある
3. ネットワーク帯域がボトルネックになる分散環境での課題
4. 負荷分散のための損失設計が必要
5. 大規模データセットが前提(小規模画像認識データでは検証が難しかった)
本論文はこれら 5 つの課題をすべて正面から解決し、条件付き計算の約束を初めて実証した。
## 問題設定
### 従来手法の限界
- 全パラメータを常時活性化する従来の密モデルは、モデル容量増加とデータ量増加の両方に対し二乗オーダーの計算コスト増大を招く
- Eigen et al. 2013 は複数 MoE を深層モデルの部品として使うアイデアを示したが、スパース性の実現には踏み込まなかった
- 大規模条件付き計算を実際に動作させた事例がなかった
### 設定
- 言語モデリング(10 億語・1000 億語コーパス)と機械翻訳(WMT'14 En→Fr/De、Google 本番 En→Fr)
- 基盤アーキテクチャ: 積層 LSTM(Hochreiter & Schmidhuber 1997)の層間に MoE を挿入
- ハードウェア: 16–64 台の Tesla K40 GPU クラスタ
## 提案手法
### MoE 層の基本構造
MoE 層は $n$ 個のエキスパートネットワーク $E_1, \dots, E_n$ と疎な $n$ 次元ベクトルを出力するゲーティングネットワーク $G$ から構成される。MoE の出力 $y$ は:
$y = \sum_{i=1}^{n} G(x)_i E_i(x) \tag{1}$
$G(x)_i = 0$ のエキスパートは計算を省略できる。実験では各エキスパートは ReLU 活性化の隠れ層 1024 ユニットを持つフィードフォワードネットワーク(約 100 万パラメータ)。
### Noisy Top-K ゲーティング
ソフトマックスゲーティングの単純形:
$G_\sigma(x) = \mathrm{Softmax}(x \cdot W_g) \tag{2}$
これを拡張した**Noisy Top-K ゲーティング**が本論文の核心提案:
$G(x) = \mathrm{Softmax}(\mathrm{KeepTopK}(H(x), k)) \tag{3}$
$H(x)_i = (x \cdot W_g)_i + \mathrm{StandardNormal}() \cdot \mathrm{Softplus}((x \cdot W_{noise})_i) \tag{4}$
$\mathrm{KeepTopK}(v, k)_i = \begin{cases} v_i & \text{if } v_i \text{ は } v \text{ の上位 } k \text{ 要素} \\ -\infty & \text{otherwise} \end{cases} \tag{5}$
- **スパース性**: KeepTopK により上位 $k$ のエキスパートのみ活性化し残りは $-\infty$(ゲート値 0)
- **ノイズ**: 訓練可能な $W_{noise}$ で制御するガウスノイズにより負荷分散を補助
- **逆伝播**: $k > 1$ の場合、上位 $k$ エキスパートのゲート値は $W_g$ に対して非ゼロの勾配を持ち、通常の誤差逆伝播で訓練できる
### 性能課題への対処
**バッチ縮小問題**: $b$ 例のバッチで各エキスパートが受け取るサブバッチは $\approx kb/n$ 例と小さくなる。解決策:
1. **データ並列とモデル並列の混合**: 各デバイスがデータ並列レプリカとしても、一部のエキスパートをホストするモデル並列シャードとしても機能する。$d$ デバイスで各デバイスのバッチサイズを $b$ とすると、エキスパートが受け取るバッチサイズは $\approx kbd/n$ に増加($d$ 倍改善)。
2. **畳み込み的適用**: MoE を全時刻ステップにまとめて適用することでバッチサイズをタイムステップ数倍に増加。
**ネットワーク帯域**: 1 隠れ層の比較的大きなエキスパート(1024 ユニット)を使うことで計算対通信比を十分に高く維持する。
### エキスパート負荷分散
ゲーティングネットワークは特定のエキスパートに集中する傾向がある(自己強化的な不均衡)。2 つの補助損失で解決:
**Limportance**: バッチ内でのゲート値の変動係数(CV)の二乗を最小化:
$\mathrm{Importance}(X) = \sum_{x \in X} G(x) \tag{6}$
$L_{\mathrm{importance}}(X) = w_{\mathrm{importance}} \cdot \mathrm{CV}(\mathrm{Importance}(X))^2 \tag{7}$
**Lload**: 各エキスパートが受け取る例数の平滑化推定量 $\mathrm{Load}(X)$ の CV 二乗を最小化:
$P(x, i) = \Phi\left(\frac{(x \cdot W_g)_i - \mathrm{kth\_excluding}(H(x), k, i)}{\mathrm{Softplus}((x \cdot W_{noise})_i)}\right) \tag{8,9}$
$L_{\mathrm{load}}(X) = w_{\mathrm{load}} \cdot \mathrm{CV}(\mathrm{Load}(X))^2 \tag{11}$
ノイズ項が $L_{\mathrm{load}}$ の微分可能性を保証する点が重要な設計上の工夫。
### モデルアーキテクチャ(言語モデリング)
```
埋め込み層(512次元) → LSTM層(512ユニット) → MoE層 → LSTM層(512ユニット) → ソフトマックス層
```
各 MoE 層のエキスパートは ReLU 活性化 1024 ユニットの単一隠れ層フィードフォワードネットワーク(1M パラメータ)。普通の MoE では $k=4$、階層 MoE では各レベル $k=2$(計 4 エキスパートを使用)。
## 図の説明
### Figure 2: 10 億語言語モデリングベンチマーク
![[wiki/sources/_attachments/arxiv-1701.06538/fig02-left-capacity-vs-perplexity.png]]
**(左)固定計算コスト(約 800 万 ops/タイムステップ)での容量 vs. パープレキシティ**: フラット MoE と階層 MoE のモデルを比較。エキスパート数増加に伴いテストパープレキシティが単調減少し、4096 エキスパートで計算マッチドベースライン比 24% 低パープレキシティを達成。
![[wiki/sources/_attachments/arxiv-1701.06538/fig02-right-compute-vs-perplexity.png]]
**(右)計算コスト vs. パープレキシティ**: 青(LSTM モデル)と緑(40 億パラメータ MoE モデル)の比較。MoE は LSTM の 6% 程度の計算量で同等以上の品質を達成する。
### Figure 3: 1000 億語 Google ニュースコーパスでの言語モデリング
![[wiki/sources/_attachments/arxiv-1701.06538/fig03-100B-word-corpus.png]]
**大規模コーパスでのスケーリング挙動**: 10B 語での訓練(上線)と 100B 語での訓練(下線)。エキスパート数 65,536(68B パラメータ)まで継続的改善が見られ、コンピュテーションマッチドベースライン比 39% 低パープレキシティを達成。131,072 エキスパートでは過剰なスパース性から性能劣化が観察される。
## 実験設定
### 10 億語言語モデリングベンチマーク(Chelba et al. 2013)
- データ: 約 8.29 億語のニュース記事、語彙 793,471 語
- ベースライン: Jozefowicz et al. 2016 の最良 LSTM(151M パラメータ)
- MoE モデル: 4–4096 エキスパート(フラット)、256–4096 エキスパート(階層)
- 計算コスト固定条件: 約 800 万 ops/タイムステップ
- ハードウェア: 16–32 台 Tesla K40 GPU
### 1000 億語 Google ニュースコーパス
- データ: Google 社内ニュースコーパス、約 1000 億語
- エキスパート数: 32, 256, 1024, 4096, 16384, 65536, 131072
- 最大 MoE 層パラメータ: 137B
### 機械翻訳(WMT'14 En→Fr/De + Google 本番 En→Fr)
- ベースアーキテクチャ: GNMT(Wu et al. 2016)を改造(エンコーダ 3 層 / デコーダ 2 層に削減)
- MoE 層: エンコーダとデコーダ各 1 層、最大 2048 エキスパート(各 200 万パラメータ)、計約 87 億パラメータ
- ベースライン: GNMT(2.78 億パラメータ)、96 台 K80 で 6 日間訓練
## 実験結果
### 10 億語言語モデリング
| モデル | テストパープレキシティ(10 epoch) | パラメータ数 | ops/タイムステップ | 訓練時間 |
|---|---|---|---|---|
| 最良既存結果(Jozefowicz+ 2016) | 34.7 | 1.51 億 | 1.51 億 | 59 時間, 32 K40 |
| 低コスト MoE | **34.1** | 43.03 億 | 890 万 | 15 時間, 16 K40 |
| 中コスト MoE | **31.3** | 43.13 億 | 3380 万 | 17 時間, 32 K40 |
| 高コスト MoE | **28.0** | 43.71 億 | 1.427 億 | 47 時間, 32 K40 |
- 低コスト MoE は既存 SOTA と同等品質を 6% の計算コストで達成
- 高コスト MoE は既存 SOTA を大幅に上回りつつ、計算コストも SOTA の 95% 以内
### 1000 億語コーパス
- 65,536 エキスパート(68B パラメータ)で計算マッチドベースライン比 39% 低パープレキシティ
- 計算効率 0.72 TFLOPS/GPU を維持(99.994% 層スパース性でも)
### 機械翻訳
| ベンチマーク | MoE(BLEU) | GNMT(BLEU) | GNMT+RL(BLEU) |
|---|---|---|---|
| WMT'14 En→Fr newstest2014 | **40.56** | 39.22 | 39.92 |
| WMT'14 En→De newstest2014 | **26.03** | 24.91 | 24.66 |
| Google 本番 En→Fr | **36.57** | 35.56 | — |
- MoE は RL 精緻化を使わずに GNMT+RL を上回る BLEU を達成
- Google 本番データセットでは 1/6 の訓練時間で 1.01 BLEU 向上
### 多言語機械翻訳
12 言語対(Johnson et al. 2016 と同一データ)での比較:
- 多言語 GNMT 対比 19% 低パープレキシティ
- 12 言語対のうち 11 対で BLEU スコア向上(最大 +5.84 点)
- 8 言語対で単言語 GNMT モデルを超える(個別訓練モデルの 12 倍のパラメータなしに)
## 考察
### 強み
1. **初の大規模実証**: 条件付き計算の理論的約束を初めて実際のシステムで実証した
2. **一般性**: MoE 層は汎用的なニューラルネットワークコンポーネントとして設計されており、LSTM 以外の基盤アーキテクチャにも適用可能
3. **設計の簡潔さ**: Noisy Top-K ゲーティングは単純でありながら、スパース性・負荷分散・勾配流の問題を同時に解決する
4. **スケーラビリティ**: デバイス数に比例してエキスパート数(パラメータ数)を増やせる設計
5. **専門化の自然発生**: 訓練を通じてエキスパートが統語・意味的に自然に専門化する(付録 E Table 9 の質的分析)
### 弱点・限界
1. **エキスパート数の上限**: 131,072 エキスパートでは過剰なスパース性から性能が劣化した。スパース性の最適点の理論的理解が不足
2. **バッチ縮小問題の完全解決ではない**: 大バッチサイズへの依存は依然あり、再帰的 MoE(RNN の重み行列を MoE に置換)には「畳み込みトリック」が使えない
3. **ハイパーパラメータへの感度**: $w_{\mathrm{importance}}$・$w_{\mathrm{load}}$ の手動チューニングが必要
4. **LSTM 依存**: Transformer 登場以前の論文であり、実験は LSTM ベースのアーキテクチャに限定(後にTransformer との組み合わせで本領発揮)
5. **評価タスクの限定性**: テキストドメインのみで実証。画像・音声への適用は将来課題として残された
### 新規性の整理
| 貢献 | 先行研究との差異 |
|---|---|
| Noisy Top-K ゲーティング | Softmax ゲーティング(Jordan & Jacobs 1994)にスパース性とノイズを追加 |
| スムーズ負荷バランス損失($L_{\mathrm{load}}$) | ノイズによる微分可能化で、バイナリカウントを Back-prop できない問題を解決 |
| データ並列 × モデル並列の混合 | バッチ縮小問題をシステム設計で解決した初の実用システム |
| 畳み込み的 MoE 適用 | Eigen et al. 2013 の「2 スタック MoE」を「各タイムステップで異なる選択」に発展 |
| 大規模実証(4B+ パラメータ) | 先行する条件付き計算研究の最大規模を大幅に超える |
## 後続研究への影響
本論文は MoE の研究系譜において決定的な転換点であった。直接の後継または影響を受けた主な研究:
- **GShard**(Lepikhin et al. 2021): 同設計を 600B パラメータ規模に拡張
- **Switch Transformer**(Fedus et al. 2022): $k=1$ のシンプル化で訓練安定性を改善
- **GLaM**: 1.2 兆パラメータ MoE
- **Mixtral 8x7B**: 推論時効率のためにオープンモデルに適用
- **DeepSeek-MoE/V2/V3**: 細粒度 MoE と補助損失なし負荷分散へ発展
- [[Mixture-of-Experts]] 概念ページの横断的知見を参照
## 関連
- ソース: [[@2017__NeurIPS__Attention Is All You Need]] / [[@2019__NeurIPS__GPipe Easy Scaling with Micro-Batch Pipeline Parallelism]]
- 概念: [[Mixture-of-Experts]] / [[条件付き計算]] / [[スパースゲーティング]] / [[LLM分散学習]] / [[並列化戦略]]
- エンティティ: [[Noam Shazeer]] / [[Azalia Mirhoseini]] / [[Geoffrey Hinton]] / [[Jeffrey Dean]] / [[Quoc V. Le]] / [[Google Brain]]
## 出典
- `.raw/papers/arxiv-1701.06538.txt`(全 19 ページ、arXiv:1701.06538v1)
- 論文本文(本文 §1–6、付録 A–E)