見出し画像

unsloth が Qwen3.6-27B-MTP-GGUF を公開したので試した 「生成はやっ」 - マルチトークン予測

所感

今回試した例では、約 1.6 倍
かなり快適。何度か試した感じでは、明らかな性能低下的なものも見受けらない。
これは良い。

ただ、モデルは "unsloth/Qwen3.6-27B-MTP-GGUF" となっているが、llama-server のコマンド内では "unsloth/Qwen3.6-27B-GGUF-MTP" で、MTP の位置が違う。なぜ。

モデル

専用の llama.cpp をビルド

モデルカードの通り。

git clone -b mtp-clean https://github.com/am17an/llama.cpp.git

cmake llama.cpp -B llama.cpp/build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON

cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-server

cp llama.cpp/build/bin/llama-* llama.cpp

実行

画像入力なし版

今回はこっちでお試し。

./llama.cpp/llama-server \
  -hf unsloth/Qwen3.6-27B-GGUF-MTP:UD-IQ3_XXS \
  -ngl 99 -c 32768 -fa on -np 1 \
  --spec-type mtp --spec-draft-n-max 3 \
  -ctk q8_0 -ctv q8_0 --no-mmproj

VRAM 14.88 GB

画像入力あり版

./llama.cpp/llama-server \
  -hf unsloth/Qwen3.6-27B-GGUF-MTP:UD-IQ3_XXS \
  -ngl 99 -c 32768 -fa on -np 1 \
  --spec-type mtp --spec-draft-n-max 3 \
  -ctk q4_0 -ctv q4_0

VRAM 15.46 GB

生成速度

スーパーマリオブラザーズを作成して

82.57 tokens per second

prompt eval time =     114.66 ms /    18 tokens (    6.37 ms per token,   156.99 tokens per second)
       eval time =  150643.49 ms / 12438 tokens (   12.11 ms per token,    82.57 tokens per second)
      total time =  150758.15 ms / 12456 tokens

生成が進むと早くなるのが、なんかうれしい。

投機的デコーディングという意味では n-gram も同様に、条件が合うと速度が上がっていったが、その条件はかなり限定的だった。
しかし、MTP は、良い感じで働いていそう。

比較

公式の llama.cpp 。

./build/bin/llama-server \
  -hf unsloth/Qwen3.6-27B-GGUF:UD-IQ3_XXS \
  -ngl 99 -c 32768 -fa on -np 1 \
  -ctk q8_0 -ctv q8_0 --no-mmproj

同じプロンプトの結果。

51.22 tokens per second

prompt eval time =     115.97 ms /    18 tokens (    6.44 ms per token,   155.21 tokens per second)
       eval time =  223138.02 ms / 11429 tokens (   19.52 ms per token,    51.22 tokens per second)
      total time =  223253.98 ms / 11447 tokens


いいなと思ったら応援しよう!