📖

Что такое Квантование?

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

Квантизация в ИИ — это метод сжатия моделей, который снижает числовую точность весов и активаций нейросети. Вместо хранения каждого параметра в виде 32-битного числа с плавающей запятой квантованные модели используют 8-битный, 4-битный или даже более низкие форматы. Поскольку объём памяти и вычислений масштабируется вместе с числом бит, одно это изменение позволяет уменьшить модель в 2–8 раз и ускорить инференс, делая практичным запуск больших моделей на телефонах, ноутбуках, в браузерах и на встраиваемых устройствах.

Как работает квантизация

Каждый вес изначально является точным вещественным числом, но такая высокая точность редко бывает нужна. Квантизация отображает исходный диапазон значений на меньший набор представимых уровней. В случае посттренировочной квантизации (PTQ) полностью обученная модель преобразуется однократно, как правило путём масштабирования весов с плавающей запятой так, чтобы они уместились в более узкий целочисленный диапазон. Простое линейное отображение вида quantized = round(weight / scale) + zero_point выполняет основную работу, а те же scale и zero_point используются для обратного деквантования выходов в формат с плавающей запятой во время инференса.

Например, 8-битное целое число может представлять лишь 256 различных значений, поэтому слой, веса которого изначально находятся в диапазоне [-1.0, 1.0] во float32, необходимо разбить на 256 равноотстоящих шагов. Чем точнее эти шаги подогнаны под реальное распределение весов, тем меньше теряется точность. Для лучших результатов квантизация с учётом обучения (QAT) имитирует ошибки округления в процессе дообучения, позволяя модели адаптироваться к шуму и зачастую восстановить почти всю исходную точность.

Почему это важно

Квантизация позволяет модели с несколькими миллиардами параметров уместиться в несколько гигабайт оперативной памяти и отвечать менее чем за секунду на CPU ноутбука. Она снижает энергопотребление, сокращает расходы на серверы и открывает on-device ИИ для сценариев, чувствительных к конфиденциальности или работающих офлайн. Квантизация также взаимодействует с аппаратным обеспечением: современные GPU, NPU и CPU оснащаются выделенными матричными блоками INT8 и INT4, поэтому квантованная модель может работать в несколько раз быстрее, чем та же модель во float32.

Основные виды

  • Посттренировочная квантизация (PTQ): Преобразует уже обученную модель. Самый дешёвый вариант, небольшое падение точности.
  • Квантизация с учётом обучения (QAT): Имитирует квантизацию во время обучения, чтобы веса адаптировались. Более высокая точность, но требует дополнительных вычислений.
  • Динамическая квантизация: Хранит веса в низкой точности, а активации вычисляет на лету. Полезна для NLP-моделей с переменной длиной последовательности.
  • Квантизация только весов: Хранит веса в 4-бит или ниже, деквантуя их на лету. Распространена при обслуживании больших языковых моделей.
  • GPTQ, AWQ, GGUF: Популярные алгоритмы и форматы файлов для 4-битной квантизации LLM, использующие различные схемы для сохранения точности.

Квантизация стала стандартным этапом конвейера развёртывания ИИ. Такие инструменты, как torch.quantization в PyTorch, NVIDIA TensorRT и ONNX Runtime, встраивают эти методы в продакшн-стеки, позволяя командам обменивать небольшую потерю точности на существенный прирост скорости, снижение потребления памяти и стоимости.

Часто задаваемые вопросы

Does quantization reduce AI accuracy?
It can, but usually only slightly. Aggressive quantization to 4-bit can cause noticeable drops on harder tasks, while 8-bit quantization typically preserves accuracy within about 1% of the original model. Quantization-aware training helps recover most of any lost accuracy.
What is the difference between quantization and pruning?
Quantization reduces the precision of each individual number, while pruning removes entire weights or neurons that contribute little. They are complementary compression techniques, and combining them can yield even smaller, faster models.
Why is 4-bit quantization popular for LLMs?
Large language models have billions of parameters, so halving the bit width roughly halves memory use and often lets a model that needs an 80GB GPU run on a single 24GB consumer GPU. Methods like GPTQ, AWQ, and GGUF tune the quantization to preserve quality at 4 bits.
Can quantization be undone?
No. Quantization is a lossy mapping, so original full-precision weights cannot be perfectly recovered. However, the dequantized values used at inference time are close enough that downstream outputs are usually indistinguishable from the original model.