Together AI выложила в открытый доступ OSCAR (Offline Spectral Covariance-Aware Rotation) — систему квантизации KV-кэша до 2 бит, которая интегрируется прямо в SGLang и совместима со стандартным paged attention. На Qwen3-8B потеря точности — 1.42 пункта против BF16, на Qwen3-32B — 0.02, на GLM-4.7-FP8 (358B) результат даже чуть выше базовой линии (+0.27). Память под KV-кэш сокращается примерно в 8×; при batch=32 и 100K-контексте decode throughput достигает 7.83×. Для сравнения: naive INT2 без ротации на Qwen3-4B набирает ровно 0.00 на AIME25.
Контекст
KV-кэш — буфер ключей и значений, который в авторегрессивной генерации растёт пропорционально длине контекста, размеру батча и глубине модели. При 100K токенах на десятки параллельных запросов он занимает значительную долю GPU-памяти и становится главным узким местом при серийном инференсе. Квантизация до INT4 давно работает без заметных потерь. INT2 — четыре уровня представления — до OSCAR практически не работала: выбросы в отдельных каналах съедали весь диапазон кодирования, и точность модели рушилась.
Together AI — компания в области инфраструктуры для открытых моделей и эффективного инференса. OSCAR задокументирован в препринте arXiv:2605.17757. Предыдущие подходы к INT2, включая QuaRot (только Hadamard-поворот), либо давали низкую точность (1.40 на Qwen3-4B), либо требовали нестандартных layouts, несовместимых с paged KV-cache. OSCAR решает обе проблемы одновременно.
Готовые матрицы ротации для Qwen3-4B/8B/32B, GLM-4.7-FP8 и MiniMax-M2.7 опубликованы в RotationZoo на ModelScope — повторная калибровка не нужна. Для кастомных моделей предусмотрен офлайн-скрипт: запускается один раз на 8192 калибровочных токенах и переиспользуется для любых задач.
Аналитика
Ключевой инсайт OSCAR: ротация перед квантизацией должна учитывать не распределение KV-активаций само по себе, а то, как именно внимание читает эти активации. Для ключей важна не евклидова ошибка реконструкции K, а ошибка в логитах внимания — а значит, матрица поворота должна минимизировать ошибку, взвешенную по ковариации запросов. Для значений — ошибку в выходе SV, взвешенную по матрице оценок. Это принципиально отличается от «равномерного размазывания выбросов», которое делает Hadamard.
Практически OSCAR применяет три последовательных преобразования: выравнивание по ковариации запросов (для ключей) или оценок (для значений), Walsh-Hadamard для равномерного распределения важности каналов, и перестановку с битовым реверсом — чтобы каждая группа квантизации получила представителей из всех уровней иерархии важности. Вся конструкция просчитывается офлайн; поворот значений поглощается в веса проекции модели и не добавляет накладных расходов при инференсе.
Ускорение нарастает с длиной контекста — именно потому, что декодирование на длинных контекстах становится всё более bandwidth-bound. Сокращение кэша в 8× напрямую снимает этот bottleneck. Первые 64 токена («attention sinks») и последние 256 хранятся в BF16 — это 0.24% от 128K-контекста, но критично для стабильности. По бенчмаркам AIME25, GPQA-Diamond, HumanEval, LiveCodeBench v6 и MATH500 при 2.28 битах на элемент OSCAR на Qwen3-4B-Thinking-2507 набирает 71.86 — против 73.11 у Saw-INT4 при 4.25 битах.
Кейсы применения в бизнесе
B2B-SaaS стартап на GPU-инференсе (RAG, code review, анализ длинных документов): OSCAR позволяет увеличить батч без покупки дополнительных GPU. При batch=32 и 100K-контексте throughput вырастает до 7.83× — это либо кратное снижение стоимости инференса, либо возможность обслуживать в ~8 раз больше запросов на том же железе. Сервер поднимается через стандартный OpenAI-compatible API, клиентский код трогать не нужно.
Корпорация с собственным GPU-кластером: для Qwen3-32B потеря точности 0.02 пункта практически незаметна на production-нагрузках. Переход не требует переобучения, изменений в пайплайне или переписывания приложений. Прямое сокращение GPU-ресурсов при текущей нагрузке.
SMB и локальный бизнес в КР/СНГ, держащий self-hosted модели по compliance-соображениям: OSCAR снижает требования к VRAM. Qwen3-8B с INT2 KV-кэшем помещается в конфигурацию, где BF16 при длинном контексте просто не влезает. Актуально для поддержки клиентов, внутреннего поиска по документам, автоматизации обработки обращений.
Кейсы в личной жизни
Разработчик, строящий RAG-пайплайн или agentic-систему: установка SGLang с OSCAR и загрузка RotationZoo занимает 15–20 минут. Дальше работает через стандартный OpenAI-клиент — никаких изменений в приложении. Prefix cache и paged attention работают штатно.
ML-инженер или исследователь с кастомной моделью: OSCAR поддерживает офлайн-калибровку для любой архитектуры. Авторы показывают, что результат нечувствителен к домену калибровочных данных (MMLU, WikiText, GPQA дают похожий результат) — запустить один раз и переиспользовать.
Студент или фрилансер с одной RTX: при ограниченной VRAM OSCAR открывает работу с длинными контекстами на Qwen3-4B. Потеря −3.78 на AIME25 для задач суммаризации, перефразирования или code completion некритична.
Как применить сегодня
- Установить SGLang и Triton:
pip install sglang[all] --upgrade && pip install triton - Скачать готовые матрицы из RotationZoo на ModelScope для Qwen3-4B/8B/32B, GLM-4.7-FP8 или MiniMax-M2.7 — повторная калибровка не нужна
- Запустить сервер:
python -m sglang.launch_server --model-path Qwen/Qwen3-8B --kv-cache-dtype int2 --oscar-rotation-path ./oscar_rotations/ --oscar-sink-size 64 --oscar-recent-size 256 - Запрашивать через стандартный OpenAI-совместимый клиент — код приложения менять не нужно, prefix cache работает штатно
- Для кастомной модели:
python calibrate_oscar.py --model-path /path/to/model --calib-tokens 8192 --output-dir ./oscar_rotations/— один раз, затем переиспользовать