Last verified: 2026-10-14
What is Mixture of Experts
標準的なデンストランスフォーマーでは、すべてのトークンがすべてのレイヤーを通過し、各フォワードパスですべてのパラメータをアクティブにします。70B のデンスモデルは、すべてのトークンに対して 70B のパラメータをすべて使用します。 MoE モデルは、選択されたトランスフォーマーブロックのフィードフォワードサブレイヤーを、複数の並列エキスパートサブネットワークと、各トークンをどのエキスパートが処理するかを決定するルーター(ゲーティングネットワークとも呼ばれる)で置き換えます。ほとんどのエキスパートは、任意のトークンに対してアイドル状態です。256 人のエキスパートを持つモデルでも、トークンあたり 8 人のみアクティブにする場合があります — ステップあたりの総容量の約 3% です。 その結果:- 総パラメータはモデルに必要なメモリ量を決定します(すべてのエキスパートをロードし続ける必要があります)。
- アクティブパラメータは各トークンの計算コストを決定します(選択されたエキスパートのみが実行されます)。
How does MoE routing work
各 MoE レイヤーには、各トークンを処理するエキスパートを選択するルーターが含まれています。本番モデルで最も一般的なアプローチはトップ k ゲーティングです:- ルーターは、トークンの隠れ状態を学習済みの重み行列に乗算し、次にソフトマックスを適用してすべてのエキスパートの確率分布を生成することで、各エキスパートのスコアを計算します。
- 最も高いスコアを持つトップ k のエキスパートが選択されます。その出力は、ソフトマックスで正規化された重みを係数として結合されます。
- 他のすべてのエキスパートはそのトークンに対して出力を生成しません — 完全にスキップされます。
Shared experts
一部のアーキテクチャは、ルーティングスコアに関係なくすべてのトークンでアクティブになる共有エキスパートのサブセットを予約します。共有エキスパートは一般的なパターン(言語モデルの基本、フォーマット)を処理するため、ルーティングされたエキスパートは専門化できます。Qwen3-Next は 1 人の共有エキスパートと 10 人のルーティングエキスパートを使用します。Kimi K3 は 2 人の共有エキスパートと 16 人のルーティングエキスパートを使用します。DeepSeek-V3 と元の Qwen3 MoE は共有エキスパートを使用しません — すべてのアクティブなエキスパートはルーターによって選択されます。Load balancing
常に同じ少数のエキスパートにトークンを送信するルーターでは、MoE の目的が失われます。それらのエキスパートがボトルネックになり、残りはアイドル状態になります。本番モデルは、エキスパートの使用をバランスさせるためにいくつかの戦略を使用します:- 補助損失 — ルーターを均一なエキスパート使用に向かわせるトレーニング時のペナルティ。初期の MoE モデルのほとんど(Switch Transformer、ST-MoE)はこのアプローチを使用します。コストは専門化のわずかな低下です。ルーターは品質と並行してバランスを最適化します。
- 補助損失なしのロードバランシング — DeepSeek-V3 は、推論時にエキスパートごとのルーティングバイアスを調整するバイアスベースのアプローチを導入しました。エキスパートがターゲットシェアより多くのトークンを受け取っている場合、バイアスが減少し、選択される可能性が低くなります。これにより、補助損失の品質トレードオフが完全に排除されます。
- Stable LatentMoE — Kimi K3 は、トークン間でより安定したエキスパート割り当てを生成する学習済み潜在ルーティングメカニズムを使用し、標準的なトップ k ゲーティングでロード不均衡を引き起こす分散を削減します。
Why MoE memory scales with total parameters, not active
これは MoE モデルをローカルで実行する前に理解すべき最も重要なことです。 すべてのエキスパートは常にメモリに常駐している必要があります。 ルーターは動的に — トークンごと、レイヤーごとに — どのエキスパートをアクティブにするかを決定します。特定のプロンプトにどのエキスパートが必要になるかを事前に知る方法はないため、すべてのエキスパートをロードして準備しておく必要があります。ディスクからオンデマンドでエキスパートをスワップすることは、インタラクティブな推論にははるかに遅すぎます。 つまり、Memory and offloading のメモリ式が総パラメータに適用され、アクティブパラメータには適用されません:Worked examples
1.2x の係数は、控えめなコンテキスト長での KV キャッシュ、アクティベーション、フレームワークオーバーヘッドを考慮しています — デンスモデルと同じ式です。完全なサイジングの導出については Memory and offloading を参照してください。
What this means in practice
Qwen3-30B-A3B は 30.5B の総パラメータがありますが、アクティブなのは 3.3B だけです。3.3B のデンスモデルとほぼ同じ速度でトークンを生成しますが、30.5B 全体のメモリが必要です。4 ビットでは約 18 GB で、24 GB の GPU に収まります。30B のデンスモデルでも 4 ビットでほぼ同じメモリが必要ですが、30B のパラメータを 3.3B ではなくトークンごとにすべて処理するため、より遅くなります。 逆に、Kimi K3 は 2.8T の総パラメータと 104B のアクティブパラメータがあります。104B のデンスモデルとほぼ同じ速度でトークンを生成しますが、重みだけで約 1.4 TB のメモリを 4 ビットで必要とします。コンシューマーやプロシューマーのハードウェアでは保持できません。MoE vs dense models
重要な洞察:MoE は知識容量をトークンあたりの計算量から切り離します。671B パラメータの MoE(37B アクティブ)は、品質で 70B のデンスモデルに匹敵するかそれを上回り、ほぼ 70B の速度でトークンを生成できます — ただし 671B 分のメモリが必要です。
Expert parallelism: serving MoE across multiple GPUs
MoE モデルが単一の GPU に収まらない場合、分散する必要があります。エキスパート並列は、そのための MoE 固有の戦略です:- 各 GPU は総エキスパートのサブセットを保持します。256 エキスパートのモデルを 8 GPU に分散すると、各 GPU は 32 人のエキスパートを保持します。
- フォワードパス中に、ルーターの決定により、どのトークンをどの GPU に送信する必要があるかが決まります。GPU 3 のエキスパートにルーティングされたトークンは処理のために GPU 3 に通信され、その後結果が戻ります。
- 非エキスパートレイヤー(アテンション、埋め込み)は通常、標準的なテンソル並列を使用して分割され、各 GPU が各レイヤーの重み行列のスライスを保持します。
Which open-weight models use MoE
現在の世代のフロンティアオープンウェイトモデルは MoE に大きく移行しています。2026 年十月時点の状況です:Sub-50B total (runnable on 1-2 consumer GPUs at 4-bit)
50B-250B total (multi-GPU or high-memory unified systems)
250B+ total (server-class hardware required)
Sources: model cards on HuggingFace and the official technical reports linked below.
Practical takeaway for local inference
MoE はモデルカードの数字の意味を変えます:- アクティブパラメータはモデルのトークン生成速度を示します。671B の MoE(37B アクティブ)は、ほぼ 37B の速度で生成します。
- 総パラメータはモデルに必要なメモリ量を示します。同じ 671B の MoE でも 671B 分の VRAM が必要で、37B ではありません。
- エキスパート数とルーティングは品質とトレーニング効率に影響するアーキテクチャの詳細ですが、ローカル推論ユーザーとしては設定しません — メモリと並列性を設定します。
Go deeper
Memory and offloading
バイト/パラメータ(精度別)とオフロードメカニズムを含む完全なサイジング式。
Quantization
バイト/パラメータを縮小して、MoE とデンスモデルの両方のメモリ方程式を変更します。
How inference works
デコードがメモリ帯域幅制約である理由と、アクティブパラメータが生成速度に影響する仕組み。
Model serving and scaling
並列戦略、マルチ GPU サービング、ランタイムがモデルを分散する方法。
Models using MoE
Kimi K3
2.8T total, 104B active, 896 experts with Stable LatentMoE routing.
DeepSeek
V3/R1 at 671B/37B, V4.1-Flash at 552B with asymmetric 8B/16B activation.
Qwen3
30B-A3B and 235B-A22B MoE tiers, 128 experts with top-8 routing.
Qwen3.8
2.4T flagship with 95B active, 512 experts, 10 routed + 1 shared.
GLM-5.3
753B total, ~40B active, MoE with 1M context.
gpt-oss
20b (32 experts) and 120b (128 experts), top-4 routing, Apache 2.0.
Once it fits and runs
MoE モデルをハードウェアにロードさせるのが最初のステップです。localhost でリクエストに答え始めたら、次のステップは他の場所からもアクセスできるようにすることです。
Give it a stable endpoint
Tokios はモデルの選択、ホスト、ファインチューニングは行いません — ローカルで実行されれば、Tokios はそれをどこからでも呼び出せる安定した認証済みエンドポイントに変換します。
Frequently asked questions
Why does an MoE model need memory for all experts if only a few are active?
Why does an MoE model need memory for all experts if only a few are active?
ルーターは各トークンごとに異なるエキスパートを選択するため、すべてのエキスパートがアクセス可能である必要があります。任意の瞬間には k 人のエキスパートのみが機能しますが、次のトークンでは完全に異なるセットが必要になる場合があります。つまり、すべてのエキスパートの重みが常にメモリ(VRAM または RAM)に常駐している必要があり — アクティブパラメータではなく総パラメータでサイズを設定します。
How do I know if my hardware can run an MoE model?
How do I know if my hardware can run an MoE model?
計算します:総パラメータに重みあたりのバイト数を掛けます。4 ビット(ほとんどの MoE モデルのネイティブ量子化フロア)では、
total_params × 0.5 GB です。KV キャッシュとオーバーヘッドに 20% を加えます。その数値が合計 VRAM + RAM に収まれば、モデルはロードされます。収まらない場合、どの程度の最適化でも変更できません — より多くのメモリまたはより小さいモデルが必要です。Can I run an MoE model on a single GPU?
Can I run an MoE model on a single GPU?
小さいものだけです。Qwen3-30B-A3B(総 30.5B、約 18 GB at 4 ビット)は 24 GB の GPU に収まります。gpt-oss-20b(総 21B、約 13 GB at 4 ビット)も収まります。約 50B を超える総パラメータの場合、マルチ GPU サービング(エキスパート並列を備えた vLLM、SGLang)または CPU オフロードを備えた高統一メモリシステム(Mac Studio、DGX Spark)が必要です。
What is expert parallelism and when do I need it?
What is expert parallelism and when do I need it?
エキスパート並列はエキスパートレイヤーを複数の GPU に分割します — GPU 0 はエキスパート 0-63 を保持、GPU 1 はエキスパート 64-127 を保持、など。各 GPU はエキスパートの出力を計算し、オールツーオール通信で結合されます。総エキスパートの重みが単一の GPU に収まらない場合に必要です。vLLM と SGLang の両方がサポートしています。設定については vLLM optimization guide を参照してください。
Sources
- DeepSeek-V3 Technical Report — 671B total, 37B active, 256 experts, auxiliary-loss-free load balancing.
- Kimi K2: Open Agentic Intelligence — 1T total, 32B active, 384 experts, 8 active per token.
- Kimi K3 model card — 2.8T total, 104B active, 896 experts, Stable LatentMoE.
- Qwen3 Technical Report — 128 experts, 8 active, no shared experts in Qwen3 MoE.
- Qwen3-Next-80B-A3B — 512 experts, 10 routed + 1 shared.
- Qwen3.8-Max announcement — 2.4T total, 95B active, 512 experts.
- gpt-oss model card — 32 experts (20b) and 128 experts (120b), 4 active per token.
- GLM-5.3 model card — 753B total, ~40B active.
- Mixture of Experts Explained (localaimaster.com) — Routing mechanics and memory implications.
- Mixture-of-Experts LLMs (Cameron R. Wolfe) — Top-k gating formulation and training dynamics.
- MoE training in Qwen3-235B and Kimi-K2 — Learned routing comparison.
- vLLM MoE Playbook — Expert parallelism and mixed parallelism configuration.
- Expert Parallelism in TensorRT-LLM — Multi-GPU expert distribution strategies.