エキスパートの混合
MoE · sparse model
ひとことで
Mixture of expertsはネットワークの一部を多くの並列サブネットワークに分割し、ルータが各トークンを数少ないサブネットワークの一つだけを通すようにします。全体のパラメータ数は大きいまま、トークンごとの計算量は小さく保たれるため、非常に大きなモデルでもそのサイズに見合うほどサービングが安くなるのです。
密なモデルでは、すべてのパラメータが各トークンの処理に参加します。Mixture-of-Experts(MoE)モデルでは、特定の層が並列のエキスパートの集合に置き換えられ、小さなルータネットワークが各トークンが通過するエキスパートを2つまたは3つ選択します。
経済性がポイントです。モデルは数百億の総パラメータを持ちますが、トークンごとに活性化されるのは数十億に過ぎません。能力は総パラメータ数に比例し、計算コストは活性化された部分に比例します。
トレードオフはメモリです。すべてのエキスパートは常駐し、アクセス可能である必要があるため、ハードウェア要件は総パラメータ数に依存しますが、演算は活性化された部分に依存します。このため、大規模に実行する運用者にとってはMoEモデルは魅力的ですが、単一のアクセラレータに収めようとするには不向きです。
学習には独自の難しさがあります:ルータがほとんどのトークンを数少ないお気に入りのエキスパートに送ると、残りのエキスパートは役に立つことを学習しません。ロードバランシング目的関数はこれを防止し、密なモデルには存在しないチューニング問題を追加します。
よくある質問
- MoEモデルはなぜ2つのパラメータ数を報告するのか?
- 全体のパラメータ数はモデル全体を表し、アクティブなパラメータ数はトークンごとに使用される数を示します。計算コストはアクティブな数を追跡し、メモリ要件は全体を追跡します。
- MoEモデルは密集型モデルよりも劣っているのか?
- 必ずしもそうとは限らない。計算リソースあたりの容量は増えるが、メモリ使用量が増え、ルータが作業を均等に分配する必要があるため、学習がより複雑になる。