Views
No views yet
kv_only_nextn=true)llama.cpp builds activate it via --spec-type draft-mtp.1llama-server -m Qwen3.6-27B-MTP-IMAT-IQ4_XS-Q8nextn.gguf \
2 -ngl 999 -fa on -c 32768 --parallel 1 \
3 -ctk q8_0 -ctv q8_0 --kv-unified \
4 --host 0.0.0.0 --port 8080 --jinjallama.cpp built from master after ggml-org/llama.cpp#22673:1llama-server -m Qwen3.6-27B-MTP-IMAT-IQ4_XS-Q8nextn.gguf \
2 -ngl 999 -fa on -c 32768 --parallel 1 \
3 -ctk q8_0 -ctv q8_0 --kv-unified \
4 --spec-type draft-mtp \
5 --spec-draft-n-max 4 \
6 --spec-draft-p-min 0.75 \
7 --host 0.0.0.0 --port 8080 --jinja--spec-type draft-mtp binds the embedded NextN MTP head as a drafter via LLAMA_CONTEXT_TYPE_MTP. --spec-draft-n-max 4 is max draft chain length per round. --spec-draft-p-min 0.75 is essential — without it the chain drafts low-confidence tokens that the target rejects, halving the speedup.| config | decode tok/s | accept rate |
|---|---|---|
| no spec (greedy) | ~48 | – |
--spec-type draft-mtp --spec-draft-n-max 3 --spec-draft-p-min 0.75 | ~73 (+52%) | ~70% |
| config | tok/s |
|---|---|
| greedy | 47.7 |
--spec-draft-n-max 4 --spec-draft-p-min 0.0 | 78.7 |
--spec-draft-n-max 3 --spec-draft-p-min 0.75 | 77.7 |
p_min even on q4 — sampler cost is amortized over the deeper accept gains. MoE variants (35B-A3B) prefer p_min=0 because per-step softmax overhead outweighs the chain-termination savings.IQ4_XS calibrated with an imatrix derived from a mixed-domain calibration set (code + multilingual prose).Q8_0 (NextN). Draft quality is sensitive to head precision — quantizing the head further significantly drops accept rate.Q8_0/Q8_0 runs cleanly. Lower precision on V saves memory but trims accept rate a few pp.LLM_ARCH_QWEN35_MTP / LLM_ARCH_QWEN3MOE_MTP). Merged upstream in #22673.--spec-type draft-mtp (no separate drafter file), the server must wire LLAMA_CONTEXT_TYPE_MTP inline-MTP context init — on master since the PR landed.--spec-draft-p-min 0.75 requires recent llama.cpp that honors the p_min parameter on the DRAFT_MTP path. If your build doesn't, set p_min to 0 — you'll still get speedup, just less.kv_only_nextn=true.