0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

27B Denseに2.4倍差をつけたMoE — 8GB VRAMで測った35B-A3Bの実力

0
Posted at

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には遠い。リアルタイム対話やストリーミング出力では、この差が体感に直結する。


参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?