OpenAI と Mistral AI によって人気を博した MoE の背景にあるストーリーとは?ハイブリッドアーキテクチャの導入に関する包括的なガイド

OpenAI と Mistral AI によって人気を博した MoE の背景にあるストーリーとは?ハイブリッドアーキテクチャの導入に関する包括的なガイド

専門家の混合 (MoE) は、LLM の効率性と精度を向上させるためによく使用される手法です。このアプローチは、複雑なタスクをより小さく管理しやすいサブタスクに分割し、各サブタスクを専門のミニモデルまたは「エキスパート」が処理することによって機能します。

以前、GPT-4 は 8 つのエキスパート モデルで構成される統合システムを使用していることが明らかになりました。最近、Mistral AI は Mixtral 8x7B をリリースしました。これもこのアーキテクチャを採用しており、非常に優れたパフォーマンスを実現しています (ポータル: 磁気リンクが AI サークルを席巻、87GB シードが直接オープンソースの 8x7B MoE モデル)。

OpenAI と Mistral AI からの 2 つの推進の波により、MoE はしばらくの間、オープン人工知能コミュニティで最もホットな話題となりました。

この記事では、MoE の構成要素、トレーニング方法、および推論に MoE を使用する際に考慮すべきトレードオフについて説明します。

ハイブリッド エキスパート アーキテクチャは MoE と呼ばれます。その特徴は次のとおりです。

  • 事前トレーニングは高密度モデルよりも高速です。
  • 同じ数のパラメータを持つモデルと比較して推論速度が速い。
  • すべてのエキスパート モデルをメモリにロードする必要があるため、大量のビデオ メモリが必要になります。
  • 微調整には多くの課題がありますが、MoE 命令の微調整に関する最近の取り組みは、これらの問題に対処する上で有望であることを示しています。

Mixed of Experts (MoE) とは何ですか?

モデルのサイズは、その品質を決定する最も重要な要素の 1 つです。予算が固定されている場合、より少ないステップでより大きなモデルをトレーニングする方が、より多くのステップでより小さなモデルをトレーニングするよりも効果的です。

MoE は、より少ない計算オーバーヘッドでモデルを事前トレーニングできるため、高密度モデルと同じ計算オーバーヘッドでモデルまたはデータセットの規模を大幅に拡大できます。特に、事前トレーニング中、MoE モデルは高密度モデルと同じパフォーマンスに早く到達できます。

では、MoE とは何でしょうか? Transformer モデルの観点から見ると、MoE は次の 2 つの主要要素で構成されます。

  • 高密度フィードフォワード ネットワーク (FFN) レイヤーの代わりにスパース MoE レイヤーを使用します。 MoE レイヤーには一定数 (たとえば 8 人) の「エキスパート」が存在し、各エキスパートはニューラル ネットワークです。実際、エキスパートは FFN、より複雑なネットワーク、または MoE 自体である可能性があり、複数の MoE レイヤーを持つ MoE を形成します。
  • ゲーティング ネットワークまたはルーターを使用して、どのトークンをどのエキスパートに送信するかを決定します。たとえば、下の画像では、「詳細」は 2 番目のエキスパートに送信され、「パラメーター」は 1 番目のエキスパートに送信されます。ルータも学習したパラメータで構成され、ネットワークの残りの部分と同時に事前トレーニングされるため、ルータを介してトークンを専門家に送信する方法は、MoE を使用するときに計画する重要なポイントの 1 つです。

スイッチトランスフォーマーの MoE レイヤー (https://arxiv.org/abs/2101.03961)

つまり、MoE では、トランスフォーマー内の各 FFN レイヤーが、ゲーティング ネットワークと一定数のエキスパート ネットワークで構成される MoE レイヤーに置き換えられます。

MoE は、高密度モデルと比較して効率的な事前トレーニングや高速な推論などの利点がありますが、いくつかの課題にも直面しています。

  • トレーニング: MoE は事前トレーニングの計算効率を大幅に向上させることができますが、微調整中に一般化を達成することが難しく、過剰適合が発生します。
  • 推論: MoE には多くのパラメータがありますが、推論中に使用されるのはそれらのサブセットのみです。同じ数のパラメータを持つ高密度モデルと比較すると、推論ははるかに高速です。ただし、すべてのパラメータを RAM にロードする必要があるため、メモリ要件が高くなります。たとえば、Mixtral 8x7B のような MoE の場合、47B のパラメータを持つ高密度モデルを収容するのに十分なビデオ メモリが必要です。なぜ 8 x 7B = 56B ではなく 47B パラメータなのでしょうか?これは、MoE モデルでは、FFN レイヤーのみが独立したエキスパート ネットワークとして扱われ、残りのモデルのパラメーターは共有されるためです。同時に、各トークンが 2 つのエキスパート ネットワークにのみ渡されると仮定すると、2x7B 行列乗算演算を実行し、一部のレイヤーが共有されるため (これについては後で詳しく説明します)、推論速度 (FLOP) は 14B モデルではなく 12B モデルを使用するのと同等になります。

MoE の概要を紹介した後、MoE の開発の軌跡を見てみましょう。

文部科学省の簡単な歴史

MoE は、1991 年の論文「Adaptive Mixture of Local Experts」(https://www.cs.toronto.edu/~hinton/absps/jjnh91.pdf) から生まれました。この論文のアイデアは、それぞれがトレーニング セットの異なるサブセットを処理する異なるネットワークで構成されたシステムの監視手順を提供するアンサンブル メソッドに似ています。それぞれのネットワークまたはエキスパートは、入力空間の異なる領域に特化しています。専門家の選択方法については、ゲーティング ネットワークが各専門家ネットワークの重みを決定します。トレーニング プロセスでは、エキスパート ネットワークとゲーティング ネットワークの両方がトレーニングされます。

2010年から2015年にかけて、文部科学省のその後の進歩に貢献した2つの研究分野が開発されました。

  • エキスパート ネットワークのコンポーネント化: 従来の MoE では、システム全体がゲーティング ネットワークと複数のエキスパート ネットワークで構成されます。 SVM、ガウス過程、その他の方法の中で、研究者は全体的なモデルとして MoE を研究してきました。 Eigen、Ranzato、Ilya による研究では、MoE をより深いネットワークの構成要素として調査しました。 MoE は多層ネットワークのコンポーネントとして使用できるため、モデルの大規模化と効率化が可能になります。
  • 条件付き計算: 従来のネットワークの各層はすべての入力データを処理します。次に、Yoshua Bengio は、入力トークンに基づいてコンポーネント ネットワークを動的にアクティブ化または非アクティブ化する方法を調査しました。

これらの研究は、研究者が NLP のコンテキストで専門家の混合モデルを研究する動機となりました。具体的には、Google の Shazeer、Geoffrey Hinton、Jeff Dean、Chuck Norris は、スパース ネットワークを導入することでこのアイデアを 137B LSTM に拡張し、大規模でも非常に高速な推論速度を維持しました。この研究は機械翻訳に重点を置いていますが、通信コストが高い、トレーニングが不安定であるなどの欠点もあります。

論文「とんでもなく大きなニューラルネットワーク」の MoE レイヤー

MoE は、オープンソースの 1.6T パラメータ Switch Transformer など、数兆個のパラメータを持つモデルをトレーニングできます。コンピュータビジョンの分野でもMoEが検討されていますが、ここではNLPの分野に焦点を当てます。

スパース化とは何ですか?

スパース化という用語は、条件付きコンピューティングの概念に由来します。密なモデルではすべてのパラメータが作用しますが、疎なモデルではシステム全体の特定の部分のみを作用させることができます。

前述のように、Shazeer は機械翻訳における MoE を調査しました。条件付き計算 (ネットワークの特定の部分のみがアクティブ) により、計算量を増やすことなくモデルをスケールアップできるため、MoE の各レイヤーには数千のエキスパート ネットワークを含めることができます。

しかし、この設計にはいくつかの課題があります。たとえば、バッチ サイズを増やすとモデルのパフォーマンスが向上するのが通常ですが、MOE では、データがアクティベーション状態の専門家ネットワークを通過するにつれてバッチ サイズが縮小します。たとえば、バッチ サイズが 10 トークンの場合、そのうち 5 つは 1 つのエキスパート ネットワークに配置され、残りの 5 つは 5 つの異なるエキスパート ネットワークに配置される可能性があります。その結果、バッチ サイズが不均一になり、十分に活用されなくなります。

この問題を解決するにはどうすればいいでしょうか? 1 つのアプローチは、学習したゲーティング ネットワーク (G) に入力情報をどのエキスパート ネットワーク (E) に伝えるかを決定させることです。

この場合、専門家のネットワーク全体が、重み付けされた乗算方式ですべての入力を処理します。しかし、G が 0 の場合はどうなるでしょうか?この場合、対応するエキスパート ネットワークの計算を実行する必要がないため、計算のオーバーヘッドが節約されます。では、典型的なゲーティング機能はどのようなものでしょうか?最も伝統的な設定では、ソフトマックス関数を使用した単純なネットワークが使用されます。ネットワークは、入力データをどのエキスパートに渡すかを学習します。

Shazeer 氏の研究では、Top-K ノイズ ゲーティングなどの他のゲーティング メカニズムも調査されました。このゲーティング方法では、いくらかの(調整可能な)ノイズが導入され、上位の K が保持されます。つまり:

1. ノイズを加える

2. 最初のkだけを選択する

3. ソフトマックス活性化を使用します。

このスパース化操作には、いくつか興味深い特性があります。研究者らは、十分に小さい k (たとえば、1 または 2) を使用することで、多くのエキスパート ネットワークがアクティブ化される設定よりもトレーニングと推論の速度が速くなることを発見しました。では、top=1 のときにエキスパート ネットワークをそのまま維持しないのはなぜでしょうか?研究者らは当初、ゲーティング ネットワークが異なる専門家にルーティングする方法を学習するには、複数の専門家にルーティングする必要があるため、少なくとも 2 人の専門家を選択する必要があるという仮説を立てました。この決定については、スイッチトランスフォーマーのセクションで再度検討します。

なぜノイズを追加するのですか?これは負荷分散のためです。

MoEトークンの負荷分散

前述したように、すべてのトークンが少数の人気のあるエキスパート ネットワークにのみ送信されると、トレーニングの効率が低下します。通常、MoE トレーニングでは、ゲーティング ネットワークは同じ少数のエキスパート ネットワークを頻繁にアクティブ化することに収束します。トレーニングが進むにつれて、好ましいエキスパート ネットワークがより速くトレーニングされ、選択される可能性が高くなるため、この傾向はより顕著になります。これを緩和するために、すべての専門家に同等の重要性を与えることを奨励する補助損失を追加することができます。この損失により、すべての専門家がほぼ同じ数のトレーニング サンプルを受け取ることが保証されます。この記事の後半では、エキスパートが処理できるトークン数のしきい値であるエキスパート容量の概念について説明します。変圧器では、補助損失は aux_loss パラメータを介して公開されます。

MoEとトランスフォーマー

Transformer は、パラメータの数を増やすことでパフォーマンスが向上することを示す非常にわかりやすい例であるため、Google が GShard でこの考え方に従い、Transformer のパラメータの数を 6000 億以上に拡張するのは当然のことです。

GShard は、エンコーダーとデコーダーの両方でトップ 2 ゲーティング技術を使用し、FFN レイヤーを MoE レイヤーに置き換えます。次の図はエンコーダーの一部を示しています。

GShard の MoE Transformer エンコーダー

この設定は、大規模なコンピューティングに非常に有益です。複数のデバイスにスケーリングする場合、MoE レイヤーはデバイス間で共有され、他のすべてのレイヤーは複製されます。詳細については、以下の「効率的なトレーニング MoE」でさらに説明します。

バランスの取れた負荷とスケール効率を維持するために、GShard の作成者は、前のセクションで説明したのと同様の補助損失を採用することに加えて、いくつかの改善を導入しました。

  • ランダム ルーティング: トップ 2 設定では、常に 1 位のエキスパートが選択され、2 番目のエキスパートは重みに比例した確率で選択されます。
  • エキスパートの容量: エキスパートが処理できるトークンの数のしきい値を設定することもできます。両方のエキスパートの処理能力がしきい値に達した場合、トークンはオーバーフローとみなされ、残りの接続を介して次のレイヤーに送信されます(または他のプロジェクトでは完全にドロップされます)。この概念は MoE の最も重要な概念の 1 つになります。なぜ専門家の能力を確立する必要があるのでしょうか?すべてのテンソルの形状はコンパイル時に静的に決定されますが、各エキスパートが入力として取得するトークンの数を事前に知ることは不可能であるため、容量を決定する必要があります。

GShard の貢献は、MoE の並列計算モードを決定することです。推論中は、一部のエキスパート ネットワークのみがトリガーされることに注意してください。同時に、すべてのトークンに適用されるセルフアテンションメカニズムなど、データの共有を必要とするステップがいくつかあります。そのため、8 人のエキスパートで構成される 47B モデルの場合、GShard は 12B の高密度モデルで計算できます。 top-2 を使用する場合は、14B パラメータが必要です。しかし、アテンション操作が共有されることを考慮すると、実際に使用されるパラメータの数は 12B になります。

スイッチトランス

MoE は有望ではあるものの、トレーニングと微調整の不安定性に依然として悩まされています。 Switch Transformer (https://arxiv.org/abs/2101.03961) の出現は大きな意義があります。著者らは、Hugging Face (https://huggingface.co/google/switch-c-2048) で 2048 人の専門家による 1.6 兆のパラメータ モデルも公開しました。 T5-XXLと比較すると、Switch Transformerの事前トレーニング速度が4倍に向上します。

スイッチトランスフォーマー論文のスイッチトランスフォーマー層

著者らが GShard で FFN レイヤーを MoE レイヤーに置き換えたのと同様に、Switch Transformer の論文では、2 つの入力 (2 つの異なるトークン) を受け取り、4 つのエキスパート ネットワークを持つ Switch Transformer レイヤーが提案されました。

少なくとも 2 つのエキスパート ネットワークを使用するという当初のアイデアとは対照的に、Switch Transformers は単純化された単一のエキスパート戦略を採用しています。この方法の効果は次のとおりです。

  • ルーティング計算の量を削減
  • 各専門家のバッチサイズは少なくとも半分になります
  • 通信コストの削減
  • モデルの品質は依然として保証されている

Switch Transformer では、エキスパート容量の概念も探求します。

上記で推奨されている容量計算方法は、バッチ サイズ内のトークンの数をエキスパートに均等に分配することです。 1 より大きい容量係数を使用すると、トークンのバランスが完全に取れていない場合にバッファが提供されます。容量を増やすとデバイス間の通信コストが増加するため、トレードオフに注意する必要があります。特に低い容量係数 (1 ~ 1.25) では、スイッチトランスフォーマーのパフォーマンスが特に優れています。

Switch Transformer の作成者は、この章で説明した負荷分散損失についても再検討し、簡素化しました。交換されたレイヤーごとに、トレーニング中に補助損失がモデル全体の損失に追加されます。この損失により、モデルは均一なルーティングを優先するようになり、ハイパーパラメータを使用して重み付けできます。

Switch Transformer の作成者は、エキスパートのトレーニングには bfloat16 パラメータ精度を使用し、他の計算には完全な精度を使用するなど、選択的な精度の実験も行いました。精度を低くすると、プロセッサ間の通信コスト、計算コスト、テンソルの保存に使用されるメモリを削減できます。最初の実験では、エキスパート ネットワークとゲーティング ネットワークの両方が bfloat16 を使用してトレーニングされましたが、トレーニング結果は安定していませんでした。これは主に、計算にルーティング ネットワークが関与しているためです。ルーティング ネットワークは指数関数であるため、より高い精度が非常に重要です。不安定性を軽減するために、ルーティングでも完全な精度が使用されます。

選択的精度を使用すると品質が低下しず、モデルのトレーニングが速くなります。

微調整部分では、スイッチトランスフォーマーはエンコーダー/デコーダー設定を使用して、T5 を MoE にマッピングします。 GLaM (https://arxiv.org/abs/2112.06905) は、GPT-3 の品質に匹敵するモデルを 3 分の 1 の計算コストでトレーニングし、モデルの規模を拡大する方法を研究しています。 GLaM の著者らの研究は、微調整ではなく、純粋なデコーダー モデルと、少数ショットおよびゼロ ショットの評価結果に焦点を当てています。彼らはトップ 2 ルーティングとより大きな容量係数を使用しました。さらに、彼らは、使用したいコンピューティングの量に応じてトレーニングと検証中に変更できるメトリックとして、容量係数を調査しました。

Z損失損失関数に基づくルーティングネットワークの安定したトレーニング

上で説明したバランスの喪失は不安定性の問題につながる可能性があります。しかし、品質を犠牲にしてスパース モデルを安定化する方法は数多くあります。たとえば、ドロップアウトを導入すると安定性は向上しますが、モデルのパフォーマンス品質が犠牲になります。一方、乗法コンポーネントを追加すると、モデルのパフォーマンス品質は向上しますが、安定性は低下します。

ST-MoE (https://arxiv.org/abs/2202.08906) で導入されたルーター z 損失は、ゲーティング ネットワークに入る大きな対数値にペナルティを課すことで、品質を低下させることなくトレーニングの安定性を大幅に向上させます。この損失により値が小さくなるため、丸め誤差が減少し、ゲーティングの指数関数に大きな影響を与える可能性があります。

専門家ネットワークは何を学ぶことができるのでしょうか?

ST-MoE の著者の観察によると、エンコーディング エキスパート ネットワークはグループ トークンまたは浅い概念に重点を置いています。たとえば、句読点の専門家、固有名詞の専門家などです。一方、デコード エキスパート ネットワークはそれほど専門的ではありません。著者らも多言語環境で訓練を受けました。想像に反して、各エキスパート ネットワークは 1 つの言語に精通しています。トークンはルーティングされ、負荷分散されるため、エキスパート ネットワークは 1 つの言語に特化しているわけではありません。

さまざまなトークン グループがどの専門家に送信されたかを示す ST-MoE 論文の表。

専門家数の増加が事前トレーニングに与える影響

エキスパートの数が増えるほど、サンプリング効率が高くなり、速度が速くなりますが、リターンも減少し (特に 256 または 512 のオーダー以降)、推論に必要なビデオ メモリも増加します。 Switch Transformers で研究された大規模な特性は、レイヤーごとに 2 人、4 人、または 8 人の専門家がいる場合でも、小規模でも一貫しています。

MoEの微調整

Mixtral はトランスフォーマーのバージョン 4.36.0 をサポートしています。 pip install "transformers==4.36.0 --upgrade を使用して更新します

密なモデルと疎なモデルのオーバーフィッティングのダイナミクスは非常に異なります。スパース モデルは過剰適合になりやすいため、エキスパート自体の中でより高い正規化を探索できます (たとえば、密なレイヤーの場合は 1 つのドロップアウト、スパース レイヤーの場合は別のより高いドロップアウト)。

もう一つの決定は、微調整に補助損失を使用するかどうかです。 ST-MoE の作者は補助損失をオフにしてみましたが、最大 11% のトークンが破棄されても品質に大きな影響はないことがわかりました。トークンドロップは、過剰適合を防ぐのに役立つ正規化の一種である可能性があります。

Switch Transformer の著者は、事前トレーニングの難しさが固定されている場合、スパース モデルはダウンストリーム タスク、特に SuperGLUE などの推論を多用するタスクでは、密なモデルよりもパフォーマンスが低下することを観察しました。一方、TriviaQA などの知識集約型コーパスでは、スパース モデルのパフォーマンスは驚くほど優れています。著者らはまた、専門家が微調整にあまり貢献していないことも観察した。一般化の問題に関するもう 1 つの観察結果は、モデルが小規模なタスクではパフォーマンスが低いが、大規模なタスクではパフォーマンスが高いことです。

小さなタスク (左) では、明らかな過剰適合が見られ、スパース モデルは検証セットでパフォーマンスが大幅に低下しています。大規模なタスク (右) では、MoE のパフォーマンスは非常に優れています。 ST-MoE 論文からの画像。

すべての非エキスパート重みを固定しようとすると、パフォーマンスが大幅に低下しましたが、MoE レイヤーがネットワークの大部分を占めるため、これは予想どおりです。逆のアプローチ、つまり MoE レイヤーのパラメータのみを固定してみると、すべてのパラメータを更新した場合とほぼ同じ結果が得られることがわかります。この発見は、微調整を高速化し、メモリ使用量を削減するのに役立ちます。

MoEレイヤーのみをフリーズすることで、品質を維持しながらトレーニングを高速化できます。この図はST-MoEの論文からの抜粋です。

スパース化された MoE を微調整する際に考慮すべき最後の問題は、異なる MoE には異なる微調整ハイパーパラメータがあるということです。たとえば、スパース モデルは、バッチ サイズが小さく、学習率が高いほどメリットが得られる傾向があります。

スパース モデルの微調整品質は、学習率の増加とバッチ サイズの減少によって向上します。この図はST-MoEの論文からの抜粋です。

研究者たちは MoE を微調整する作業を続けてきたが、その過程は紆余曲折に満ちていた。最近の論文「MoEs Meets Instruction Tuning」では、次のような実験が行われました。

  • 単一タスクの微調整
  • マルチタスク命令の微調整
  • マルチタスク指示を調整した後、単一タスクを微調整する

論文では、著者らが MoE と T5 を微調整したところ、T5 の同等のシミュレーション出力が向上しました。著者らが Flan T5 と MoE を微調整したところ、MoE のパフォーマンスが大幅に向上しました。さらに、MoE に対する Flan-MoE の改善は、T5 に対する Flan T5 の改善よりも大きく、これは、密なモデルよりも MoE が命令チューニングからより多くの利益を得る可能性があることを示しています。 MoE は、より多くのミッションを持つことでより多くの利益を得るでしょう。補助損失関数をオフにすることを提案する以前の結論とは反対に、損失関数は実際には過剰適合を防ぎます。

密なモデルと比較すると、スパース モデルは命令のチューニングからより多くのメリットを得られます。論文「MoEs Meets Instruction Tuning」からの画像

疎な MoE をいつ使用し、密な MoE をいつ使用するのでしょうか?

エキスパート モデルは、複数のマシンを使用する高スループットのシナリオに適しています。事前トレーニングのコンピューティング予算が固定されている場合、スパース モデルがより理想的になります。ビデオ メモリが制限された低スループットのシナリオでは、高密度モデルの方が適しています。

注意: スパース モデルと密なモデルのパラメータの数を直接比較することはできません。それらが表す意味が明らかに異なるためです。

効率的なトレーニング MoE

初期の MoE 作業では、MoE レイヤーをブランチとして設定しましたが、GPU がこの目的向けに設計されていなかったためモデルの計算が遅くなり、デバイスが他のデバイスに情報を送信する必要があったためネットワーク帯域幅がボトルネックになりました。このセクションでは、これらのモデルの事前トレーニングと推論をより実用的にするための既存の作業について説明します。

並列コンピューティング

並列コンピューティングの種類:

  • データの並列処理: 同じ重みがすべてのコアに複製され、データはコア間で分割されます。
  • モデルの並列処理: モデルは異なるコアに分割され、データは異なるコアに複製されます。
  • モデルとデータの並列処理: モデルとデータを異なるコア間で分割します。異なるカーネルは異なるデータ バッチを処理することに注意してください。
  • エキスパートの並列処理: エキスパートを異なるワークステーションに配置します。データ並列処理と組み合わせると、各コアに異なるスペシャリストが配置され、データはすべてのコア間で分割されます。

エキスパート並列モードでは、エキスパートが異なるワークステーションに配置され、各ワークステーションが異なるバッチのトレーニング サンプルを収集します。非 MoE レイヤーの場合、エキスパート並列処理はデータ並列処理と同じように動作します。 MoE レイヤーの場合、シーケンス内のトークンは、必要なエキスパートがいるワークステーションに送信されます。

Switch Transformers の論文からのイラスト。さまざまな並列化手法を使用して、データとモデルがコア間で分割される様子を示しています。

容量係数と通信コスト

容量係数 (CF) を増やすとモデルの品質は向上しますが、通信コストとメモリのオーバーヘッドが増加します。全対全通信が遅い場合は、より小さい容量係数を使用する方がよいでしょう。参考までに、次の構成を示します。容量係数が 1.25 のトップ 2 ルーティング メカニズムを使用し、コアごとに 1 つのエキスパートを予約します。検証プロセス中に、容量係数を変更して計算量を削減できます。

サーバ

mistralai/Mixtral-8x7B-Instruct-v0.1 を推論端末にデプロイできます。

MoE の大きな欠点の 1 つは、パラメーターが多いことです。ローカルユースケースでは、より小さなモデルを使用することをお勧めします。オンプレミス展開に役立つテクノロジーをいくつか紹介します。


  • Switch Transformer の著者は蒸留に関する実験を行いました。 MoE を高密度モデルに抽出すると、スパース化のメリットを 30 ~ 40% 維持できます。したがって、蒸留により、前処理が高速化され、モデルが小さくなるという利点が得られます。
  • 革新的なルーティング アルゴリズム: 抽出用のサブネットワークを使用して、完全な文またはタスクをエキスパート ネットワークにルーティングし、サービスを提供します。
  • MoE 集約: この手法では、エキスパートの重みを組み合わせて、推論時に使用されるパラメータを削減できます。

その他の効果的なトレーニング方法

FasterMoE(2022年3月に提案)は、効率的な分散システムにおけるMoEのパフォーマンスと、さまざまな並列化戦略の理論上の限界を分析します。また、エキスパートの人気度を傾ける手法、レイテンシを削減するためのきめ細かい通信スケジューリング、およびレイテンシが最も低いエキスパートを選択するためのトポロジを考慮したゲーティングも分析し、17倍の高速化を実現します。

Megablocks (https://arxiv.org/abs/2211.15841) は、MoE の動的な問題を処理し、効率的なスパース事前トレーニングを探索できる新しい GPU カーネルをリリースしました。この論文では、トークンを破棄しないことを推奨しており、効率的なトークン マッピング テクノロジを実装することで速度が大幅に向上します。秘訣は、従来の MoE では、すべてのエキスパートが同じ形状で同じ数のトークンを持っていると想定して、バッチ行列乗算を使用することです。対照的に、Megablocks は、不均衡な分布に適応できるブロックスパース操作として MoE レイヤーを表します。

さまざまなサイズのエキスパートとトークンの数に応じたブロック疎行列乗算。 MegaBlocks の論文から引用した画像。

オープンソースのMoEアルゴリズム

現在の MoE オープンソース プロジェクト:

  • メガブロック: https://github.com/stanford-futuredata/megablocks
  • フェアシーケンス: https://github.com/facebookresearch/fairseq/tree/main/examples/moe_lm
  • オープンMoE: https://github.com/XueFuzhao/OpenMoE

公開された MoE:

  • Switch Transformer (Google): 8 人から 2048 人の専門家による T5 ベースのシミュレーション エンジンのコレクション。最大のモデルには 1.6 兆個のパラメータがあります。
  • NLLB MoE (メタ): NLLB 翻訳モデルの MoE バリアント。
  • OpenMoE: Llama をベースにした MoE。
  • Mixtral 8x7B (Mistral): Llama 2 70B よりも性能が優れ、推論速度が速い高品質の翻訳モデルです。

今後の展望

探索する価値のある興味深いエリアをいくつか紹介します。

  • Mixtralを高密度モデルに抽出する
  • エキスパートモデルのマージ手法を調査し、推論時間への影響を分析する
  • 混合量子化技術

<<:  世界初の電動ロボットが「宙返り」を練習し、ボストン・ダイナミクス・アトラスに挑戦!コーヒーアートも作れます。

>>: 

ブログ    

推薦する

プログラマーがマスターになるためのプログラミングアルゴリズムトップ10

アルゴリズム1: クイックソートアルゴリズムクイックソートは、Tony Hall によって開発された...

...

...

5年後に最もホットなものは何でしょうか? 2025 年のトップ 10 トレンド: ゼロ検索時代の到来

[[273076]]ファーウェイは8月8日、世界産業展望GIV@2025を発表し、次のように予測した...

「半導体第一の都市」上海、ついに半導体製造再開の夜明けを迎える

上海市経済情報化委員会は4月16日、「上海市工業企業の業務・生産再開に関する防疫対策ガイドライン(第...

専門家の視点:汎用人工知能の可能性

人工知能分野の発展に関するニュースを追う際の課題の 1 つは、「AI」という用語が、無関係な 2 つ...

WebGPT について簡単に説明してください。学びましたか?

原作者: エベネザー・ドン元のアドレス: https://blog.logrocket.com/in...

...

マスク氏はAIが人間を超えると述べ、それを信じない人は単に賢いだけだと語る

北京時間7月23日、テスラのCEOイーロン・マスク氏は水曜日、人工知能(AI)の将来についての懸念を...

...

自動運転分野における機械学習アルゴリズムの応用に関する包括的なレビュー

機械学習は、車内外のセンサーからのデータを融合して、運転者の状態を評価し、運転シナリオを分類するため...

...

マスク氏の AI ツール Grok は ChatGPT のシェルですか?

イーロン・マスク氏の人工知能企業xAIは最近、GroKと呼ばれる人工知能チャットボットをリリースした...

...