Журнал · Rit.work

JARQ повторно подгоняет сетку весов после квантизации LLM

JARQ совместно обновляет масштабы и целочисленные коды уже квантованной LLM, сохраняя формат весов и стоимость инференса.

Rit.work
Студия разработки
1 октября 2026 г.3 мин чтения

Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.

Весовую квантизацию LLM можно улучшить уже после того, как базовый метод округлил веса и подготовил модель к запуску. В нерецензированном препринте McGill University и simpleway.AI, где все числа получили сами авторы, JARQ снизил перплексию трёхбитного RTN до 36% — чем ниже этот показатель, тем лучше модель предсказывает следующий токен. Надстройка не меняет формат весов и не добавляет вычислений во время инференса, но требует отдельного этапа обработки модели.

Почему фиксированная сетка оставляет ошибку

Групповой квантователь делит веса слоя на группы. Для каждой группы он хранит масштаб, нулевую точку и целочисленные коды: масштаб задаёт шаг сетки, а код выбирает одно из доступных значений.

RTN, GPTQ, AWQ и OmniQuant строят такую сетку разными способами, но после округления обычно не подгоняют её заново к получившимся кодам. В результате масштаб остаётся рассчитанным для состояния, которого после округления уже нет.

Исправить масштаб каждой группы отдельно недостаточно. Входные признаки слоя коррелируют друг с другом, поэтому ошибки разных групп смешиваются на выходе. Масштаб одной группы может компенсировать ошибку другой, и оптимальные значения приходится искать совместно для всего выходного канала.

Похожая проблема возникает с кодами. Замена одного кода иногда ухудшает результат, хотя одновременная замена нескольких кодов его улучшает. Поиск, который перебирает веса по одному, останавливается в такой точке и не видит коллективный переход.

Как JARQ чередует подгонку масштабов и кодов

JARQ принимает готовый результат базового квантователя: масштабы, коды и нулевые точки. Он минимизирует разницу между выходом исходного слоя и выходом квантованного слоя на калибровочных входах. Дополнительный штраф удерживает веса рядом с исходными значениями там, где калибровочная выборка плохо определяет направление ошибки.

На первом шаге JARQ фиксирует коды и совместно подбирает масштабы всех групп одного выходного канала методом наименьших квадратов. Такой расчёт учитывает связи между группами, а не рассматривает каждую как независимую.

На втором шаге масштабы фиксируются, а группы кодов обновляются по очереди. Алгоритм ближайшей плоскости Babai предлагает сразу набор целочисленных кодов с учётом уже выбранных значений. Предложение принимается только тогда, когда оно уменьшает ошибку слоя.

После этого JARQ снова подгоняет масштабы под новые коды и повторяет цикл. В основных опытах хватало трёх проходов. При точном решении задачи для масштабов ошибка на калибровочных данных не растёт ни после их обновления, ни после принятой замены кодов; обратное распространение ошибки не требуется.

Проверка охватывает модели семейств Llama-2, Llama-3, Qwen2.5 и Qwen3, базовые методы RTN, GPTQ, OmniQuant и AWQ, а также веса в три и четыре бита при активациях в 16 бит. Группы содержали по 128 весов, а для калибровки использовали WikiText-2. Качество измеряли на WikiText-2, C4, задачах с выбором ответа и генеративных математических наборах.

Когда JARQ стоит добавить в план квантизации

JARQ снизил перплексию в 90 из 96 сравнений и повысил среднюю точность задач с выбором ответа в 23 из 24 конфигураций. Эффект устойчивее на трёхбитных весах и у простого RTN; у сильных базовых методов при четырёх битах выигрыш меньше.

Совместное чередование оказалось важнее каждого шага по отдельности. Полный JARQ обошёл одну лишь повторную подгонку масштабов во всех 16 сравнениях, тогда как обновление кодов на старой сетке ухудшило перплексию в 5 из 16 случаев. Это подтверждает основную гипотезу работы: коды полезно менять только вместе с самой сеткой.

Для команды это дополнительная стадия сборки артефакта, а не смена инфраструктуры инференса. JARQ сохраняет разрядность, группы, нулевые точки и представление весов, поэтому не требует нового ядра исполнения и не увеличивает стоимость запроса. Обработка занимала менее минуты на блок модели класса 7B.

Метод прежде всего меняет планы команд, которые целятся в трёхбитные веса или используют крупные группы ради меньшего числа масштабов. Его можно поставить после уже выбранного квантователя и сравнить готовую модель с базовой на собственных запросах. Теоретическая гарантия относится к ошибке отдельного слоя на калибровочных входах, поэтому итоговое качество всей модели всё равно нужно проверять на продуктовых данных.

Источники

Пауза в чтении

Похоже на вашу задачу?

Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.

Rit.work

Студия разработки

Собираем мобильные приложения и помогаем командам получать от AI реальную пользу. Основатель и команда, работаем удалённо — с клиентами в России и за рубежом.

← Ко всем материалам
Понравилось? Обсудим вашу задачу