Когда я впервые запустил Gemma4 31B в квантовании Q4_k_M, меня переполнял энтузиазм. Почти 20 гигабайт на диске, обещание интеллекта уровня GPT-4 на домашнем железе. Первые пять запросов — блеск. Потом я скормил ей 20 килобайт контекста — и модель поплыла. Буквально. Ответы стали напоминать записки пьяного философа.
Контекст, который убивает
Я работаю с документацией одного opensource-проекта. Типичная задача: загрузить инструкцию на 15k токенов и задать вопрос по ней. В Q4_k_M Gemma4 31B на 12k токенов ещё держится. На 18k — начинает путать имена. На 20k — вываливает бессмыслицу, игнорируя половину промпта. Это не постепенная деградация, а резкий обрыв: будто в модели отключается половина нейронов.
Предупреждение
Q4_k_M агрессивно сжимает веса. Для контекстов >8k токенов это сказывается на способности модели удерживать дальние зависимости. Если планируете обрабатывать длинные документы — готовьтесь к сюрпризам.
Похожая проблема описана в статье про дрейф тензоров у Gemma 4 26B. У 31B симптоматика та же: внимание разваливается на длинных дистанциях. Разница лишь в том, что 31B держится чуть дольше, а потом падает ещё жёстче.
Heretic-версия: лекарство хуже болезни?
Пытаясь исправить ситуацию, я переключился на heretiс-версию — неофициальную модификацию, которая снимает ограничения Google и добавляет ARA (Arbitrary-Rank Ablation). Подробности о методе есть в гайде по Heretic. Идея в том, чтобы удалять «плохие» направления активаций, улучшая стабильность.
И знаете, это помогло. Примерно на 30%. Heretic-версия Q4_k_M начала справляться с 20k токенов — не идеально, но хотя бы не теряла суть. Но цена — скорость. Выращивать контекст стало ещё медленнее: каждый новый токен обрабатывается по 2-3 секунды на моём RTX 3090. Плюс появились новые глюки: модель начала отвечать на китайском, если в контексте есть числа.
Личное наблюдение
Heretic-версия с ARA — палка о двух концах. Она реально может исправить нестабильность, но только если потратить день на подбор гиперпараметров ablation. Без тонкой настройки вы получите лишь дополнительную головную боль.
Инструменты против контекста
Ещё одна боль — вызов инструментов (function calling). На коротких контекстах Q4_k_M работает с трудом, а на длинных — отказывается. Модель теряет поданные функции, игнорирует параметры. Я попробовал использовать обходное решение из статьи про исправление ошибок вызова инструментов через llama.cpp. Работает, но только если контекст не превышает 10k токенов.
Сравнение с Qwen3.5 только подтверждает мои опасения. Как написано в материале про KV cache, Qwen3.5 на тех же 20k токенов ведёт себя в разы стабильнее. Да, он потребляет больше памяти, но не “забывает” промпт после 12k. И вызов инструментов у него не рассыпается.
Что выбрать? Квантование vs контекст
Я перепробовал разные варианты. Q4_k_M — самый агрессивный, даёт 20 ГБ памяти, но и самый “слепой” на длинных контекстах. Q5_K_M — чуть стабильнее (12k против 20k токенов), но жрёт 26 ГБ. Q8_0 — почти без потерь, но требует 46 ГБ — это уже за гранью домашнего GPU. Если у вас 24 ГБ и меньше — готовьтесь к компромиссам.
| Квантование | Размер на диске | Макс. стабильный контекст | Примечание |
|---|---|---|---|
| Q4_K_M | ~20 ГБ | ~12k токенов | Дальше — провал |
| Q5_K_M | ~26 ГБ | ~18k токенов | Можно дышать |
| Q8_0 | ~46 ГБ | ~24k+ | Требует A6000 |
Любопытно, что heretiс-версия в комбинации с Q4_K_M сдвигает порог до ~16k, но не спасает полностью. Если задача требует 30k+ токенов — лучше смотреть в сторону Qwen3.5 или более “контекстных” моделей. Я подробно описал, как настраивать подобные связки, в общем гайде по запуску Gemma 4 локально, но там без учёта heretiс.
Когда стоик, а когда бежать
Да, Q4_K_M с heretiс-версией — это эксперимент, который может выстрелить, если вы готовы часами подбирать параметры ablation и отключать часть внимания. Но стоит ли овчинка выделки? Для продакшена — точно нет. Для домашних поделок — может быть. Моя искренняя рекомендация: если ваш рабочий контекст стабильно превышает 10k токенов, не пытайтесь сэкономить 5 ГБ памяти на квантовании. Возьмите Q5_K_M или даже Q8_0 — и забудьте о “выгорании” модели.
Честно, после трех недель мучений с 31B я пересел на Qwen3.5 и не жалею ни разу. Спойлер: в следующей статье расскажу, почему Gemma 4 31B в Q4_K_M и heretiс-версия — это тупик для задач, требующих стабильного контекста. Готовьте виртуальные грабли.