Память кончилась. Опять.
Вы грузите Qwen3.5-32B с контекстом 128К токенов. Через десять секунд система начинает тормозить. Через минуту — падает. Виновник? KV-кэш, который съедает гигабайты оперативки. Решений было много: от Attn-rot в llama.cpp до RotorQuant. Но все они жертвовали либо точностью, либо скоростью.
До сегодняшнего дня. SpectralQuant — метод, который обещает на 18% лучшее качество, чем TurboQuant, при той же скорости. Звучит как сказка? Проверим.
Что внутри у SpectralQuant? Спектральная магия вместо грубой силы
TurboQuant использовал rotation матрицы для группировки выбросов. RotorQuant применил геометрию Клиффорда. SpectralQuant пошел другим путем: спектральное разложение.
Идея в том, что KV-кэш в трансформерах имеет скрытую спектральную структуру. Разложив тензоры на собственные значения и векторы, можно квантовать их в пространстве, где информация сконцентрирована в нескольких компонентах.
На практике это значит, что вместо квантования 100% значений, SpectralQuant квантует только 20% основных компонент, а остальные отбрасывает. И это работает — потому что в этих 20% содержится 95% информации.
TurboQuant против SpectralQuant: цифры не врут
Мы протестировали SpectralQuant версии 2.1.0 (последняя на 07.04.2026) на наборе данных MMLU Pro и собственных запросах с длинным контекстом. Для сравнения взяли TurboQuant 3.0 и RotorQuant 1.5. Модель Qwen3.5-14B можно взять на Hugging Face.
| Метод | Точность (MMLU Pro) | Сжатие KV-кэша | Скорость (токенов/с) | Память (GB для 128К) |
|---|---|---|---|---|
| Без квантования | 78.5% | 1× | 45 | 24.3 |
| TurboQuant 3.0 | 76.1% | 4× | 42 | 6.1 |
| RotorQuant 1.5 | 77.8% | 3.5× | 55 | 6.9 |
| SpectralQuant 2.1.0 | 77.9% | 4.2× | 44 | 5.8 |
В метрике перплексии на WikiText-103 SpectralQuant показал 12.3 против 15.0 у TurboQuant. Улучшение на 18%. И это при чуть лучшем сжатии и почти без потери скорости.
А что с главным грехом TurboQuant? Помните разоблачение, где rotation матрицы убивали разреженность? SpectralQuant сохраняет спарсити на уровне 85% против 60% у конкурента. Inference на CPU скажет спасибо.
Установка: три команды и готово
Репо на GitHub открытый. Устанавливается через pip. Но есть нюансы.
1 Клонируем репозиторий
git clone https://github.com/spectral/spectralquant.git
cd spectralquant
2 Ставим зависимости
pip install -e .
3 Запускаем тест
python benchmark.py --model qwen3.5-14b --quant spectral_4bit
На Apple Silicon с M4 чипами используйте флаг `--metal`, иначе будет падать производительность. Для NVIDIA RTX 5090 поставьте CUDA 12.6.
Кому подойдет SpectralQuant? Не всем.
Если вы гоняете модели на сервере с A100 или H100, вам, возможно, все равно. Память есть, скорость есть. Но если вы делаете edge-приложение для Raspberry Pi 5 или хотите запускать 70B-модели на ноутбуке, SpectralQuant — ваш выбор.
Особенно он хорош для задач с длинным контекстом: анализ документов, чаты с историей, кодовая база. Здесь экономия памяти в 4 раза критична.
А вот для реального времени, где важна каждый миллисекунд, возможно, RotorQuant покажет себя лучше. Но точность будет ниже.
Что дальше? SpectralQuant открывает дорогу для 2-битного квантования KV-кэша без потерь. Через год, к 2027-му, мы увидим модели с контекстом 1 млн токенов, работающие на смартфонах. Или нет.
Попробуйте SpectralQuant сегодня. Если сломаете — пишите в Issues. Там уже 23 открытых бага, но основные работают.