Толковый словарь по нейросетям и искусственному интеллекту
Квантование
Категория термина
Квантование (Quantization) — это процесс преобразования чисел с плавающей точкой, используемых в нейросетевых моделях, в более компактные числовые форматы с фиксированной точкой (например, float32 → int8). Цель квантования — уменьшить размер модели и ускорить её работу, особенно при использовании на устройствах с ограниченными вычислительными ресурсами (смартфоны, микроконтроллеры, edge-устройства).
В стандартной нейросети веса и активации хранятся как 32-битные числа с плавающей точкой (FP32). Квантование может преобразовать эти значения, например, в 8-битные целые числа (INT8), при этом сохраняя приемлемый уровень точности модели.
⚙️ Виды квантования:
- Пост-тренировочное квантование (Post-Training Quantization, PTQ)
Применяется к уже обученной модели. Не требует повторного обучения. - Квантование с дообучением (Quantization Aware Training, QAT)
Выполняется во время обучения модели, чтобы она изначально адаптировалась к квантованным значениям. Даёт лучшую точность. - Динамическое квантование (Dynamic Quantization)
Применяется только к весам модели и выполняется во время вывода (inference), не затрагивая обучение.
📊 Пример:
| Формат | Размер числа | Размер модели | Скорость |
|---|---|---|---|
| Float32 | 32 бита | 100% | Стандартная |
| Float16 | 16 бит | ~50% | Быстрее |
| INT8 | 8 бит | ~25% | Намного быстрее |
Квантование до INT8 может уменьшить размер модели в 4 раза, а производительность — увеличиться в 2–4 раза в зависимости от аппаратного обеспечения.
📌 Области применения:
- Развёртывание моделей на мобильных и встраиваемых устройствах
- Работа в браузерах и онлайн-сервисах
- Ускорение вывода (inference) на CPU и GPU
- Использование в реальном времени (например, в приложениях дополненной реальности или голосовых ассистентах)
🧪 Пример из практики:
Модель GPT или BERT может весить несколько гигабайт в формате FP32. После квантования до INT8 её размер может уменьшиться до нескольких сотен мегабайт. Например, квантованная версия LLaMA 7B может занимать ~4 ГБ, тогда как оригинал — более 13 ГБ.
⚠️ Ограничения:
- Возможна потеря точности — особенно для сложных моделей или чувствительных задач.
- Не все фреймворки и железо поддерживают квантованные модели.
- Некоторые типы операций (например, матричное перемножение) могут требовать адаптации.
📚 Поддержка в библиотеках:
- PyTorch:
torch.quantization - TensorFlow Lite: встроенные средства для PTQ и QAT
- ONNX Runtime: поддержка INT8
- Hugging Face Transformers: квантованные версии популярных моделей (через
bitsandbytes,ggml,AutoGPTQ)
✅ Заключение:
Квантование — один из ключевых методов оптимизации нейросетей, который делает возможным их использование в реальном времени, на слабых устройствах и в распределённых системах. Оно балансирует между точностью и производительностью, что делает его незаменимым инструментом в современном ИИ.