Метод квантования модели (Model Quantization)
Метод квантования модели — это техника оптимизации нейронных сетей, направленная на уменьшение разрядности числовых представлений параметров модели (весов, активаций) с целью снижения требований к вычислительным ресурсам и памяти при сохранении приемлемой точности работы модели.
Суть квантования можно проиллюстрировать простой аналогией из повседневной жизни.
Представьте, что вы храните фотографии на смартфоне. Исходные снимки в высоком разрешении занимают много места. Чтобы освободить пространство, вы можете сжать их — например, уменьшить разрешение или применить сжатие с потерями. Фотографии станут чуть менее детализированными, но всё ещё пригодными для просмотра, а место на устройстве освободится.
Аналогично квантование «сжимает» нейронную сеть: снижает точность представления чисел (например, переходит от 32‑битных чисел с плавающей запятой к 8‑битным целым), благодаря чему модель занимает меньше памяти и работает быстрее, хотя и с небольшим риском потери точности.
История и актуальность квантования
Исторически квантование стало особенно актуальным с развитием мобильных и встраиваемых систем, где ресурсы (память, вычислительная мощность, энергопотребление) строго ограничены. Первые серьёзные исследования и практические применения квантования в контексте глубокого обучения начали появляться в середине 2010‑х годов. Компании вроде Google активно продвигали эту технологию: например, фреймворк TensorFlow с определённого момента включил инструменты для квантования моделей, что позволило развёртывать нейросети на устройствах с ограниченными ресурсами — смартфонах, IoT‑устройствах и т. п.
Отличие квантования от других методов оптимизации
Важно отличать квантование от других методов сжатия и оптимизации моделей:
- Прореживание (pruning) — удаляет несущественные веса (обнуляет их), тогда как квантование сохраняет все веса, но уменьшает их точность.
- Дистилляция знаний (knowledge distillation) — передаёт знания от большой «учительской» модели к маленькой «ученической», а квантование работает с одной и той же моделью, меняя формат представления её параметров.
- Низкоранговая аппроксимация (low‑rank approximation) — заменяет весовые матрицы на произведения матриц меньшего ранга, а квантование оставляет структуру модели неизменной, меняя лишь разрядность чисел.
Примеры использования метода квантования
- Квантование моделей компьютерного зрения (например, MobileNet, EfficientNet) для развёртывания на мобильных устройствах.
- Оптимизация речевых моделей (например, моделей для распознавания речи) для работы на встраиваемых системах.
- Использование инструментов квантования в популярных фреймворках:
- TensorFlow Lite (поддержка квантования до 8 бит);
- PyTorch (модуль torch.quantization);
- ONNX (поддержка квантованных моделей).
Популярные схемы квантования
- INT8 — переход от 32‑битных float к 8‑битным целым числам;
- FP16 — использование 16‑битных чисел с плавающей запятой (полуточность);
- Binary/Ternary networks — экстремальное квантование до 1–2 бит (реже применяется из‑за значительной потери точности).
