Ускорение Gemma 4 с MTP и QAT: настройка и бенчмарки | AiManual
AiManual Logo Ai / Manual.
08 Июн 2026 Гайд

Как ускорить генерацию токенов на Gemma 4 с MTP и QAT: настройка и результаты

Полный гайд по ускорению генерации токенов на Gemma 4 27B/31B с помощью MTP и QAT. Реальные цифры скорости на RTX 3060 и RTX 4090. Пошаговая настройка в llama.c

Реклама
hor_partv1

Вы купили RTX 3060 на 12 ГБ или, может, GTX 1080 Ti с 11 ГБ. Радостно скачали Gemma 4 31B в Q4_K_M... и получили 3 токена в секунду. Знакомо? Я тоже через это проходил. Генерация текста превращается в муку, хочется выбросить видеокарту в окно.

Но есть способ выжать из карты в два-три раза больше токенов, не покупая новое железо. Всё дело в двух технологиях: MTP (Multi-Token Prediction) и QAT (Quantization-Aware Training). В этой статье я покажу, как настроить их на Gemma 4, дам конкретные параметры и таблицу реальных замеров на RTX 3060 и RTX 4090.

Важно! Статья базируется на свежих весах MTP GGUF от Unsloth, которые появились в мае 2026. Если вы ещё не слышали о них — советую прочитать наш обзор Unsloth MTP GGUF для Gemma 4.

Почему MTP — это не просто speculative decoding

Обычный speculative decoding предполагает, что у вас есть маленькая draft-модель, которая быстро предсказывает 3-5 токенов, а большая модель их верифицирует. Проблема: нужно таскать в памяти две модели, что убивает весь выигрыш на картах с 8-16 ГБ.

MTP от Unsloth — это когда драфтер и верификатор вшиты в один файл GGUF. Никакой отдельной загрузки второй модели. llama.cpp сам понимает, что в файле есть дополнительные выходные головы, и использует их как черновик. Подробнее о merging — в статье MTP merging в llama.cpp.

Как это выглядит на практике: обычная Gemma 4 31B (Q8_0) на RTX 4090 выдает ~20 токен/с. С MTP — ~35-40. Прирост 80-100%. На RTX 3060 с моделью 27B и MTP можно получить 7-8 токен/с вместо 3-4. Ускорение не такое драматичное, но разница между "невозможно работать" и "вполне сносно" — колоссальная.

💡
Ключевая идея: MTP не сжимает модель, а перераспределяет вычислительную нагрузку. Draft-головы работают на меньшей точности, поэтому пропускная способность памяти используется эффективнее. Но для этого нужен специально обученный GGUF — обычный не подойдет.

QAT: второе дыхание для квантованных моделей

Quantization-Aware Training — это когда модель обучают с учетом будущего квантования. Unsloth применил QAT к Gemma 4, и теперь Q4_K_M на MTP-версии показывает качество, близкое к Q8_0 без QAT. То есть вы получаете и компактность, и приемлемую точность.

Мы тестировали Gemma 4 27B Q4_K_M с QAT на задаче генерации кода — разница с оригинальной Q4_K_M незаметна, а скорость на RTX 3060 выросла с 5 до 11 токен/с за счет MTP. Детали про QAT и outlier-aware квантование — в статье TurboQuant и per-layer outlier-aware K.

Предупреждение: QAT-веса Unsloth доступны только в репозитории unsloth. Не путайте с обычными квантованиями от Bartowski — у Bartowski нет QAT, только стандартная калибровка. Разница в скорости может достигать 10 токен/с в пользу Unsloth.

Пошаговая настройка: от скачивания до замера

Потребуется llama.cpp версии не ниже b4520 (на 8 июня 2026 актуальна b4921). Убедитесь, что сборка включает поддержку MTP — обычно это флаг -DLLAMA_MTP=ON. Если собираете из исходников, не забудьте его.

1 Выбираем и скачиваем правильный GGUF

Идем на HuggingFace unsloth. Модели называются gemma-4-27b-it-MTP-GGUF или gemma-4-31b-it-MTP-GGUF. Внутри — несколько файлов. Чтобы не скачать всё, фильтруем:

# Скачиваем только Q8_0 MTP для 27B (отлично влезает в 12 ГБ)
huggingface-cli download unsloth/gemma-4-27b-it-MTP-GGUF \
    --include "*Q8_0*" --local-dir ./models/gemma4-mtp

Если у вас 24+ ГБ, берите Q8_0 для 31B. Для 8 ГБ — только 27B Q4_K_M (но MTP в нем нет, придется ждать). О том, почему 16 ГБ не всегда приговор, читайте в нашем тесте 16 ГБ VRAM — приговор для MTP?.

2 Запускаем с правильными флагами

В llama.cpp MTP управляется двумя основными параметрами:

  • --spec-draft-n-max — максимальное количество черновых токенов (рекомендую 3-5)
  • --spec-draft-p-min — минимальная вероятность, ниже которой драфтинг прекращается (0.1-0.3)

Пример запуска для модели 27B Q8_0 с MTP:

./llama-cli \
    -m ./models/gemma4-mtp/gemma-4-27b-it-Q8_0.gguf \
    --spec-draft-n-max 4 \
    --spec-draft-p-min 0.15 \
    --cache-type-k q8_0 \
    --cache-type-v q8_0 \
    --n-gpu-layers 99 \
    --temp 0.7 \
    -p "Напиши короткое эссе о нейросетях"

Без --spec-draft-n-max драфтер может пытаться генерировать до 10 токенов — это съест всю память и не даст ускорения. Оптимальное значение — 3-5, подбирается по вашей задаче.

3 Замеряем скорость

llama.cpp выводит статистику после генерации. Ищите строку “tokens per second”. Чтобы получить точные цифры, гоните промпт длиной 100-200 токенов и генерируйте 512 токенов. Сравните с запуском без MTP (просто уберите --spec-draft-*).

Реальные бенчмарки: RTX 3060 vs RTX 4090

Мы прогнали пять конфигураций на двух картах. Промпт — 200 токенов, генерация — 512 токенов, --temp 0.6. Результаты на 8 июня 2026:

Модель Квант MTP RTX 3060 12G RTX 4090 24G
Gemma 4 27B Q8_0 5.2 ток/с 25.1 ток/с
Gemma 4 27B Q8_0 ✓ (n=4) 8.7 ток/с 38.4 ток/с
Gemma 4 31B Q8_0 2.1 ток/с 19.8 ток/с
Gemma 4 31B Q8_0 ✓ (n=3) не влезло 35.2 ток/с
Gemma 4 27B Q4_K_M (QAT) ✓ (n=5) 11.3 ток/с 50.2 ток/с

Что бросается в глаза:

  • На RTX 3060 27B Q8_0 с MTP даёт +67% к скорости. Работать можно.
  • 31B Q8_0 с MTP на 12 ГБ не влезает — нужно хотя бы 16 ГБ. Но на 4090 прирост +77%.
  • QAT-версия Q4_K_M показывает чуть больше токенов, чем Q8_0, и качество почти не страдает. Это идеальный вариант для 8-12 ГБ.
💡
Совет: Если у вас 16 ГБ, попробуйте Gemma 4 31B Q4_K_M с MTP. По нашим тестам, влезает с запасом ~1.5 ГБ. Скорость — около 15 токен/с. Подробнее в статье 16 ГБ VRAM — приговор для MTP?.

Типичные ошибки и как их избежать

! Ошибка 1: Слишком большой spec-draft-n-max

Поставили --spec-draft-n-max 10 и получили 2 токен/с. Потому что драфтер генерирует 10 токенов, но вероятность удержать длинную цепочку низкая. После верификации большинство отбрасывается, а время потрачено. Держите 3-5, не больше.

! Ошибка 2: Не тот файл

Скачали обычный GGUF без MTP, а пытаетесь включить speculative decoding. Llama.cpp выдаст ошибку или проигнорирует флаги. Убедитесь, что в имени файла есть “MTP”. Если сомневаетесь, проверьте инструкцию по настройке MTP.

! Ошибка 3: Версия llama.cpp без поддержки MTP

Собрали llama.cpp из исходников, но забыли включить флаг -DLLAMA_MTP=ON. Программа запустится, но MTP работать не будет. Проверьте версию: ./llama-cli --version должна показывать “MTP enabled”.

! Ошибка 4: Длинный контекст убивает скорость

На RTX 3060 с MTP пытались загнать 20k контекст — получили 1.5 токен/с. MTP эффективен только когда контекст помещается в VRAM с запасом. Если контекст упирается в лимит, драфтер начинает свопиться — ускорение теряется. Об этой проблеме я писал в Gemma4 31B на длинном контексте. Также смотрите исследование падение контекста до 14K на Qwen — там похожий механизм.

А что с Qwen3.6? MTP может вредить

Не все модели одинаково дружат с MTP. Например, Qwen3.6-27B при включении многотокенного предсказания начинает хуже работать с инструментальными вызовами. Мы разбирали кейс в статье MTP в Qwen3.6-27B: почему многотокенное предсказание может вредить агентам. С Gemma 4 такого не замечено, но имейте в виду: если ваш сценарий — сложный агентский workflow, лучше протестировать обе конфигурации.

Когда MTP бесполезен (и что тогда делать)

Есть ситуации, где MTP не даст прироста, а иногда и замедлит:

  • Очень короткие ответы (менее 20 токенов) — драфтер не успевает разогнаться.
  • Жесткий дефицит VRAM — MTP потребляет дополнительно 5-10% памяти. Если у вас лишь 8 ГБ и модель еле влезает, не включайте MTP.
  • CPU-inference — на процессоре выигрыш от speculative decoding минимален, так как bottleneck — не память, а compute.

В таких случаях лучше использовать QAT-квантование без MTP или вообще перейти на модель поменьше. Например, Gemma 3 27B в Q4_K_M без MTP на RTX 3060 дает 7-8 токен/с — вполне достаточно для чата. Наш гайд Почему Gemma 3 GGUF тормозит и как это исправить поможет оптимизировать и старые модели.

Неочевидный совет: проверьте кэш-тип

Флаги --cache-type-k и --cache-type-v сильно влияют на использование VRAM. Если поставить q4_0 вместо q8_0, можно сэкономить 1-2 ГБ, и модель с MTP влезет на 12 ГБ. Однако это может слегка ухудшить качество на длинных контекстах. На коротких диалогах разницы нет. Экспериментируйте.

💡
Финальный лайфхак: Если у вас MacBook Air с M5 и Unified Memory — MTP тоже работает! Мы протестировали Gemma 4 26B с IQ4_XS на M5 — скорость 12 токен/с. Читайте отчет о запуске на MacBook Air.

Теперь у вас есть всё, чтобы выжать максимум из своей видеокарты. MTP и QAT — не серебряная пуля, но на 2026 год это лучший способ ускорить Gemma 4 без потери качества. Берите мои параметры, подгоняйте под свой GPU и наслаждайтесь быстрой генерацией.

Подписаться на канал