大規模言語モデル(LLM)におけるMixture-of-Experts(MOE)の簡単な解説
1. MOEとは?
Mixture-of-Experts(MOE)は、大規模なAIモデルの効率を高めるための特別なニューラルネットワークの設計です。すべてのタスクに単一の大きなモデルを使用する代わりに、MOEは作業を「エキスパート」と呼ばれる小さな専門モデルに分割します。一度にこれらのエキスパートのうちのほんの少数だけが使用されるため、高いパフォーマンスを維持しながら計算能力を節約できます。
MOEは、DeepSeek-v3のような大規模なAIモデルで特に役立ちます。なぜなら、トレーニングと推論のコストを大幅に増加させることなく、モデルが多数のパラメータを持つことができるからです。
2. MOEの仕組み
MOEは、従来のTransformerモデルの構造を、Feedforward Network(FFN)層をMOE層に置き換えることで変更します。これらの層は、主に次の2つの部分で構成されています。
a) エキスパートネットワーク(エキスパート)
- 各エキスパートは、特定の種類の入力を処理するために専門的にトレーニングされた、小さくて独立したニューラルネットワーク(多くの場合FFN)です。
- すべてのエキスパートを一度にアクティブにする代わりに、モデルは各入力を処理するために、関連するエキスパートのみを選択し、計算をより効率的にします。
b) ゲーティングネットワーク(ルーター)
- ゲーティングネットワークは、各入力に対してどのアキスパートをアクティブにするかを決定します。
- 各エキスパートに確率スコアを割り当て、上位k個のエキスパート(通常、入力あたり2〜8個のエキスパート)を選択することによって機能します。
- 時間の経過とともに、ゲーティングネットワークは、同様の種類のデータを同じエキスパートに送信することを学習し、効率を向上させます。
3. エキスパートは自動的に専門化を学習する
MOEの興味深い機能の1つは、エキスパートを特定のトピックやタスクに手動で割り当てる必要がないことです。代わりに、受信したデータに基づいて、さまざまな分野を自然に専門的に学習します。
その仕組みは次のとおりです。
- トレーニングの開始時に、エキスパートはランダムに入力を受信します。
- トレーニングが進むにつれて、エキスパートは処理に最適なデータの処理を開始します。
- この自己組織化の動作により、構文を専門とするエキスパート、長距離依存関係を専門とするエキスパート、数学やコーディングなどの特定のトピックを専門とするエキスパートが生まれます。
4. ゲーティングネットワークが時間の経過とともに適応する方法
ゲーティングネットワークは、最初はランダムな決定を下しますが、フィードバックループを通じて徐々に改善されます。
- 正のフィードバックループ: エキスパートが特定のデータで優れたパフォーマンスを発揮した場合、ゲーティングネットワークは、同様のデータをより頻繁にルーティングします。
- 共進化: エキスパートは割り当てられたタスクでより優れて、ゲーティングネットワークはそれに応じて選択を絞り込みます。
5. 問題の回避:負荷分散とエキスパートの使いすぎ
MOEの問題の1つは、一部のエキスパートが選択されすぎる(過負荷になる)可能性がある一方で、他のエキスパートが無視される可能性があることです。これは「ホット/コールドエキスパート問題」と呼ばれます。これを修正するために、モデルは次のような戦略を使用します。
- 補助損失: 特別なペナルティにより、ゲーティングネットワークはエキスパート全体でタスクをより均等に分散することが推奨されます。
- エキスパートのキャパシティ制限: 各エキスパートには、一度に処理できるトークンの数に制限があり、他のトークンはあまり使用されていないエキスパートに割り当てる必要があります。
- ノイズの追加: エキスパートの選択に小さなランダムな変動を加えることで、すべてのエキスパートがトレーニングデータを受け取るように促し、ワークロードのバランスを取るのに役立ちます。
6. 効率的な処理のための動的ルーティング
MOEは、タスクの難易度に基づいて使用されるエキスパートの数を調整できます。
- 簡単なタスクでは、リソースを節約するためにアクティブにするエキスパートの数を減らします。
- 複雑なタスクでは、精度を高めるためにアクティブにするエキスパートの数を増やします。
たとえば、DeepSeek-v3は、過去のルーティング履歴に基づいてエキスパートのアクティベーションを動的に調整し、パフォーマンスと効率の両方を最適化します。
7. 実世界の例:DeepSeek-v3のMOEシステム
DeepSeek-v3は、6710億のパラメータを持つ大規模なMOEモデルです。ただし、任意の時点でアクティブなパラメータはわずか370億であり、従来の密なモデルよりもはるかに効率的です。
- エキスパートの種類:
- ルーティングされたエキスパート: 特定のタスクを処理する256の専門のエキスパート。
- 共有エキスパート: 共通の知識を習得する1つの一般的なエキスパート。
- ルーティングの仕組み:
- ゲーティングネットワークは、各入力を8つのエキスパートのサブセットに割り当てます。
- エキスパートの出力は、次のレイヤーに渡される前に重み付けおよび結合されます。
8. MOEにおける追加のトレーニング損失の回避
従来のMOEモデルは、エキスパートの使用状況のバランスを取るために補助損失を使用しますが、DeepSeek-v3は、追加の損失ペナルティなしにワークロードを自然に分散するためのバイアス調整法を導入しています。
- 仕組み:
- エキスパートの使用頻度が低い場合、モデルは選択バイアスを大きくして、選択される可能性を高めます。
- 使用頻度の高いエキスパートは、選択バイアスが減少します。
- この方法は、トレーニングを中断することなくバランスを維持します。
9. MOEによる推論:より高速で効率的
- DeepSeek-v3には6710億のパラメータがありますが、クエリごとに使用されるのはほんの一部です。
- モデルはすべてのエキスパートをメモリにロードしますが、一部しかアクティブにしないため、計算時間が短縮されます。
10. まとめ:MOEが強力である理由
- 効率的な計算: 一度に少数エキスパートのみをアクティブにし、リソースを節約します。
- 自然な専門化: エキスパートはさまざまなタスクを自動的に学習します。
- バランスの取れた負荷分散: エキスパートの過負荷または過少使用を回避します。
- スケーラビリティ: 計算コストを低く抑えながら、大規模なモデルを処理します。
MOEを使用すると、モデルはコンピューティングリソースを圧倒することなく、大規模かつ強力になります。これにより、次世代のAIシステムの重要なテクノロジーになります。