MoE(Mixture of Experts)は「VRAMが潤沢な環境向け」とされることが多い。35Bのパラメータ全体をVRAMに載せてこそ速い、8GBでは恩恵がない——自分もそう思っていた。
RTX 4060 8GBでQwen3.5の3モデルを実測したら、その前提が崩れた。
実測から始める
前回の記事でQwen3.5の9B、27B、35B-A3Bを同一環境で比較した。その中からMoEに関わるデータを抜粋する。
検証環境: RTX 4060 8GB / Ryzen 7 / 32GB DDR5 / llama.cpp / Q4_K_M
モデル 速度(t/s) VRAM GPU% CPU% RAM ngl
Qwen3.5-9B 33.0 7.1GB 91% 32% 22.6GB 99 (全層GPU)
Qwen3.5-27B 3.57 7.7GB 60% 74% 28.3GB 24 (24/58層GPU)
Qwen3.5-35B-A3B 8.61 7.6GB 95% 65% 30.8GB 99 (全層GPU)
3モデルともVRAM消費は7.1〜7.7GBでほぼ同じ。ところが速度は33.0、3.57、8.61 t/sと最大10倍の差がある。
注目すべきは27B Denseと35B-A3B MoEの比較だ。35Bのほうがパラメータ数が多いのに、27Bの2.4倍速い。
なぜ35Bが27Bより速いのか
答えはGPU利用率に出ている。
27B Dense (GPU 60%): Q4_K_Mで約16GB。8GBに収まらないため、58層中24層だけGPUに載せ、残り34層はCPUで処理する(ngl=24)。GPUは自分の分を処理し終えても、CPUの完了を待つ。GPU利用率60%の意味は、40%の時間GPUが遊んでいるということだ。
35B-A3B MoE (GPU 95%): Q4_K_Mで約21GB。これも8GBに収まらない。だがngl=99で全層がGPUに載る。なぜか。
MoEの構造が鍵になる。35B-A3Bは256個のエキスパートを持つが、1トークンあたり活性化するのは8個のルーテッドエキスパート+1個の共有エキスパートで、パラメータ換算で約3B。推論時にGPUが実際に計算するのはこの3B分だけだ。llama.cppはこの活性パラメータ分をVRAMに展開し、非活性のエキスパート重みはシステムRAMに保持する。結果、VRAM 7.6GBで収まりつつ、GPUの演算パイプラインは3B分の計算で95%まで埋まる。
システムRAM 30.8GBがこの構造を裏付けている。9Bの22.6GBに対して+8.2GB。35B分の全エキスパート重みがRAM上に展開されている(Lv4推論: RAM差分がエキスパート重み格納分に概ね一致する。厳密な内部挙動はllama.cppの実装依存)。
MoEの仕組み: 全員を起こすな、専門家だけ呼べ
実測データの解釈に必要な範囲で、MoEの仕組みを整理する。
通常のTransformerモデル(Dense model)は、入力トークンが全てのパラメータを通過する。27Bモデルなら、毎トークンごとに27B個のパラメータが計算に参加する。
MoEは各層にN個のエキスパート(小さなFFN)を持ち、ゲーティングネットワークがトークンごとに上位K個だけを選択・活性化する。
Dense 27B:
入力トークン → [全27Bパラメータ] → 出力
毎回27B個の計算。8GBに収まらず24/58層だけGPU → 残りCPU → 遅い
MoE 35B-A3B:
入力トークン → ゲーティング → 8+1エキスパートを選択
→ [活性パラメータ: ~3B] → 出力
毎回3B個の計算。GPU内で完結 → 速い
残り32Bの非活性エキスパートはRAMに待機
この仕組みが8GB環境で効く理由は明快だ。Dense 27Bは全パラメータをGPUに通す必要があるが収まらない。MoE 35Bは活性パラメータだけGPUに通せばよく、3Bなら余裕で収まる。8GBに収まらないモデル同士の比較では、MoEのほうが構造的に有利になる。
数字で見るMoEの効率
主要MoEモデルのスペック一覧。これらは各モデルの公式発表値。
モデル 総パラメータ 活性パラメータ 活性率 エキスパート数
Mixtral 8x7B 46.7B 12.9B 27.6% 8
Mixtral 8x22B 141B 39B 27.7% 8
Qwen3-235B-A22B 235B 22B 9.4% 128
Qwen3.5-35B-A3B 35B 3B 8.6% 256
DeepSeek-V3 671B 37B 5.5% 256
活性率のトレンド: 初期MoE(27%) → 最新MoE(5-9%)
エキスパート数: 初期(8個) → 最新(64-256個)
活性率の低下トレンドがある。Mixtral世代の27%から、最新のDeepSeek-V3では5.5%まで下がっている。エキスパートを細かく分割して、より少数を精密に選択する方向に進化している。
DeepSeekMoEの論文が示した知見として、エキスパートの粒度を細かくすると、同じ計算予算でも性能が向上する。多数の小さなエキスパートからtop-K選択するほうが、少数の大きなエキスパートを使うより高品質になる。
8GBユーザーにとって重要なのは、活性率が低いほど、VRAM内で完結する計算量が小さくなるということだ。Qwen3.5-35B-A3Bの活性率8.6%は、35Bの知識を3B分のGPU負荷で使えることを意味する。
8GBユーザーのMoE選択基準
実測データから導ける判断基準をまとめる。
速度最優先 → Dense 9B(33 t/s)。全層がGPUに収まり、GPU 91%で無駄がない。対話・コード補完・チャット用途。
品質を上げたい → MoE 35B-A3B(8.61 t/s)。Dense 27B(3.57 t/s)の2.4倍速く、出力品質は同等以上。実測では、コード生成でDense 27Bが5パターン+比較表を出すのに対し、35B-A3Bは4パターン+並行テストコードを出した。thinking効率も35B-A3Bが最短(8行 vs 27Bの11行)。
Dense 27Bを選ぶ理由はない。 3.57 t/sは対話的に使うには遅すぎる。品質がMoE 35B-A3Bを明確に上回るわけでもない。ngl=24の部分オフロードはGPU 60%/CPU 74%という非効率な状態を生み出す。
ただし条件がある。MoE 35B-A3BはシステムRAMを30.8GB消費する。RAM 16GBのマシンではスワップが発生し、この結論は成立しない可能性がある(Lv4推論: 未検証だが、32GB→30.8GBで空きが1.2GBの当環境でもほぼ限界に近い)。
文献が見落としていたこと
MoEの解説記事の多くは「全パラメータがVRAMに載る環境」を前提にしている。A100 80GBやRTX 4090 24GBを想定した説明だ。
この前提から導かれる「VRAMに収まらないならDenseのほうが良い」という判断は、8GB環境の実測と矛盾した。なぜか。
文献が想定するMoEの速度メリットは「活性パラメータ分の計算量でDense品質を超える」ことだ。全パラメータがVRAMに載っていれば、活性3B分の計算量で35B品質が出る。これは正しい。
だが文献が見落としているのは、VRAMに収まらないDenseモデルはもっと遅くなるという比較の片側だ。27B DenseもVRAMに収まらない。MoEもVRAMに収まらない。両方収まらない条件で比較すると、活性パラメータだけGPU内で完結できるMoEが構造的に有利になる。
[8GB VRAMで両方収まらない場合の比較]
Dense 27B: 全27Bの計算が必要 → 24/58層だけGPU → 3.57 t/s
MoE 35B-A3B: 活性3Bの計算だけ → 全層GPU → 8.61 t/s
「収まらない同士」ではMoEが勝つ。
文献の「MoEはVRAM潤沢な環境向け」は、比較対象がVRAMに収まるDenseの場合にのみ成立する。
8GBユーザーにとってのMoEの価値は、「VRAMが足りなくても、同品質帯のDenseより速い」という点にある。VRAMが潤沢な環境"だけ"で有利なのではなく、VRAMが足りない環境"でこそ"差が出る。
MoEの制約: 万能ではない
実測データからMoEの制約も見えている。
ctx枯渇問題: 35B-A3Bは知識量が豊富な分、thinkingでctxを食い尽くす傾向がある。実測では、知識要約タスク(量子コンピューティングを500文字で)で35B-A3Bがctx 8192を20分で枯渇させた。9Bは同じタスクを完走した。知識が深いことが、ctx制約下では逆にハンディになる。
システムRAM消費: 30.8GBは32GB RAMのマシンでほぼ限界。他のアプリケーションとの共存が厳しい。16GB RAMでは実用的でない可能性が高い。
速度の天井: 8.61 t/sは実用域だが、9Bの33 t/sには遠い。リアルタイム対話やストリーミング出力では、この差が体感に直結する。
参考
- Qwen3.5の27Bが9Bに負けた RTX 4060の逆説 — 本記事の実測データ元
- MoE LLMs — Cameron R. Wolfe — MoEアーキテクチャの包括的解説
- DeepSeek MoE and V2 — Chipstrat — DeepSeekMoEの設計思想
- Qwen1.5-MoE — 7B性能を1/3活性パラメータで達成
- The Big LLM Architecture Comparison — Dense/MoE/MLA比較