Что такое квантизация в ИИ?

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

Квантизация в ИИ — это метод сжатия моделей, который снижает числовую точность весов и активаций нейросети. Вместо хранения каждого параметра в виде 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, встраивают эти методы в продакшн-стеки, позволяя командам обменивать небольшую потерю точности на существенный прирост скорости, снижение потребления памяти и стоимости.

Вам также может понравиться

Похожие статьи