Attn-rot в llama.cpp: новый метод квантования KV-кэша для Qwen3.5 | AiManual
AiManual Logo Ai / Manual.
01 Апр 2026 Инструмент

Attn-rot (TurboQuant lite) в llama.cpp: разбор нового метода квантования KV-кэша и бенчмарки для Qwen3.5

Разбор Attn-rot (TurboQuant lite) в llama.cpp: как новый метод квантования KV-кэша снижает KLD и ускоряет инференс Qwen3.5. Бенчмарки и сравнения.

Память KV-кэша съедает все. Attn-rot в llama.cpp - это тихий апгрейд, который меняет правила

Пока все обсуждают 1-битное квантование, Георгий Герганов тихо замержил пул-реквест в llama.cpp. Название скромное - Attn-rot. Внутри - модифицированный TurboQuant lite для KV-кэша. Результат? KLD для q4_0 падает с 0.0103 до 0.0076. Цифра скучная, но на практике это значит, что ваш Qwen3.5 будет меньше врать при меньших затратах памяти.

💡
Актуальность данных: вся информация в статье соответствует состоянию на 01.04.2026. Рассматриваем самый свежий коммит в master-ветке llama.cpp от ggerganov, который включает метод Attn-rot (TurboQuant lite) для квантования KV-кэша.

Что за зверь такой, этот Attn-rot? Проще, чем кажется

Помните TurboQuant от Google? Метод для экстремального сжатия. Attn-rot - его облегченная версия, заточенная под одну задачу: квантовать ключи (K) и значения (V) в механизме внимания, не угробив качество.

Вот в чем фишка. Обычное квантование берет тензор и грубо округляет значения. Attn-rot сначала применяет вращение (rotation) - специальное преобразование, которое упаковывает информацию «умнее». После вращения квантование бьет не так больно. Особенно это заметно на малых битностях вроде q4_0.

Почему это важно для вас? Потому что KV-кэш - главный пожиратель памяти при длинных контекстах. Грузите 32К токенов в Qwen3.5-14B? Кэш весит гигабайты. Attn-rot сжимает его в несколько раз, а модель почти не замечает подмены.

Не путайте. Это не квантование весов модели (как в полном гайде по квантованию). Attn-rot работает только с динамическим KV-кэшем во время инференса. Веса модели остаются нетронутыми.

Цифры из пул-реквеста. Сухая статистика, которая говорит громче слов

Герганов не любит пустые обещания. В коммите - тесты на перплексию и KLD (расхождение Кульбака-Лейблера). KLD измеряет, насколько распределение квантованных значений отличается от оригинального. Чем ближе к нулю, тем лучше.

Метод / Модель Тип квантования KLD (было) KLD (стало с Attn-rot)
Qwen3.5-7B q4_0 0.0103 0.0076
Qwen3.5-14B q4_0 0.0098 0.0071
Llama 3.1 8B q4_0 0.0112 0.0084

Падение KLD на 25-30%. На бумаге - отлично. На практике? Перплексия на WikiText-2 для Qwen3.5-7B с квантованным кэшем (q4_0) почти не изменилась. Модель генерирует так, будто вы не трогали память. Магия? Нет, просто математика.

А что с альтернативами? RotorQuant, RaBitQ и другие звери в джунглях

Мир квантования не стоит на месте. Пока мы разбирали Attn-rot, китайские исследователи выкатили RotorQuant, который обещает быть в 10-19 раз быстрее. Но там своя кухня - нужны специальные ядра для CUDA и Metal.

А еще был скандал с RaBitQ против TurboQuant перед ICLR 2026. Ученые спорили, чей метод честнее. Attn-rot избегает этой войны - он просто прагматичная инженерная оптимизация внутри llama.cpp, а не научная статья.

Главный конкурент Attn-rot - это старый добрый TurboQuant в полной версии. Полная версия мощнее, но сложнее. Attn-rot (TurboQuant lite) проще, быстрее интегрирован и уже работает в основном репозитории. Для большинства - идеальный компромисс.

Кому светит этот метод? Список счастливчиков

  • Владельцы слабых видеокарт с 8-12 ГБ VRAM. Хочется запустить Qwen3.5-14B на длинном контексте? Attn-rot сократит потребление памяти кэшем на 60-70%. Это может быть разницей между «запускается» и «вылетает с CUDA out of memory».
  • Энтузиасты, которые бенчмаркают все подряд. Теперь есть новый флаг `--kv-cache-quant q4_0` в llama.cpp. Включайте, замеряйте перплексию и скорость. Данные для сравнения уже есть в наших старых тестах TurboQuant.
  • Разработчики, которые портируют модели на Apple Silicon. Метод уже работает через Metal. Если вы экспериментировали с портированием TurboQuant на MLX, теперь можно переключиться на родную поддержку в llama.cpp.
  • Люди, которые ненавидят деградацию качества. Если практическое руководство по квантованию вас напугало потерей точности, Attn-rot - ваш щит. Потеря минимальна, выигрыш в памяти - огромен.

Как это использовать? Никакого кода, только флаги

Вы собрали свежую версию llama.cpp с поддержкой Attn-rot (коммит после 25 марта 2026). Все. Дальше просто добавляете флаг при запуске.

Раньше команда выглядела так:

./main -m qwen3.5-7b-q4_0.gguf -p "Ваш промпт" -n 512

Теперь так:

./main -m qwen3.5-7b-q4_0.gguf -p "Ваш промпт" -n 512 --kv-cache-quant q4_0

Система автоматически применит Attn-rot к KV-кэшу. Вы не пишете ни строчки кода. Вы просто получаете больше свободной памяти.

Важный нюанс: метод работает только с определенными типами квантования, которые поддерживают пакетное квантование (batch quantization). В первую очередь это q4_0, q4_1, q5_0, q5_1. Экзотические форматы вроде IQ4_XS могут не сработать. Всегда проверяйте лог llama.cpp.

И что в итоге? Прогноз от того, кто видел это раньше

Attn-rot (TurboQuant lite) - это не прорыв. Это эволюция. Такие оптимизации постепенно превращают llama.cpp из инструмента для гиков в промышленный рантайм для локальных LLM.

Через полгода, к октябрю 2026, этот метод станет стандартом по умолчанию для квантования кэша. Его интегрируют в LM Studio, Ollama, текстовые веб-интерфейсы. Вы даже не будете знать, что он работает.

А пока - берите и пользуйтесь. Пока другие спорят о 1-битном квантовании, вы уже экономите память на своих 4090 и M3 Max. Иногда тихий апгрейд в мастер-ветке полезнее громких анонсов.

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