Дата среза: 2026-05-17.
MTP, Multi-Token Prediction, это вариант speculative decoding, где модель имеет встроенные головы/модули для предсказания нескольких следующих токенов. В отличие от классического speculative decoding, отдельная маленькая draft-модель не обязательна: MTP-enabled GGUF может сам генерировать draft-токены, а основная модель затем проверяет и принимает удачные токены пачкой.
Практический смысл: если acceptance rate высокий, generation throughput может вырасти примерно в 1.5-2x или выше. Prompt processing обычно почти не меняется.
MTP поддержка в этом форке уже присутствует как experimental text-only path для Qwen3.6 MTP-enabled GGUF.
Актуальная upstream работа:
- PR:
https://github.com/ggml-org/llama.cpp/pull/22673 - Название:
llama + spec: MTP Support - Автор:
am17an - Статус на GitHub при проверке: Draft
- Дата PR: 2026-05-04
PR заявляет поддержку MTP heads и тесты на Qwen3.6 27B / Qwen3.6 35B-A3B. В описании PR показан steady-state acceptance около 72-75% с 3 draft tokens и wall time лучше baseline примерно в 2x на опубликованном benchmark.
Локально реализовано:
--spec-type mtpи совместимый alias--spec-type draft-mtp;- Qwen3.5/Qwen3.6 MTP graph для dense и MoE вариантов;
- MTP context type (
LLAMA_CONTEXT_TYPE_MTP) для построения только MTP decoder graph; - server integration с text-only MTP и
set_mtp: MTP draft head registered; - default MTP path теперь создаёт MTP context из уже загруженной target model, без повторной загрузки MTP head model buffer.
Legacy-путь с повторной загрузкой MTP head через override_arch=qwen35_mtp/qwen35moe_mtp сохранён как аварийный opt-out:
$env:LLAMA_MTP_FORCE_LEGACY_HEAD_LOAD = "1"После обновления core llama.cpp проверить:
rg -n "COMMON_SPECULATIVE_TYPE_MTP|spec.*mtp|--spec-type.*mtp|MTP Support" common src include tools examples docsИ проверить help:
build-rocm\bin\Release\llama-server.exe --help | Select-String -Pattern "spec-type|mtp"MTP можно считать доступным только если help явно показывает mtp или draft-mtp как допустимый --spec-type, а сервер стартует с MTP-enabled GGUF.
build-rocm\bin\Release\llama-server.exe `
-m models\Qwen3.6-27B-MTP-Q4_K_M.gguf `
--spec-type mtp `
--spec-draft-n-max 3 `
--flash-attn on `
--cache-type-k q8_0 `
--cache-type-v q8_0 `
-ngl 999 `
-c 32768 `
-np 1 `
--port 8081Через текущий GUI это временно можно будет проверить в Launch Server -> Extra Arguments:
--spec-type mtp --spec-draft-n-max 3
Только после того, как локальный llama-server --help подтвердит поддержку.
MTP не включается на любой GGUF. Нужен GGUF, в котором сохранены MTP/NextN tensors и модельная архитектура поддерживает такой режим. На момент исследования чаще всего упоминаются Qwen3.6 MTP variants:
- Qwen3.6-27B MTP GGUF.
- Qwen3.6-35B-A3B MTP GGUF.
Для RX 9070 XT 16 GB начинать лучше с Q4/IQ4 quant, -np 1, -c 32768, --cache-type-k q8_0 --cache-type-v q8_0. Если VRAM тесно, снижать context и переходить на q4_0 KV.
- PR был draft при проверке, значит API/аргументы могут измениться.
- MTP может конфликтовать с multimodal/vision путём. В community notes встречались предупреждения, что vision + MTP может падать на конкретных сборках PR.
- Ускорение зависит от acceptance rate. Для некоторых задач и prompt-стилей прирост может быть меньше.
- Для ROCm/RDNA4 обязательно проверять не только старт сервера, но и длинную генерацию без memory faults.
- Не включать MTP UI как стабильный режим, пока upstream PR не будет либо смержен, либо локально протестирован.
- Подтянуть MTP в отдельную ветку, не смешивая с GUI-документацией.
- Собрать ROCm и CPU sanity build.
- Проверить
llama-server --helpи запуск без MTP. - Проверить запуск с MTP-enabled GGUF и
--spec-type mtp --spec-draft-n-max 3. - Сравнить tokens/sec на одинаковом prompt с MTP и без MTP.
- Только после успешного теста добавить GUI-переключатель:
Speculative Type: none / draft / ngram / mtpMTP draft tokens- warning, если выбран multimodal/vision
- warning, если server binary не показывает
mtpв--help
Более подробная карта портирования и Qwen speed roadmap: QWEN_SPEED_RESEARCH.md.
- GitHub PR
ggml-org/llama.cpp#22673:https://github.com/ggml-org/llama.cpp/pull/22673 - Upstream speculative decoding docs:
https://github.com/ggml-org/llama.cpp/blob/master/docs/speculative.md - NVIDIA Megatron MTP overview:
https://docs.nvidia.com/nemo/megatron-bridge/nightly/training/multi-token-prediction.html