Ерофеевский Д. В., магистрант, Санкт-Петербургский государственный университет, Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript. Россия, Санкт-Петербург.

Митько А.В., к.т.н., доцент кафедры информатики Санкт-Петербургский государственный университет, Россия, Санкт-Петербург Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.

 

УДК 004.8:519.6:681.3

Большие языковые модели (LLM) с сотнями миллиардов параметров (например, GPT-5, OPT, BLOOM, LLaMA) демонстрируют выдающиеся возможности, но требуют огромных вычислительных ресурсов и памяти для работы [3]. Из-за этого актуальна задача сжатия и оптимизации моделей. Квантование – перевод весов и активаций из 32-/16-разрядных чисел в низкоразрядные представления, что позволяет значительно уменьшить объём памяти и ускорить вывод, сохраняя приемлемую точность. Существует два основных подхода к квантованию: квантование во время обучения (QAT), когда модель дообучается с учётом низкой точности, и пост-тренировочное квантование (PTQ), когда готовая предобученная модель преобразуется без или с минимальным дообучением. PTQ привлекательно тем, что не требует дорогостоящего обучения и обычно использует небольшой калибровочный набор данных [8]. Именно PTQ стал основным выбором для сжатия сверхбольших трансформеров, поскольку он быстро применим к любым предобученным моделям [7].

Примером де-факто стандарта PTQ для LLM является алгоритм OPTQ (также называемый GPTQ). Эта итеративная процедура поэтапно «округляет» каждый элемент весового вектора, компенсируя ошибку квантования в оставшихся весах [7]. OPTQ отличается эффективностью и масштабируемостью: например, при использовании одной GPU A100 с 80 ГБ памяти GPTQ успешно квантовал модели OPT и BLOOM вплоть до 175B параметров за несколько часов [2]. Однако, вплоть до недавнего времени существовало мало теоретических оценок точности OPTQ. Недавно были получены первые неасимптотические оценки ошибки OPTQ и его стохастической версии, а также аналогичные оценки для нового алгоритма Qronos [7]. Эти теоретические результаты объясняют, как ошибки квантования зависят от данных калибровки и параметра регуляризации, и формально обосновывают практические эвристики (например, сортировку признаков по норме) [8].

Однако, точность современных LLM при низкой битности остаётся ограниченной. Поэтому активно разрабатываются новые методы PTQ, направленные на улучшение качества квантования без дообучения. В обзор включены наиболее заметные подходы: помимо GPTQ/OPTQ, это AWQ (Activation-aware Weight Quantization) [4], RPTQ (Reorder-based PTQ) [6], Qronos, а также методы преобразования («трансформы») весов и активаций, такие как SmoothQuant [4]. 

Пост-тренировочное квантование (PTQ) строится обычно на двух этапах: 

1. трансформация весов/активаций для облегчения квантования;

2. округление с минимизацией ошибки. 

На этапе преобразования применяются линейные операции (масштабирование каналов, повороты матриц, Hadamard-трансформация и т.п.), позволяющие выровнять диапазоны или инвариантно изменить весовую матрицу, чтобы уменьшить ошибка квантования [6]. Примером является метод SmoothQuant [4], который балансирует масштабы весов и активаций по каналам, «сглаживая» выбросы в активациях. На втором этапе производится собственно квантование: каждому числу весов (или активаций) ставится в соответствие ближайшее значение из конечного «алфавита» (сетке) L = {…, −2S, −S, 0, S, 2S, …} с помощью функции округления. Более сложные PTQ-алгоритмы (например, OPTQ) не просто округляют по ближайшему, но и используют информацию о калибровочных данных (тензорах активаций) для компенсации ошибок.

В основе этого метода лежит пошаговая (жадная) минимизация квадратичной ошибки выхода при квантовании весовых векторов слоя. Алгоритм берет один вес в векторе, округляет его в ближайшее значение, затем корректирует остальные веса так, чтобы минимизировать изменение на выходе (с помощью псевдообратного вычисления). Далее переходит к следующему весу и повторяет процедуру. Такой метод хорош тем, что использует вторую информацию о влиянии весов на выход, но при этом хорошо масштабируется до сотен миллиардов параметров [2]. Для OPTQ были получены первые понятные оценки ошибки – выяснено, как величина ошибки квантования зависит от свойств матрицы калибровки и параметра регуляризации путем применения сортировки координаты по убыванию нормы перед квантованием [7]. GPTQ (вариант OPTQ для генеративных моделей) была продемонстрирована на моделях семейств OPT и BLOOM: при 4-битном квантовании GPTQ давал близкие к исходным значения перплексности, а сама процедура квантования занимала минуты для моделей 1–7 млрд параметров и несколько часов для моделей ~175B [2]. Кроме того, оптимизированные ядра для матрично-векторного умножения с динамической деквантованием позволили ускорять генерацию (в GPTQ-примере 175B модель на одной GPU выполнялась в 3–4 раза быстрее, чем FP16 на 5 GPU) [7].

AWQ (Activation-aware Weight Quantization). Особенность AWQ в селективном подходе к квантованию весов. Не все веса модели одинаково важны: небольшой процент важных весовых каналов вносит непропорционально большой вклад в выход модели. Эти каналы определяются не по величине весов, а по статистике активаций: каналы с большими значениями активаций обрабатывают более значимые признаки. AWQ оставляет эти 0.1–1% самых важных весов в исходной точности (FP16), а остальные уменьшает битность. Параллельно используется линейное преобразование: для «сигнатурных» каналов подбирается масштабирование, которое снижает относительную ошибку квантования этих каналов (умножая их веса на оптимальный коэффициент) [3]. Такой подход не требует обучения или обратного распространения ошибок – он полностью offline и эффективен на разных доменах. Эксперименты показали, что AWQ превосходит существующие методы по точности на задачах языкового моделирования для разных семейств моделей (LLaMA, OPT, Vicuna) и даже мультимодальных языково-визуальных моделях, разработанная для работы с текстом и изображениями одновременно (OpenFlamingo) [4]. Кроме того, благодаря уменьшению размера весов AWQ-деквантованные модели работают значительно быстрее: ускорении около 3.3 по сравнению с FP16 при инференсе на GPU, что позволило, например, запустить LLaMA-2-70B на одном мобильном GPU NVIDIA Orin (64 ГБ) [4].

RPTQ (Reorder-based PTQ). Этот метод предназначен, прежде всего, для квантования активаций. Главная проблема при квантовании активаций LLM – это сильно различающиеся диапазоны значений разных каналов [4]. Традиционное равномерное квантование на весь слой приводит к большим ошибкам из-за каналов с узким или широким динамическим диапазоном. RPTQ решает эту проблему с помощью перестановки каналов: сначала каналы активаций группируются по похожему диапазону («кластеризуются» по максимальным и минимальным значениям), затем в каждом кластере используется собственная шкала квантования [4]. На практике перестановка каналов интегрируется в операцию нормализации слоя и перестройку весов линейных слоев, чтобы не делать фактические перестановки во время вывода. Эта техника позволила впервые в LLM использовать 3-битное квантование активаций при умеренной потере качества [4]. Например, для модели OPT-175B квантование весов и активаций (W3A3) по RPTQ снижает потребление памяти до 20–27% от исходного, причем сохраняется низкое увеличение перплексность: примерно +0.5 при 73% экономии памяти или +1.5 при 80% экономии [6]. Таким образом, RPTQ расширяет возможности PTQ, делая актуальным менее точное представление активаций.

Qronos ¬– один из самых современных методов PTQ. Qronos объединяет идеи из OPTQ и GPFQ (подхода, корректирующего ошибки и в весах, и в активациях), но использует новую «интерпретируемую» оптимизационную формулировку. Алгоритм поэтапно округляет веса и одновременно распространяет накопившуюся ошибку на следующие веса, а также явно корректирует ошибки квантования прошлых слоёв и активаций [7]. Утверждается, что Qronos «поглощает» и превосходит возможности OPTQ и GPFQ: он корректирует ошибки как в весах, так и в активациях предыдущих слоёв. При этом обнаруживается эквивалентная эффективная имплементацию на основе разложения Холецкого, что позволяет масштабировать алгоритм. На практике Qronos показал выдающиеся результаты на линейках Llama3: при квантовании весов до 2 бит он дал «колоссальное улучшение перплексии» по сравнению с RTN (round-to-nearest), OPTQ и GPFQ [7]. Это означает, что Qronos обеспечивает наилучшую сохранность качества при экстремальном сжатии. 

Стоит упомянуть также методы трансформации и «ротации» весов/активаций. Например, SmoothQuant [4] основан на переносе масштаба из активаций в веса: фактически, активирует «сглаживание» выбросов в активациях с помощью эквивалентного преобразования весов. Это позволяет использовать равномерное квантование 8 бит для весов и активаций во всех слоях LLM. SmoothQuant продемонстрировал ускорение до 1.56× и двукратное сокращение памяти при незначительном ухудшении качества [4] и другие методы используют динамическое квантование по токенам или смешанные точности, но детально здесь не рассматриваются. Следует также упомянуть перезапуск темы группового квантования (group-wise quantization) и переподборки смещения, активно применяемые в LLM.int8().

Различные методы PTQ могут критично отличаться по сложности, требованию в ресурсах и качеству модели после квантования. При квантовании весов в 4 бита многие PTQ-алгоритмы (включая GPTQ) дают близкие результаты к точному RTN. При более агрессивном сжатии (3, 2 бита) GPTQ существенно превосходит RTN по качеству (припомнить, что RTN на 3 битах часто резко ухудшает перплексию). Например, на выборке WikiText2 GPTQ с 4 битами на семейство OPT сохранил перплексию почти как при FP16, а при 3 битах он всё ещё значительно лучше RTN [2]. Кроме того, GPTQ обеспечивает хорошее масштабирование: полный проход по модели GPT-175B на одной A100 требует порядка нескольких часов, тогда как RTN буквально просто округляет все веса и может быть быстро выполнен, но даёт худшее качество. По скорости генерации GPTQ-квантизованный OPT-175B в 3 бита работал ~3.3× быстрее, чем FP16 на 5 GPU [7]. В сравнении с GPTQ и RTN, AWQ обычно показывает лучшее качество при низкой битности весов, так как «бережёт» самые критичные компоненты модели. На задачах языкового моделирования AWQ «превосходит существующие методы» для семейств LLaMA и OPT [4]. Перплексия LLaMA-2-13B после AWQ-квантования 4 битами, по их данным, почти не отличается от FP16. При этом AWQ не использует реконструкцию по ошибке и потому обобщается лучше на новые домены (например, instruction-tuned модели Vicuna) [3]. В числовых экспериментах демонстрируется, что AWQ позволяет выгодно комбинировать малую битность веса и высокую точность: например, оставляя в 16-битах лишь 0.1–1% весов (по 3-битному представлению), можно резко снизить потери качества [4]. RPTQ (квантование активаций) – уникальный подход, так как большинство предыдущих PTQ-методов фокусируются на весах. RPTQ впервые на практике показал, что 3-битное квантование активаций становится возможным без «провала» качества LLM. Квантование OPT-175B (веса и активации) в 3 бита снижает потребление памяти до ≈20–27% от исходного при допуске увеличения перплексии на 0.5–1.5 пунктов [4]. В то время как в моделях LLM всегда присутствуют опасные выбросы, RPTQ устраняет их влияние перестройкой диапазонов по каналам. Это означает, что можно существенно уменьшить память, затрачиваемую на кэш KV и активации, при минимальной потере качества. В экспериментах Qronos стабильно даёт наилучший результат среди известных методов округления при квантовании весов. Например, для моделей Llama3 при 2-битном квантовании весов Qronos показал «масштабные улучшения» перплексии по сравнению с OPTQ (GPTQ) и остальными [7]. Это означает, что Qronos лучше сохраняет производительность модели при очень сильном сжатии. С учётом того, что Qronos ещё можно комбинировать с трансформациями типа Hadamard или масштабированием активаций, его превосходство остаётся устойчивым. Хотя SmoothQuant ориентирован на 8-битное квантование, его результаты интересны для сравнения. Он позволяет без видимой потери точности перевести модель на INT8 веса+активации [4]. Кроме того, SmoothQuant продемонстрировал ускорение до 1.56 и снижение памяти в 2 раза [4]. Таким образом, SmoothQuant превосходит многие другие 8-битные решения, но при необходимости ещё более агрессивного сжатия (4–2 бита) начинают доминировать специализированные PTQ-методы (GPTQ, AWQ, Qronos).

Методы PTQ широко тестируются на самых разных архитектурах LLM. GPTQ/OPTQ применялся к семействам OPT и BLOOM (и производным) с параметрами от сотен миллионов до 175B [2]. Например, GPTQ на 175B моделях OPT/BLOOM показал незначительный рост перплексии при 3–4-битном квантовании. Используя ядра для матрично-векторного умножения было запущено OPT-175B (3 бита) на одной A100, значительно ускорив скорость генерации [7]. AWQ демонстрировался на моделях LLaMA (Meta), OPT и их производных. Так, LLaMA-1 и LLaMA-2 (до 70B) были квантованы AWQ до 3–4 бит с сохранением близкого к исходному качества [6]. Благодаря селективному подходу AWQ демонстрирует высокую способность к обобщению на больших языковых моделях, таких как Vicuna, дообученных на специализированных наборах данных с инструкциями для улучшения следования человеческим указаниям, а также на мультимодальных сетях, например OpenFlamingo [4]. С точки зрения производительности, AWQ-квантованные модели 4–13B стали исполняться в 3 раза быстрее при интерактивных задачах генерации текста [4]. RPTQ ориентирован на сложные модели с огромными активациями, как OPT-175B. Уже для модели 175B удаётся квантовать активации в 3 бита, сохраняя корректность вывода (практически без роста перплексности) [4]. Хотя конкретных результатов на LLaMA или GPT не приводилось, очевидно, что метод применим ко всем архитектурам трансформеров, имеющим большие слои внимания. Qronos тестировался на семействе Llama3 (8–30B и более). В одном из примеров показано сравнение нескольких моделей Llama3: Qronos на 2-битах дал гораздо лучшую перплексию, чем RTN или OPTQ (с той же группировкой и трансформациями) [7]. Это позволяет ожидать, что Qronos одинаково работает и на LLaMA, GPT и других модификациях трансформеров, когда нужно очень агрессивное сжатие.

Таким образом, эти методы PTQ уже опробованы на известных LLM: LLaMA, OPT/GPT, BLOOM, Vicuna и др. Все они направлены на «выполнение» модели на аппаратуре с ограниченной памятью (GPU/CPU/RAM) без дообучения. Результаты показывают, что можно запускать модели десятков миллиардов параметров с глубокой квантованностью (W3/4, A3) на одной GPU, сохраняя способность генерировать качественный текст.

Пост-тренировочное квантование (PTQ) больших языковых моделей стало практическим инструментом для снижения требований к памяти и ускорения вывода без значительных потерь качества. В обзоре рассмотрены основные современные методы PTQ. Алгоритмы типа OPTQ/GPTQ, основанные на итеративной компенсации ошибки, показали, что до 3–4 бит квантования весов можно применять «на лету» к самым крупным моделям [8]. Однако обнаружены и ограничения: низкая битность может требовать новых приёмов. Методы AWQ, RPTQ, Qronos и SmoothQuant предлагают различные подходы – от селективного сохранения весов до перестановки каналов активаций и строгой оптимизации алгоритма округления. Экспериментальные данные свидетельствуют: AWQ и Qronos улучшают качество при жёстком сжатии весов, RPTQ впервые позволяет надёжно квантовать активации в 3 бита, а SmoothQuant обеспечивает эффективное 8-битное сжатие для всех слоёв [4].

Таким образом, современное PTQ для LLM выходит далеко за рамки простого «округления» весов. Новые методы комбинируют продвинутые математические приёмы, используют статистику активаций и обеспечивают теоретические гарантии качества [8]. Практически это означает, что большой модельный бэкенд (LLaMA, GPT и др.) можно «упаковать» в экономичную INT-квантованную форму, сохранив при этом способности генерации текста. Результаты приведённых исследований открывают путь к повсеместному использованию LLM на устройствах и серверах с ограниченными ресурсами, а также к дальнейшему развитию гибридных методов PTQ и QAT.

 

Библиографический список:

1. Dettmers T., Lewis M., Belkada Y., Zettlemoyer L. LLM.int8(): 8-bit neural networks without gradients // Advances in Neural Information Processing Systems. 2022.

2. Frantar T., Alistarh D. GPTQ: Accurate post-training quantization for generative pre-trained transformers // International Conference on Learning Representations. 2023.

3. Lin J., Chen W.-M., Cai J., Gan C., Han S. AWQ: Activation-aware weight quantization for LLM compression and acceleration // Proceedings of Machine Learning and Systems. 2024.

4. Xiao G., Yang J., Wu H., Guo J., Geng S., Lou Q., et al. SmoothQuant: Accurate and efficient post-training quantization for large language models // International Conference on Machine Learning. 2023.

5. Yao Z., Wang S., Xu J., Tian Y., Wang J., Chen D., et al. ZeroQuant: Efficient and affordable post-training quantization for large-scale transformers // Advances in Neural Information Processing Systems. 2022.

6. Yuan Z., Lin S., Li S., Sheng L., Hu B.-G. RPTQ: Reorder-based post-training quantization for large language models // arXiv preprint arXiv:2304.01089. 2023.

7. Zhang H., Zhang S., Colbert I., Saab R. Provable post-training quantization: Theoretical analysis of OPTQ and Qronos // arXiv preprint arXiv:2508.04853. 2025.

8. Zhang S., Kim J., Xu P., Saab R. Qronos: Correcting the past by shaping the future… in post-training quantization // arXiv preprint arXiv:2505.11695. 2025.