Qwen3.6のMTPを試す

2026/05/16 に llama.cpp のMTP対応PRがマージされました🎉

さっそくビルドしてどれくらい速くなるのか確かめてみたいと思います。

環境

利用モデル

量子化はQ6_K_XLを使いました。

MTPの設定

以下のフラグをllama.cppの起動コマンドに足します。

--spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min 0.75

1. 日本語生成

プロンプト1

夏目漱石の小説「吾輩は猫である」のあらすじを1200文字前後で書いて

トークン生成速度は 32→63約2倍 になっています。

draft acceptance rate0.72 で、投機生成したトークンのうち約72%が出力として採用されています。

プロンプト2

先ほど生成したあらすじを要約してみます

400文字に要約して

生成速度は引き続き大きく向上しています。一方で、長い入力を含むこのケースでは prompt processing が 半分程度 に落ち込んでいるのがわかります。

2. コード生成

プロンプト1

write tetris in javascript

トークン生成速度は 31→74約2.4倍 にあがりました。

draft acceptance rate0.90 と日本語の場合よりも当たりが多くなっています。

プロンプト2

rewrite it without for loops

こちらも prompt processing の速度が半分ほどに下がっています。

まとめ

MTPを利用することでトークン生成速度を2倍前後に高速化することが出来ました。非力なGPUでも実用的な速度でLLMを利用することができるため、ローカルLLM勢にとっては大変ありがたい機能です。

一方でprompt processingの速度は半分程度になっています。 トータルの作業時間で見た場合、大量のテキストを読ませる作業やメモリ帯域幅の狭い環境ではこの速度低下の影響を受けそうです。

タスクMTPなしMTPあり速度向上
日本語あらすじ生成32.05 tok/s63.42 tok/s約1.98倍
日本語要約31.49 tok/s71.56 tok/s約2.27倍
Tetris生成31.00 tok/s74.39 tok/s約2.40倍
for loopなしに書き換え31.16 tok/s74.32 tok/s約2.38倍
タスクMTPなしMTPあり速度変化
日本語要約2238.61 tok/s1228.33 tok/s約0.55倍
for loopなし書き換え2139.81 tok/s1169.94 tok/s約0.55倍
macからCachyOSにつなぐ一番簡単な方法はkrdpでした