Знаковая симметричная квантизация: точность асимметричной схемы по цене симметричной
Квантование весов языковых моделей (LLM) до нескольких бит, стандартный приём, чтобы уменьшить размер модели и ускорить её работу на CPU и другом ограниченном железе. Веса переводятся в целые числа фиксированной разрядности по одной из двух схем: симметричной (точка отсчёта строго в нуле) или асимметричной (точка отсчёта сдвинута, чтобы точнее покрыть реальный диапазон данных).
У знакового целого числа диапазон значений несимметричен: например, для 4 бит доступны значения от -8 до 7, на одно отрицательное значение больше, чем положительных. Стандартный симметричный квантователь по определению фиксирует масштаб строго положительным и отдаёт эту «лишнюю» ячейку отрицательному хвосту распределения. Из-за этого крупные по модулю положительные веса (положительные выбросы) чаще обрезаются (клиппинг), а на низкой разрядности это становится заметным источником ошибки квантования.
Асимметричное квантование решает проблему клиппинга за счёт ненулевой точки отсчёта, но требует дополнительных вычислений при инференсе и потому медленнее. Авторы приводят пример: на CPU AMD EPYC "Turin" в движке llama.cpp 4-битный симметричный формат экономит до 9% памяти и даёт до 2,45 раза более высокую пропускную способность по сравнению с асимметричным аналогом.
Авторы предлагают третий вариант, «знаковую симметричную квантизацию». Сетка квантования "signed absmax" сама решает по лёгкому правилу выбора знака, какому хвосту распределения, положительному или отрицательному, отдать лишнее представимое значение, ориентируясь на то, где сосредоточены доминирующие выбросы. При этом точка отсчёта остаётся строго нулевой, поэтому схема сохраняет скорость симметричного квантования, но снижает ошибку клиппинга.
Теоретическая часть работы даёт два результата. Во-первых, доказано, что сетка signed absmax при определённом условии минимизирует ошибку квантования по норме L2 (условно оптимальна по этой границе ошибки); это условие выполняется для 88, 99% групп весов в предобученных LLM при низкой разрядности. Во-вторых, показано, что смена знака масштаба у стандартного симметричного квантователя аналитически эквивалентна сдвигу точки отсчёта на единицу в том же знаковом целочисленном алфавите.
Метод проверен эмпирически на моделях семейств Qwen3, Qwen3.5 и Llama3: по сравнению со стандартным беззнаковым симметричным квантованием знаковая симметричная схема улучшает перплексию (метрику качества предсказания текста моделью) и точность на few-shot задачах (задачах с несколькими примерами-подсказками), и всё это без дополнительных затрат на инференс.
Ключевые факты
- Симметричное квантование весов LLM теряет «лишнее» представимое значение знакового целого числа на отрицательном хвосте, что усиливает обрезание (клиппинг) положительных выбросов при низкой разрядности (few-bit).
- Асимметричное квантование решает проблему клиппинга ценой скорости: на CPU AMD EPYC "Turin" в llama.cpp 4-битный симметричный формат экономит до 9% памяти и работает до 2,45 раза быстрее асимметричного.
- Предложена «знаковая симметричная» сетка signed absmax: лёгкое правило выбора знака отдаёт лишнее значение доминирующему по выбросам хвосту, а точка отсчёта остаётся нулевой, скорость симметричного квантования сохраняется.
- Доказана условная оптимальность сетки signed absmax по ошибке квантования L2; условие выполняется для 88, 99% групп весов в предобученных LLM на низкой разрядности.
- На моделях Qwen3, Qwen3.5 и Llama3 метод улучшает перплексию и точность few-shot задач по сравнению со стандартным беззнаковым симметричным квантованием без дополнительных затрат на инференс.
Почему это важно
Квантование до 4 бит и ниже, стандартный способ ужать LLM для инференса на ограниченном железе, в том числе на CPU без GPU. Выбор между симметричной и асимметричной схемой обычно был компромиссом между точностью и скоростью. Знаковая симметричная схема впервые предлагает получить точность, приближающуюся к асимметричной, сохранив при этом скорость симметричной, то есть убирает сам компромисс, а не просто смягчает его.
Кому это важно
Разработчикам инференс-движков вроде llama.cpp, инженерам, квантующим модели для локального и edge-инференса на CPU без GPU, и исследователям, занимающимся сжатием и квантованием языковых моделей.
Как это применить
Метод не меняет архитектуру модели и не увеличивает затраты на инференс, это правило выбора знака сетки квантования, которое можно встроить в существующие пайплайны квантования (например, в llama.cpp) как замену стандартного симметричного квантователя. Авторы проверили подход на семействах моделей Qwen3, Qwen3.5 и Llama3.
Можно ли доверять
Работа, препринт на arXiv, официального рецензирования (peer review) пока не прошла. При этом заявления подкреплены и теоретическим доказательством условной оптимальности с конкретной статистикой (88, 99% групп весов), и эмпирикой на нескольких открытых семействах моделей, и предметными цифрами по памяти и пропускной способности на конкретном CPU (AMD EPYC "Turin", llama.cpp), это проверяемые числа, а не абстрактные обещания.
Риски и подводные камни
Условие оптимальности выполняется не для всех групп весов (88, 99%, не 100%), в оставшихся случаях выигрыш не гарантирован. Статья, препринт, независимой проверки и рецензирования пока не было. Результаты показаны на конкретных семействах моделей (Qwen3, Qwen3.5, Llama3) и конкретном железе; насколько эффект переносится на другие архитектуры, разрядности и аппаратные платформы, в статье не проверялось.