MoE Deep Dive v3

Mixture of Experts (MoE) 12段階極小解剖シミュレーター

トークンが受領されてから、ルーター、FFNの非線形展開を経て最終出力ベクトルが合成されるまでの全行程を完全ビジュアル化

数理検証用インタラクティブ例題(プリセット)

カスタム入力・ハイパーパラメータ

入力トークンベクトル $x = [x_1, x_2, x_3]^T$ [1.20, -0.40, -0.80]
x₁
x₂
x₃
ルーティング調整パラメータ
活性化する専門家数 (Top-K選択数: $k$) k = 2
ノイズの強度(標準偏差 $\sigma$) σ = 0.0
MoE データパス物理アニメーション
Step 1/12 入力トークンベクトル x の受領

12段階極小数理ステップ詳細解説

STEP 1: トークンベクトルの入力 (Token Input)

Input Vector
【目的・意義】先行するニューラル構造から高次元特徴表現(セマンティック・エンベッディング)を連続空間として受領する。

Transformerレイヤー内の前段処理(Self-Attention、LayerNormなど)から送り出された高次元特徴の隠れ状態ベクトル $x$ です。この3次元値は、トークンの持つ文脈的文法意味の幾何学的位置情報を表しています。後続するゲートおよび並列処理ネットワークは、この特徴分布をもとに配送最適化と非線形変換を開始します。

STEP 2: ルーター重みとの適合度 (Routing Logits)

Linear Affinity
【目的・意義】トークンが備える意味ドメインと、各専門家(Expert)の「得意領域」とのパターン類似度(Affinity)を内積空間上でマッピングする。
$s_{\text{raw}} = W_g x = \begin{pmatrix} W_{g1} \cdot x \\ W_{g2} \cdot x \\ W_{g3} \cdot x \\ W_{g4} \cdot x \end{pmatrix}$

ルーターの学習パラメータ行列 $W_g$ の各行(各Expertの判定基準プロファイル)と入力 $x$ の行列積(内積演算)により、未正規化の適合度スコア $s_{\text{raw}}$ を算出します。これにより「トークンがどの知識ドメイン(例:文法、数学、コーディング、歴史など)に属するか」を線形代数的に判別します。

STEP 3: 探索ノイズ尺度の決定 (Noise Scaling)

Std Dev Calc
【目的・意義】確率的ルーティングに必要な動的ノイズの標準偏差 $\sigma$ を設定し、学習の過剰適合(特定Expertへの不均等な集中)を数理的に緩和する。
$\text{Noise Scale} = \sigma$

Noisy Top-K ゲート機構の根幹をなすパラメータです。学習初期はノイズを強く付加して探索(Exploration)を促すことで、「たまたま最初に適合度が高くなったExpertだけが追加学習を繰り返し、他のExpertのパラメータが全く更新されない」というデッド・エキスパート問題(Winner-Takes-All現象)を数理的・動的に抑止します。

STEP 4: ノイズの加算 (Gaussian Noise Addition)

Noisy Gating
【目的・意義】決定的な適合度スコアにガウス確率を重畳し、ルーティング結果に確率的なゆらぎを導入して多様な専門家に割り振る。
$s = s_{\text{raw}} + \epsilon \quad (\epsilon_i \sim \mathcal{N}(0, \sigma^2))$

算出された生の適合スコアに、ガウス分布(正規分布)からサンプリングした微小乱数 $\epsilon_i$ を加算します。これにより、適合度が極めて近いExpert間で順位の「逆転」があえて発生するようになり、学習過程における局所解へのスタック回避とロードバランシング(負荷平準化)を可能にします。

STEP 5: Top-K フィルタリング (Sparsity Cutoff)

KeepTopK Gate
【目的・意義】活性化対象以外のExpertを強制的に足切り($-\infty$ マスク)し、ネットワーク全体を劇的に「スパース(疎)」にする。
$s_{\text{topK}, i} = \begin{cases} s_i & (i \in \text{TopK}) \\ -\infty & (\text{otherwise}) \end{cases}$

全 $N$ 個の専門家のうち、スコアが上位 $k$ 個(例:2個)に満たない残りのスコアを強制的にマイナス無限大 $-\infty$ に置き換えます。これがMoEの「スパース性」の真髄であり、無用な演算を遮断し、パラメータ総数は莫大(数千億クラス)でもトークンごとの実行演算量(FLOPs)を低次元に固定するマジックです。

STEP 6: Softmax関数による確率正規化 (Softmax)

Normalize Prob
【目的・意義】マスク処理後のスコアを、微分可能な比率割合(総和 $1.0$)の連続的な「確率的分配ウェイト(Gate)」へ変換する。
$g_i = \frac{\exp(s_{\text{topK}, i})}{\sum_j \exp(s_{\text{topK}, j})}$

指数関数と正規化(Softmax)を施すことで、上位 $k$ 個の活性専門家には連続的な重み比率(総和1.0)が割り当てられます。一方で、選外(Step 5で $-\infty$ マスクされた)専門家は $\exp(-\infty) = 0$ となり、割り当て確率は完全な $0.000$ となって、微分可能な性質を保持したまま不活性化されます。

STEP 7: 選択専門家へのトークン配送 (Routing & Dispatch)

Token Dispatch
【目的・意義】重み確率 $g_i > 0$ を得たアクティブな並列Expert FFNのみに、入力トークンベクトルをコピーして演算をディスパッチする。

ゲート確率がゼロより大きくなった $k$ 個の専門家(実体はFFNの物理ブロック)にトークンデータ $x$ を複製して配送します。ディープラーニングシステム上では、この段階で大量のトークンを束ねるテンソルの配置転換(GPU内のAll-to-All通信など)が行われ、超並列計算プロセスへと流されます。

STEP 8: Expert内部 FFN 第1層(Up-Projection)

Up-Projection
【目的・意義】活性専門家の内部ニューロン空間(中間次元)へとトークン特徴量を高次元射影(本シミュレーションでは3→4次元)し、表現能力を拡大する。
$z_i = W_{\text{up}, i} \cdot x$

選ばれたエキスパート(FFN)の第1層目の重み行列 $W_{\text{up}, i}$ と入力 $x$ の積を計算します。低次元(Transformerの隠れ空間)から高次元の中間隠れ層に引き上げることで、情報間の複雑な関係性を幾何学的に分離・表現しやすい状態(非線形セパレータビリティ)を作ります。

STEP 9: 非線形活性化関数(ReLU)の適用

Activation (ReLU)
【目的・意義】高次元表現に非線形活性を付与してニューラル表現力を決定的にし、特徴のスパースなON/OFFパターン(発火)を刻み込む。
$h_i = \text{ReLU}(z_i) = \max(0, z_i)$

中間層ベクトル $z_i$ に対して要素ごとに $\text{ReLU}$ 関数を適用し、負の値を一律 $0$ にリセットします。この活性化関数がないと、多層のニューラルネットワークも「単一の線形代数写像」に退化してしまいます。非線形活性化を通じてはじめて、ニューロンは複雑なパターンや条件分岐ルールをニューラルに学習できます。

STEP 10: Expert内部 FFN 第2層(Down-Projection)

Down-Projection
【目的・意義】高次元での複雑な非線形特徴変換を終えた情報ベクトルを、モデルの規格(残差接続)に適した元の元の低次元に戻す。
$E_i(x) = W_{\text{down}, i} \cdot h_i$

活性化中間層ベクトル $h_i$ に下降投影行列 $W_{\text{down}, i}$ を掛け、元の3次元隠れ次元に圧縮します。これにより、各Expert(知識ドメイン)内で高度に特殊化・精査された変換データが、元のモデルの伝播経路へとスムーズに戻すことができるコンパクトな形式 $E_i(x)$ へと結実します。

STEP 11: ゲート確率による出力のスケーリング (Gating Scale)

Weight Scaling
【目的・意義】ルーターが算出した「適合の確信度」を乗算し、Expertの貢献度をエンドツーエンドで微分可能な形で結果に反映する。
$\text{Scaled Output}_i = g_i \cdot E_i(x)$

算出された個別のExpert出力ベクトル $E_i(x)$ に対し、Step 6で決定した割り当て割合(ゲート値) $g_i$ を掛け合わせます。これにより、単なる二者択一(1 or 0)ではなく、ルーターの「この専門家に80%任せ、あちらには20%任せる」といったソフトな重要度配分が数理的に保障され、誤差逆伝播の勾配がルーターまで適切に届くようになります。

STEP 12: 各専門家出力の加重和・最終合成出力 (Weighted Sum)

Final Combine
【目的・意義】選出された異なる専門家たちの個別の意見(ベクトル)をブレンドして統合し、レイヤー全体の調和された最終出力 $y$ を完成させる。
$y = \sum_{i=1}^{N} g_i E_i(x)$

重み付けされたExpertのアウトプットベクトルを要素ごとに加算(加重和)し、MoE層の最終出力 $y$ を合成します。このベクトル $y$ は、モデルが持つ全Expert(巨大な全体知)の中から、そのトークンに最も適合する特化知を高効率にアンサンブル・凝縮した精鋭の特徴量を意味し、次なるTransformerブロックへと引き継がれます。

MoEにおける補助損失 (Auxiliary Loss) の厳密な数学的表現

勝者総取り問題(Winner-Takes-All)を防ぐため、ルーティングの決定比率 $f_i$(各Expertへトークンが送られた回数の割合)と、各Expertへルーターが出力した予測確率値のバッチ平均 $P_i$ とのクロス積をとって総和し、Expert数($N$)でスケールします。この値が最小化(=すべての専門家へ均等 $1/N$ ずつ指名が向く)されるよう動作します。