Qwen 35B-A3Bは12GBのVRAMでもかなり使いやすい

Reddit r/LocalLLaMA / 2026/5/9

💬 オピニオンDeveloper Stack & InfrastructureSignals & Early TrendsTools & Practical Usage

要点

  • Qwen3.6の35B MoEモデル「Qwen 35B-A3B」は、RTX 3060 12GBの環境でも実用レベルの推論性能が得られ、12GB VRAMが“現実的なサイズ”だと述べています。
  • MoEのGPU搭載率を左右するため、-ncmoeを下げ過ぎず適切に調整すると、プレフィル(prompt処理)を強くしつつ十分なコンテキスト長(16k/32kなど)を確保できます。
  • llama-benchのpp512計測を重視しており、指定プロファイル(例:-ncmoe 18、q8_0)では前処理が非常に速い結果が示されています。
  • 日常のコーディング用途では、32kコンテキスト+高速生成のバランスを取るプロファイル例(-c 32768、-ngl 999、-ncmoe 20など)を推奨し、16kの方がわずかに速いがVRAM限界に近い点も示しています。
  • また、プレーンデコードでの-ncmoeスイープやKVキャッシュ品質(q8_0推奨)に関するスイープ、さらにllama.cppのMTP(speculative decoding)分岐でのテストも紹介しています。

ハードウェア:

RTX 3060 12GB 32GB DDR4-3200 Windows CUDA 13.x 

モデル:

Qwen3.6-35B-A3B-MTP-IQ4_XS.gguf 

このモデルは35B MoEなので、-ncmoeがとても重要です。-ncmoeを小さくすると、より多くのMoEブロックがGPU上に残ります。

主な結論

このモデルに対して12GB VRAMはかなり実用的なサイズ感です。 これにより、プレーンなデコードがかなり強力になる程度のMoEブロックをGPU上に保持しつつ、16k/32kのような有用なコンテキストサイズの余地も残せます。

プロンプト処理/プリフィルについては、llama-cliのインタラクティブなPrompt:行よりも、llama-benchの数値を信頼しています。これはllama-benchがよりクリーンなpp512測定を提供するからです。

最良のプレーンllama-bench結果:

-ncmoe 18 -t 9 -ctk q8_0 -ctv q8_0 pp512: ~914 t/s tg128: ~46.8 t/s 

つまり、この構成ではプリフィルが非常に高速です。

最適な実用コーディングプロファイル

日常的なコーディングでは、こちらを使うでしょう:

llama-cli.exe ^ -m "Qwen3.6-35B-A3B-MTP-IQ4_XS.gguf" ^ -p "..." ^ -n 512 ^ -c 32768 ^ --temp 0 --top-k 1 ^ -ngl 999 -ncmoe 20 ^ -fa on ^ -ctk q8_0 -ctv q8_0 ^ --no-mmap ^ --no-jinja ^ -t 9 ^ --perf 

結果:

Context: 32k Prompt: ~88.9 t/s in llama-cli Generation: ~43.4 t/s VRAM free: ~273 MiB 

これは良いバランスです。コーディング用の十分に大きなコンテキスト、まだ速い、そしてVRAMを完全に使い切らない。

より速い16kプロファイル

-c 16384 -ncmoe 19 -ctk q8_0 -ctv q8_0 -t 9 

結果:

Prompt: ~91.5 t/s in llama-cli Generation: ~44.5 t/s VRAM free: ~37 MiB 

これは少し速いですが、VRAMの限界にかなり近いです。

MoEオフロードのスイープ

プレーンデコード、q4 KV、-t 11:

-ncmoe 22: tg128 ~41.6 t/s -ncmoe 20: tg128 ~41.7 t/s -ncmoe 19: tg128 ~44.2 t/s -ncmoe 18: tg128 ~45.9 t/s -ncmoe 17: tg128 ~46.6 t/s -ncmoe 16: tg128 ~25.8 t/s <-- 崖 / やりすぎ 

つまりプレーンデコードでは:

safe: -ncmoe 18 edge: -ncmoe 17 avoid: -ncmoe 16 

KVキャッシュのスイープ

-ncmoe 18で、-t 11:

q4_0 KV: pp512 ~913 t/s, tg128 ~45.8 t/s q8_0 KV: pp512 ~915 t/s, tg128 ~45.9 t/s q5_0 KV: かなり遅い mixed q8 K + q4/q5 V: かなり遅い 

つまりこのGPUでは、q8 KVは基本的に無料で、望ましいです:

-ctk q8_0 -ctv q8_0 

MTP/推測デコード

また、llama.cppのMTPブランチでMTPも試しました。

最良のMTPコマンド:

llama-cli.exe ^ -m "Qwen3.6-35B-A3B-MTP-IQ4_XS.gguf" ^ --spec-type mtp ^ -p "..." ^ -n 512 ^ --spec-draft-n-max 2 ^ -c 4096 ^ --temp 0 --top-k 1 ^ -ngl 999 -ncmoe 19 ^ -fa on ^ -ctk q4_0 -ctv q4_0 ^ --no-mmap ^ --no-jinja ^ -t 11 ^ --perf 

結果:

Generation: ~47.7 t/s 

MTPスイープ:

-ncmoe 24, depth 2: ~43.8 t/s -ncmoe 20, depth 2: ~46.6 t/s -ncmoe 19, depth 2: ~47.7 t/s -ncmoe 18: failed / invalid vector subscript -ncmoe 16: failed / invalid vector subscript 

depth 3はさらに悪化しました:

depth 3, -ncmoe 20: ~39.8 t/s 

つまり、MTPの良い当たり所は:

--spec-draft-n-max 2 

結論

12GB VRAMなら、プレーンデコードはすでに非常に強力です:

Plain llama-bench: ~914 t/s pp512, ~46.8 t/s tg128 観測できた最良のMTP: ~47.7 t/s generation 

つまり、MTPはチューニング済みのプレーンデコードに対して生成速度を約2%程度だけ改善しました。コーディングでは、個人的には32kコンテキストのプレーンデコードを使うでしょう:

-c 32768 -ncmoe 20 -ctk q8_0 -ctv q8_0 -t 9 

大きな学び: このMoEモデルでは12GB VRAMが非常に実用的なスイートスポットです。十分なエキスパートをGPU上に残せるのでプレーンデコードが速くなり、q8 KVも使いやすく、32kコンテキストも現実的になります。

submitted by /u/jwestra
[link] [comments]