TurboQuant и per-layer outlier-aware K: методы квантования для Gemma 4 и Qwen | 2026 | AiManual
AiManual Logo Ai / Manual.
05 Апр 2026 Инструмент

TurboQuant и per-layer outlier-aware K: как выжать из Gemma 4 и Qwen максимум на слабом железе

Детальный разбор TurboQuant и per-layer outlier-aware K - новых методов квантования KV-кэша для Gemma 4 и Qwen. Сравнение с RotorQuant и Attn-rot, примеры испол

Когда память кончается, а модель должна работать

К началу 2026 года ситуация стала абсурдной. Модели вроде Gemma 4 26B или Qwen2.5-72B требуют столько памяти для KV-кэша, что даже RTX 5090 плачет. Контекст в 256К токенов? Забудьте. Пока все обсуждали RotorQuant и его фантастическую скорость, Google тихо доработала TurboQuant. Добавила per-layer outlier-aware K и структурированное вращение FWHT. Результат - сжатие KV-кэша в 16 раз с потерями точности меньше 0.5% на MMLU Pro. Цифры скучные, но смысл простой: теперь можно запихнуть Gemma 4 31B с контекстом 256K на одну видеокарту. Без шуток.

TurboQuant 2026: не просто вращение, а умное вращение

Оригинальный TurboQuant, о котором мы писали раньше, работал на принципе случайных вращений. Брал векторы KV-кэша, крутил их в пространстве, потом квантовал. Проблема была в выбросах - тех самых значениях, которые выскакивали из общего распределения и портили всю статистику. Новый TurboQuant (актуальный на апрель 2026) использует FWHT - быстрое преобразование Уолша-Адамара. Звучит сложно, но на практике это структурированное вращение, которое лучше сохраняет геометрию данных.

💡
FWHT (Fast Walsh-Hadamard Transform) - это не просто математическая красота. В отличие от случайных вращений, оно детерминировано, требует нулевых вычислений для генерации матрицы и идеально ложится на SIMD-инструкции современных GPU. Google выбрала его не потому что модно, а потому что быстро.

1 Per-layer outlier-aware K: где прячутся выбросы

А вот это главное. Раньше TurboQuant обрабатывал все слои модели одинаково. Но в реальности распределение значений в KV-кэше отличается от слоя к слоу. В первых слоях больше выбросов, в последних - меньше. Per-layer outlier-aware K анализирует каждый слой отдельно, определяет пороговые значения для выбросов и применяет разную стратегию квантования. Для слоев с кучей выбросов используется QJL (Quantile-based Joint Limiting) - метод, который изолирует эти выбросы и квантует их отдельно с большей точностью.

Не путайте per-layer outlier-aware K с обычным outlier detection. Это не просто поиск аномалий, а адаптивная стратегия квантования, которая меняет битность для разных частей тензора внутри одного слоя. На 5-м слое Gemma 4 26B может быть 8-битное квантование для 95% значений и 16-битное для оставшихся 5% выбросов.

Сравнение: TurboQuant против RotorQuant и Attn-rot

В марте 2026 все говорили о RotorQuant - методе, который в 10-19 раз быстрее. В апреле ситуация изменилась. Да, RotorQuant все еще быстрее на чистой скорости квантования. Но TurboQuant с per-layer outlier-aware K дает лучшее качество при той же степени сжатия. Для Gemma 4 26B разница в перплексии (PPL) на WikiText-103 достигает 0.15 пунктов в пользу TurboQuant. Много? Для чат-бота нет. Для генерации кода или математических рассуждений - критично.

Метод Скорость (A100) Сжатие KV-кэша ΔPPL (Gemma 4 26B) Поддержка Apple Silicon
TurboQuant (старый) 850 мс / 1M токенов 16x +2.1% Нет
TurboQuant + per-layer K (2026) 920 мс / 1M токенов 16x +0.4% Да (через Metal)
RotorQuant 45-85 мс / 1M токенов 16x +0.7% Да (нативный)
Attn-rot (llama.cpp) ~200 мс / 1M токенов 8x +1.2% Да (через GGML)

Attn-rot в llama.cpp - это облегченная версия TurboQuant, о которой мы уже писали. Она проще в интеграции, но дает меньшее сжатие и больше потерь. Для Qwen3.5-14B это нормально. Для Gemma 4 26B - уже нет.

Как это работает на практике: Gemma 4 и Qwen

Возьмем конкретный пример. У вас есть RTX 5090 с 24GB памяти. Хотите запустить Gemma 4 31B с контекстом 256К. Без квантования KV-кэша это невозможно - только на кэш уйдет 30+ GB. С TurboQuant per-layer outlier-aware K - пожалуйста. Алгоритм такой:

  1. Загружаем модель в 4-битном квантовании весов (используем метод Bartowski или Unsloth - разница в 10 токенов/сек, как мы уже разбирали).
  2. Включаем TurboQuant для KV-кэша с параметром per_layer_outlier_aware=True.
  3. Система автоматически анализирует каждый слой, определяет пороги для QJL, применяет FWHT вращение.
  4. KV-кэш сжимается в 16 раз, занимая вместо 30GB всего 1.8GB.
  5. Профит - модель работает, контекст полный, качество падает на доли процента.

Для Qwen2.5-72B сценарий аналогичный, но здесь per-layer outlier-aware K еще важнее. В этой модели выбросы в KV-кэше распределены неравномерно - в средних слоях их концентрация выше на 40%. Старый TurboQuant терял здесь до 3% качества. Новый - всего 0.6%.

Кому это нужно? (Спойлер: почти всем)

Если вы думаете, что TurboQuant с per-layer outlier-aware K - удел исследователей, ошибаетесь. Вот кому это пригодится прямо сейчас:

  • Энтузиастам с одной видеокартой - хотите запускать большие модели с длинным контекстом? Это ваш метод. Гайд уже есть.
  • Разработчикам локальных приложений - когда нужно держать в памяти несколько экземпляров модели для разных пользователей. Сжатие KV-кэша в 16 раз = можно запустить в 4 раза больше инстансов.
  • Исследователям - для экспериментов с длинными контекстами без аренды серверов с терабайтами памяти.
  • Всем, кто работает с RAG - потому что в retrieval-augmented generation длинный контекст это не роскошь, а необходимость.

Подводные камни (они всегда есть)

Идеального не бывает. Per-layer outlier-aware K требует предварительного анализа модели - хотя бы одного прохода forward pass для сбора статистики. Это добавляет 5-10 секунд к времени загрузки. Не критично, но неприятно. FWHT вращение, хотя и быстрое, не оптимально для всех архитектур. В Llama 3.3 оно работает лучше, чем в Qwen. Почему? Магия внутренних активаций.

И главное - TurboQuant per-layer outlier-aware K сложнее в реализации, чем RotorQuant или Attn-rot. Нужно правильно определить пороги для QJL, подобрать параметры для каждого типа слоя. Google выложила референсную реализацию, но для интеграции в ваш пайплайн придется попотеть.

Что дальше? Прогноз на 2026

Квантование KV-кэша перестает быть экзотикой. Это стандартная опция, как когда-то 8-битное квантование весов. К концу 2026 жду слияния методов: RotorQuant для скорости + per-layer outlier-aware K для качества. И обязательно появятся аппаратные ускорители, которые будут делать это на лету, без потерь производительности. А пока - выбирайте. Скорость (RotorQuant) или качество (TurboQuant per-layer). Или комбинируйте методы под свою задачу. Главное - не бойтесь экспериментировать. Потому что память - это новый bottleneck, и те, кто научатся ее экономить, получат преимущество.

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