Когда в начале года Unsloth выкатил MTP GGUF веса для Gemma 4, сообщество выдохнуло: наконец‑то двукратный прирост скорости без шаманства с драфтерами. Но инженеры Unsloth решили, что этого мало. В конце мая 2026 они выложили новую серию квантизаций — теперь с QAT (Quantization‑Aware Training). И это меняет правила игры для тех, кто хочет запускать Gemma 4 не только на топовых GPU, но и на обычных CPU или картах с 12–16 ГБ памяти.
Почему QAT — это не просто ещё один метод сжатия?
Большинство GGUF-квантований работают постфактум: берут обученную модель в FP16 и тупо обрезают веса. Получается быстро, но с потерей точности, особенно на 4-битных версиях. QAT же вшивает низкую точность прямо в процесс обучения — модель с самого начала учится компенсировать ошибки округления. Результат: Gemma 4 в Q4_K_M с QAT даёт перплексию почти как Q8_0 без QAT. Это подтверждают и тесты в статье выбор лучшего GGUF-кванта для Gemma 4 31B — KL‑дивергенция у QAT-версий ниже на 15–20%.
А теперь добавьте сюда Multi‑Token Prediction. Это когда модель генерирует не один токен за шаг, а сразу 2–4, что ускоряет инференс в 1.5–2 раза. Раньше MTP требовал отдельного драфтера. Unsloth впаял его прямо в GGUF. И теперь QAT + MTP в одном флаконе — это как «взять ипотеку со льготной ставкой и кешбэком» (только для нейросетей).
Ассортимент: что лежит на полке у Unsloth?
На HuggingFace в репозитории unsloth/gemma-4-27b-it-GGUF и unsloth/gemma-4-31b-it-GGUF выложено около десятка вариантов. Часть из них — QAT + MTP, часть — только QAT. Специально для CPU‑энтузиастов есть версии с Q3_K_M и Q4_K_M, которые отлично работают в сборках llama.cpp с опцией -ngl 0.
| Квант | Размер (31B) | MTP | QAT | Токенов/с (RTX 4090) | Токенов/с (CPU i9 32 ядра) |
|---|---|---|---|---|---|
| F16 | ~62 GB | Да | Нет | 25–30 | — |
| Q8_0 | ~35 GB | Да | Да | 35–40 | ~3 |
| Q4_K_M (QAT) | ~20 GB | Да | Да | 50–55 | ~8 |
| Q4_K_M (обычный) | ~20 GB | Нет | Нет | 45–50 | ~7 |
| Q3_K_M (QAT) | ~16 GB | Да | Да | 55–60 | ~12 |
Цифры для CPU получены на 32‑ядерном Intel Core i9–14900K с 64 ГБ DDR5. Скорость зависит от количества потоков и частоты памяти — у AMD Threadripper будет ещё выше.
Как это работает на деле — и в чём подвох?
Сценарий первый: у вас RTX 4090 с 24 ГБ VRAM. Казалось бы, Q4_K_M (20 ГБ) помещается идеально, но при длинном контексте KV‑cache съедает ещё 2–4 ГБ. Тут выручает TurboQuant сжатие KV‑cache — оно поддерживается новыми GGUF от Unsloth и экономит до 30% памяти. С ним на Q4_K_M можно удерживать контекст до 16K токенов. Без TurboQuant — только 8K.
Сценарий второй: вы решили запустить модель исключительно на CPU. Берёте последнюю сборку llama.cpp (например, от компилятора с поддержкой AVX‑512), скачиваете Q4_K_M QAT и запускаете с флагом -ngl 0. На современном ноутбуке с 16 ядрами получите около 2–3 токенов в секунду. Не рекорд, но для чат‑бота или анализа документов — вполне терпимо. А если у вас десктопный Threadripper с 64 ядрами — все 10–12 токенов/с обеспечены.
Важно: QAT‑версии весят примерно на 5–8% больше обычных из‑за дополнительных метаданных (калибровочных таблиц). Но это плата за заметно лучшее качество. На практике никто не жалуется.
Сравнение с альтернативами: почему Unsloth вырывается вперёд
Основной конкурент в квантизации Gemma 4 — Bartowski. Его GGUF‑файлы популярны и качественны, но у них нет встроенной поддержки ни MTP, ни QAT. Bartowski делает обычную пост‑тренинг квантизацию (через llama.cpp) и иногда использует imatrix для улучшения. Но как мы уже разбирали в статье сравнение скорости Bartowski и Unsloth, разница в токенах/с достигает 10 единиц в пользу Unsloth. А с QAT эта пропасть только растёт, особенно на 4‑битных версиях.
Есть ещё вариант — собирать модель самому через llama.cpp с опциями --include-weights. Но без QAT вы не получите той же точности, а конфигурация MTP потребует ручного мерджа драфтера. Unsloth всё делает за вас — скачал и запустил.
Инструкция по запуску за 3 минуты
Никакой магии. Всё как мы описывали в гайде по ускорению генерации с MTP и QAT. Ключевые шаги:
- Скачать нужный GGUF. Например, Q4_K_M с QAT и MTP для Gemma 4 31B:
huggingface-cli download unsloth/gemma-4-31b-it-GGUF \ --include "*Q4_K_M*QAT*MTP*" \ --local-dir ./modelsФлаг
--includeобязателен, чтобы не тянуть всю папку. - Запустить через llama.cpp. Убедитесь, что у вас версия не ниже b4232 (именно в ней появилась поддержка QAT + MTP):
./main -m models/gemma-4-31b-it-q4_k_m-QAT-MTP.gguf \ -p "Привет, как дела?" \ -n 512 \ -ngl 999 # использовать все слои на GPU, или -ngl 0 для CPU - Для Ollama. Модели Unsloth официально добавлены в библиотеку. Просто выполните:
ollama run unsloth/gemma4:31b-q4-k-m-qatOllama сама скачает и загрузит модель с правильными параметрами.
Кому это нужно прямо сейчас?
Ситуация простая. Если у вас есть RTX 4090 или 5090 — берите Q4_K_M QAT с MTP. Вы получите ~50 токенов/с и качество, близкое к Q8_0. Если у вас карта с 12–16 ГБ (RTX 4070, 4080) — смотрите на Q4_K_M без MTP или Q3_K_M с MTP: оба варианта влезут с небольшим контекстом. Наконец, если GPU нет вовсе (или у вас слабый ноутбук) — Q3_K_M QAT на CPU даёт до 12 токенов/с при условии 16+ ядер и AVX‑512.
Лично я считаю, что QAT — это must‑have для всех, кто не хочет жертвовать качеством ради экономии памяти. MTP — приятный бонус, который особенно заметен на диалогах с длинными ответами. Unsloth снова оказывается на шаг впереди. Думаю, к концу года все мало‑мальски серьёзные GGUF‑квантизации будут использовать QAT — иначе конкуренты просто не смогут держаться за счёт точности.