Квантование модели (Model Quantization)

Что такое Квантование модели (Model Quantization)?

Квантование модели — это процесс уменьшения разрядности чисел (например, переход от 32‑битных чисел с плавающей запятой к 8‑битным целым), используемых для представления весов и активаций в нейронной сети, с целью сокращения объёма памяти, занимаемого моделью, и ускорения её работы при сохранении приемлемого уровня точности.

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

Подробности о термине:

  • Цель квантования: снизить требования к вычислительным ресурсам (памяти, процессору) без существенной потери качества работы модели. Это особенно важно для развёртывания нейросетей на мобильных устройствах, встраиваемых системах и других платформах с ограниченными ресурсами.
  • Как работает: в процессе квантования диапазоны значений весов и активаций «сжимаются» до меньшего количества бит. Например, вместо точного значения 3,14159 может использоваться приближённое целое число 3. Для минимизации потерь точности применяются специальные алгоритмы калибровки и оптимизации.
  • Плюсы:
    • уменьшение размера модели (иногда в 4 раза и более);
    • ускорение вычислений (за счёт более простых операций с целочисленными данными);
    • снижение энергопотребления.
  • Минусы:
    • потенциальное снижение точности модели;
    • необходимость дополнительной настройки и тестирования после квантования.

История и факты:

  • интерес к квантованию возрос в середине 2010‑х годов, когда стало очевидно, что большие нейронные сети сложно развёртывать на устройствах с ограниченными ресурсами;
  • ключевые исследования в этой области проводились командами Google, Facebook (Meta) и других технологических гигантов;
  • в 2017–2018 годах появились первые широко используемые инструменты для квантования (например, в TensorFlow и PyTorch).

Различия с похожими терминами:

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

Примеры:

  • квантование большой языковой модели (LLM) для запуска на смартфоне;
  • квантование модели компьютерного зрения для работы на встраиваемом устройстве (например, в системе видеонаблюдения);
  • квантование модели распознавания речи для использования в умных колонках.

Примеры использования:

  • оптимизация мобильных приложений с функциями ИИ (переводчики, фоторедакторы, голосовые помощники);
  • развёртывание нейросетей на IoT‑устройствах (датчики, умные камеры, носимая электроника);
  • создание энергоэффективных систем ИИ для автономных транспортных средств и роботов.

Авторизация