Qwen3.6 の MTP で VRAM 容量以上のサイズのモデルで生成速度を検証してみた
結果
VRAM 容量超えた Dense モデル
unsloth/Qwen3.6-27B-GGUF-MTP:UD-Q4_K_XL
MTP が 1.71 倍 早い結果。
18.85 t/s と 10.99 t/s の差は、ギリギリ実用出来るか、出来ないかの差がある(主観)。とは言うものの次の特徴が重要。実用できない側に傾くか。
徐々に早くなっていくので、生成トークンが少ないとここまでの差は出ない。これは、投機的デコーディングの特徴だろう。
VRAM 容量超えた MoE モデル
unsloth/Qwen3.6-35B-A3B-GGUF-MTP:UD-Q6_K_XL
MTP が 1.19 倍 早い結果。
62.41 t/s と 52.44 t/s の差は、どっちでも良いと思える差(主観)。
VRAM 容量超えた Dense モデル
このマシンは VRAM 16 GB、モデルは 17.9 GB ( + 931 MB ) だけで、大幅なオーバー。さらに KV キャッシュもかかる。
llama-server 起動
`-ot` (--override-tensor) オプションで、重い FFN テンソルをCPUに追い出す。
./llama.cpp/llama-server \
-hf unsloth/Qwen3.6-27B-GGUF-MTP:UD-Q4_K_XL \
-ngl 99 -c 32768 -fa on -np 1 \
--spec-type mtp --spec-draft-n-max 3 \
-ctk q4_0 -ctv q4_0 \
--temp 0.6 --top-p 0.95 --top-k 20 --min-p 0.0 \
--presence-penalty 0.0 --repeat-penalty 1.0 \
--chat-template-kwargs '{"preserve_thinking": true}' \
-ot "blk\.(3[0-9]|4[0-9]|5[0-9]|6[0-4])\.ffn.*=CPU" --mlockVRAM 15.36 GB
llama-server の UI で実行
スーパーマリオブラザーズを index.html のみで作成して
18.85 t/s ( 11,228 tokens / 9min 55s )
prompt eval time = 794.91 ms / 24 tokens ( 33.12 ms per token, 30.19 tokens per second)
eval time = 595774.04 ms / 11228 tokens ( 53.06 ms per token, 18.85 tokens per second)
total time = 596568.95 ms / 11252 tokens改修
ジャンプ力が足りず、ブロックを下から叩け無いし、超えられないパイプがある。ジャンプ力を上げる改修して。改修箇所の Diff があれば良いです。
14.48 t/s ( 1,172 tokens / 1min 20s )
prompt eval time = 14423.97 ms / 11302 tokens ( 1.28 ms per token, 783.56 tokens per second)
eval time = 80962.38 ms / 1172 tokens ( 69.08 ms per token, 14.48 tokens per second)
total time = 95386.34 ms / 12474 tokens再度改修
レンガも?ブロックも、下から叩いても何も起こらない。少しの修正で直るなら、修正箇所の Diff を教えて。
18.02 t/s ( 548 tokens / 30s )
prompt eval time = 541.92 ms / 40 tokens ( 13.55 ms per token, 73.81 tokens per second)
eval time = 30413.74 ms / 548 tokens ( 55.50 ms per token, 18.02 tokens per second)
total time = 30955.66 ms / 588 tokens生成ソースコード
比較対象
公式 llama.cpp の llama-server を起動。
./build/bin/llama-server \
-hf unsloth/Qwen3.6-27B-GGUF:UD-Q4_K_XL \
-ngl 99 -c 32768 -fa on -np 1 -ctk q4_0 -ctv q4_0 \
--temp 0.6 --top-p 0.95 --top-k 20 --min-p 0.0 \
--presence-penalty 0.0 --repeat-penalty 1.0 \
--chat-template-kwargs '{"preserve_thinking": true}' \
-ot "blk\.(4[2-9]|5[0-9]|6[0-3])\.ffn.*=CPU" --mlock10.99 t/s ( 10,355 tokens / 15min 41s )
prompt eval time = 555.46 ms / 24 tokens ( 23.14 ms per token, 43.21 tokens per second)
eval time = 941875.14 ms / 10355 tokens ( 90.96 ms per token, 10.99 tokens per second)
total time = 942430.60 ms / 10379 tokensVRAM 容量超えた MoE モデル
llama-server 起動
./llama.cpp/llama-server \
-hf unsloth/Qwen3.6-35B-A3B-GGUF-MTP:UD-Q6_K_XL \
-ngl 99 -c 65536 -fa on -np 1 \
--spec-type mtp --spec-draft-n-max 3 \
--n-cpu-moe 30VRAM 15.03 GB
llama-server の UI で実行
Flappy Bird を index.html のみで作成して
62.41 t/s ( 6,761 tokens / 1min 48s )
prompt eval time = 271.58 ms / 21 tokens ( 12.93 ms per token, 77.33 tokens per second)
eval time = 108333.99 ms / 6761 tokens ( 16.02 ms per token, 62.41 tokens per second)
total time = 108605.57 ms / 6782 tokens生成ソースコード
比較対象
公式 llama.cpp の llama-server を起動。
./build/bin/llama-server \
-hf unsloth/Qwen3.6-35B-A3B-GGUF:UD-Q6_K_XL \
-ngl 99 -c 65536 -fa on -np 1 \
--n-cpu-moe 2652.44 t/s ( 5,969 tokens / 1min 53s )
prompt eval time = 260.02 ms / 21 tokens ( 12.38 ms per token, 80.76 tokens per second)
eval time = 113832.81 ms / 5969 tokens ( 19.07 ms per token, 52.44 tokens per second)
total time = 114092.83 ms / 5990 tokens結論
2 枚目のグラボ欲しい。
