Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
Веса, активации и KV-кэш LLM удалось одновременно сжать до крайне низкой разрядности с меньшей потерей качества, чем у прежних схем. В препринте Meta AI, который не проходил рецензирование и содержит числа самих авторов, CanonQ снизил перплексию до 14,28 раза относительно проверенных альтернатив. Для команд это повод оценивать квантование всей вычислительной цепочки, а не выбирать метод только по сжатию весов.
Как один кодек обслуживает разные данные
Весы модели, промежуточные активации и KV-кэш распределены по-разному. Последний хранит ключи и значения механизма внимания и растёт вместе с контекстом и числом одновременных запросов. Если независимо округлить все три источника до нескольких бит, ошибки начинают усиливать друг друга: квантованные веса меняют активации, а те порождают уже искажённые ключи и значения.
CanonQ разделяет подготовку данных и выбор значений, которыми их заменяют. Сначала каждый блок проходит фиксированное ортогональное преобразование: случайные знаки, преобразование Адамара и перестановку. Оно перемешивает координаты и распределяет энергию блока равномернее.
Затем CanonQ нормализует блок по его энергии. Масштаб отделяется от направления, поэтому веса, активации, ключи и значения попадают в близкую систему координат, несмотря на исходно разные распределения.
После этого элементы сопоставляются с заранее рассчитанной таблицей значений для нормального распределения. Таблица не меняется между слоями и во время обучения. Когда разрядность и размер группы совпадают, одну таблицу можно использовать для разных источников; в остальных случаях сохраняется общий способ её построения.
CanonQ поддерживает скалярное и векторное квантование. В скалярном варианте каждый элемент получает отдельный индекс. В векторном одна запись может кодировать сразу четыре веса: при двух битах на вес такой индекс занимает восемь бит. Совместный выбор позволяет учитывать связь элементов, но увеличивает стоимость поиска по таблице.
На выходе CanonQ возвращает сохранённый масштаб и применяет обратное преобразование. В обозначении W2A4KV2 веса занимают два бита, активации — четыре, а ключи и значения в KV-кэше — по два.
Почему фиксированной таблицы недостаточно
CanonQ включает все выбранные низкобитные пути во время квантования с учётом обучения. Модель сразу видит совместные ошибки весов, активаций и кэша и подстраивает параметры под те же операции, которые будут работать при выводе.
На трёх размерах LLaMA3 режим W2A4KV2 дал до 14,28 раза меньшую перплексию и до 57,9% более высокую среднюю точность без примеров в запросе, чем лучшие и репрезентативные альтернативы из сравнения. Перплексия показывает, насколько уверенно модель предсказывает продолжение текста: чем она ниже, тем лучше.
Фиксированная таблица сама по себе качество не сохраняет. На LLaMA3-1B применение канонического кодека без дополнительного обучения дало перплексию примерно в 509 раз выше, чем после адаптации. Преобразование делает единый кодек применимым к разным данным, но восстановить работу сети помогает именно обучение.
Отдельно проявился вклад KV-кэша. При одинаково квантованных весах и активациях каноническая обработка кэша добавила 5,26 процентного пункта средней точности по сравнению с равномерным квантованием кэша. Значит, хороший результат для весов ещё не предсказывает качество полной конфигурации.
Теоретическая часть связывает три величины: отличие преобразованных данных от эталонного распределения, ошибку восстановления и искажение градиента при обучении. Практический вывод проще: чем хуже блоки совпадают с эталоном и чем дальше выбранные значения от исходных, тем менее точный сигнал получает оптимизатор.
Когда CanonQ меняет планы разработки
Работа меняет план экспериментов для команд, которые хотят сократить память под модель и длинный KV-кэш. Целевую разрядность стоит выбирать до адаптации и проверять целиком. Последовательность «сначала подобрать квантование весов, затем отдельно добавить активации и кэш» пропускает взаимодействие ошибок, на котором CanonQ получает основной выигрыш.
Начинать разумно со скалярного варианта: он показал лучший результат на младшей LLaMA3 и требует более дешёвого поиска. Векторную схему стоит оставлять вариантом для проверки на валидации. На более крупной модели она немного повысила точность, но одновременно ухудшила перплексию, поэтому универсального размера группы работа не даёт.
Сразу менять производственный стек рано. Эксперименты измеряют качество моделей, а не размер экспортированного файла, задержку генерации или пропускную способность объединённых GPU-ядер. Преобразование Адамара и поиск по таблице добавляют вычисления, поэтому выигрыш в битах ещё нужно подтвердить на целевом оборудовании.
Проверка охватила LLaMA3 нескольких размеров, Qwen3-1.7B и отдельную инструктивную модель для кода и математики. Основное обучение шло на FineWeb-Edu; длинный контекст оценивали в пределах длины, использованной при дополнительном обучении. Каждую конфигурацию запускали с одним начальным состоянием, поэтому таблицы не показывают разброс результатов между повторными запусками.
CanonQ стоит рассматривать как кандидата для собственного контура адаптации и вывода, особенно когда память KV-кэша уже ограничивает длину контекста или число параллельных запросов. Для выбора готового производственного формата пока нужны замеры на реальных ядрах и с учётом служебных данных квантования.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



