Mixture of Experts(MoE)をご覧ください。NLP、ビジョン、ロボティクスなどのスケーラブルで効率的なモデルを可能にする画期的なAIアーキテクチャです。
専門家混合モデル(MoE)は、計算コストを比例的に増加させることなくモデルを大規模に拡張可能にする、深層学習における特殊なアーキテクチャ設計である。標準的な密結合ニューラルネットワーク(NN)では全てのパラメータが全入力に対して活性化するのに対し、MoEモデルは条件付き計算と呼ばれる手法を採用する。 この手法では、入力データの特性に基づいてネットワーク構成要素の小さな部分集合(「エキスパート」と呼ばれる)のみを動的に活性化します。これによりMoEアーキテクチャは、数兆ものパラメータを保持しながらも、はるかに小規模なシステムの推論遅延と処理速度を維持できる強力な基盤モデルの構築を可能にします。
エキスパート混合モデル(MoE)の効率性は、標準的な密結合層を疎なMoE層で置き換えることに由来する。この層は通常、情報を効率的に処理するために連携して動作する二つの主要要素で構成される:
両概念とも複数のサブモデルを使用するが、エキスパート混合モデルとモデルアンサンブルを区別することが重要である。従来のアンサンブルでは、グループ内の各モデルが同一入力を処理し、精度を最大化するために結果を平均化または投票する。この手法では、モデル数に比例して計算コストが直線的に増加する。
逆に、MoEは単一の統合モデルであり、異なる入力が異なる経路を通過する。疎なMoEは、特定の推論ステップにおいて総パラメータのごく一部のみを実行することで、スケーラビリティと効率性を追求する。これにより、高密度アンサンブルに伴う膨大なコストを伴わずに、膨大な量の学習データを用いたトレーニングが可能となる。
MoEアーキテクチャは、特にマルチタスク能力と広範な知識保持を必要とするシナリオにおいて、現代の高性能AIの基盤技術となっている。
ゲートネットワークが専門家をどのように選択するかを理解するには、この簡略化された PyTorch 例を考えてみましょう。これは、与えられた入力に対して最も関連性の高いエキスパートを選択するルーティングメカニズムを示しています。
import torch
import torch.nn as nn
# A simple router deciding between 4 experts for input dimension of 10
num_experts = 4
input_dim = 10
router = nn.Linear(input_dim, num_experts)
# Batch of 2 inputs
input_data = torch.randn(2, input_dim)
# Calculate scores and select the top-1 expert for each input
logits = router(input_data)
probs = torch.softmax(logits, dim=-1)
weights, indices = torch.topk(probs, k=1, dim=-1)
print(f"Selected Expert Indices: {indices.flatten().tolist()}")
MoEモデルは利点がある一方で、トレーニングプロセスに特有の課題を提示する。主要な問題は負荷分散であり、ルーターが少数の「人気のある」エキスパートを優先し他のエキスパートを無視することで、余剰容量が発生する可能性がある。これを緩和するため、研究者は補助損失関数を用いて全エキスパートの均等な使用を促進する。
さらに、これらの大規模モデルを展開するには高度なハードウェア構成が必要です。総パラメータ数が多いため(アクティブなパラメータが少ない場合でも)、モデルは多くの場合膨大なVRAMを必要とし、複数のGPUにまたがる分散トレーニングが不可欠となります。Microsoft フレームワークは、 これらのシステムを効率的に訓練するために必要な並列処理を管理するのに役立ちます。 このような複雑なアーキテクチャ向けのデータセットと訓練ワークフローを管理するには、 Ultralytics ツールが、 ロギング、可視化、デプロイのための不可欠なインフラストラクチャを提供します。