Qualcomm представила AutoQuant: автоматическое сжатие моделей с сохранением точности

The TWIML AI Podcast 1,9 тыс. 42 мин 5 мин 22.08.2022
Главное

В эпоху стремительного развития искусственного интеллекта вычисления постепенно мигрируют из облачных дата-центров на конечные устройства — смартфоны, автомобили и дроны. В свежем выпуске подкаста The TWIML AI Podcast его ведущий Сэм Черрингтон обсудил с Абхи Кхобаре, директором по инженерии программного обеспечения в Qualcomm, возможности открытого инструментария AIMET. В центре внимания оказалась технология автоматического квантования AutoQuant, позволяющая радикально снизить требования моделей к железу без критической потери точности.

📱 Вызовы граничных вычислений и суть квантования

<a class="ts" data-seconds="133" href="#t=133" title="Смотреть с 2:13" aria-label="Смотреть с 2:13"><svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg></a>

Как отмечает Абхи Кхобаре, последние десять лет ИИ развивался преимущественно в облаке, однако сейчас наступает эра синергии облачных и граничных (edge) вычислений. Запуск нейросетей непосредственно на пользовательских устройствах сталкивается с жесткими аппаратными ограничениями. Модели по своей природе крайне ресурсоемки, а конечные гаджеты требуют работы в реальном времени, минимального энергопотребления и высокой термической эффективности при тонком форм-факторе.

Квантование решает эту дилемму. В процессе обучения нейросети используют высокую точность — 32-битные числа с плавающей запятой (FP32). Однако Кхобаре утверждает, что на этапе инференса (вывода) такая избыточность не нужна: перевод вычислений в 8-битные целые числа (INT8) позволяет сохранить приемлемую точность.

Переход на INT8 дает серьезные аппаратные преимущества:

🔍 Тестовый запуск: модель HRNet и датасет Cityscapes

<a class="ts" data-seconds="396" href="#t=396" title="Смотреть с 6:36" aria-label="Смотреть с 6:36"><svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg></a>

В качестве демонстрации возможностей AIMET Абхи Кхобаре представил процесс квантования предобученной модели семантической сегментации на базе архитектуры HRNet (High Resolution Network). Эта нейросеть используется в качестве бэкбона для таких задач, как попиксельное распознавание сцен и оценка поз.

Для тестирования разработчики взяли популярный датасет Cityscapes, содержащий фотографии дорожных ситуаций из городов Германии, снятые из автомобилей. Задача модели — с высокой точностью сегментировать объекты на 30 различных классов (люди, машины, знаки, деревья, дороги), что критически важно для усовершенствованных систем помощи водителю (ADAS) и беспилотников.

В качестве базовой линии (baseline) использовалась исходная точность модели в формате FP32. Измерение по стандартной метрике mIoU (Mean Intersection over Union) показало результат в 81.05. На этом этапе модель безошибочно строила цветовую карту сегментации, корректно выделяя пешеходов, велосипедистов и дорожные указатели. AIMET позволяет симулировать поведение квантованной модели на ПК, выдавая те же метрики, что и реальное целевое устройство (будь то смартфон или AR/VR-гарнитура).

🛑 Проблемы наивного квантования и инструмент Quant Analyzer

<a class="ts" data-seconds="1234" href="#t=1234" title="Смотреть с 20:34" aria-label="Смотреть с 20:34"><svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg></a>

Если применить к модели HRNet простейшее («наивное») квантование по абсолютному минимуму-максимуму, точность mIoU падает с 81.05 до 77.9. Снижение чуть более чем на 3% может показаться незначительным, но Кхобаре наглядно продемонстрировал, к чему это приводит на практике.

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

Для детальной диагностики таких потерь в AIMET встроен инструмент Quant Analyzer. Он выполняет следующие функции:

Анализ графиков распределения часто выявляет редкие изолированные выбросы (outliers). Если диапазон калибровки растягивается под них, основная масса весов теряет точность. Кхобаре объясняет, что за счет отсечения (clamping) таких выбросов можно существенно улучшить параметры квантования. При этом алгоритмы AIMET строго оберегают «абсолютные нули», поскольку они критически важны для разреженных сетей.

⚡ Автоматизация с AutoQuant: шаг за шагом к высокой точности

<a class="ts" data-seconds="1898" href="#t=1898" title="Смотреть с 31:38" aria-label="Смотреть с 31:38"><svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg></a>

До недавнего времени процесс подбора методов квантования требовал от инженеров огромного количества ручных итераций. Разработчику приходилось самостоятельно решать, какие техники применять, в каком порядке их комбинировать и как настраивать гиперпараметры. Альтернативный подход — обучение с учетом квантования (QAT) — дает высокую точность, но требует полных тренировочных пайплайнов, датасетов и может занимать несколько дней.

Новая функция AutoQuant автоматизирует этот процесс, создавая надстройку над методами посттренировочного квантования (PTQ). Для модели HRNet работа AutoQuant заняла около 4 часов. По словам Кхобаре, запустить автоматический подбор на ночь — колоссальное преимущество по сравнению со днями ручной работы. Инструмент запрашивает лишь небольшой набор репрезентативных данных и желаемый порог потери точности (в данном демо целевой спад установили в 0%).

В ходе работы AutoQuant последовательно выполняет цепочку оптимизаций:

  1. Model Preparation: Шаг подготовки, на котором AIMET автоматически анализирует граф PyTorch/TensorFlow и внедряет специальные симуляционные слои для весов и активаций. Это позволяет учесть даже скрытый шум от базовых математических операций вроде сложения элементов или интерполяции.
  2. Batch Norm Folding: Сворачивание слоев пакетной нормализации.
  3. Cross-Layer Equalization (CLE): Выравнивание весов между слоями для снижения общего шума квантования.
  4. Adaptive Rounding (AdaRound): Продвинутое адаптивное округление весов. Вместо стандартного округления к ближайшему числу, алгоритм обучается оптимальному положению на сетке для каждого тензора.

Запуск всей процедуры инкапсулирован в одну строчку кода: AutoQuant.apply(). Результат автоматической оптимизации оказался впечатляющим: итоговая точность модели mIoU составила ~80.75, отстав от FP32-оригинала всего на 0.3%. На финальных кадрах сегментации ранее утерянные дорожные знаки, пешеходы и велосипедисты снова начали корректно распознаваться алгоритмом.

🌐 Экосистема AIMET: Mixed Precision и Model Zoo

<a class="ts" data-seconds="2307" href="#t=2307" title="Смотреть с 38:27" aria-label="Смотреть с 38:27"><svg viewBox="0 0 24 24" width="14" height="14" fill="currentColor" aria-hidden="true"><path d="M8 5v14l11-7z"/></svg></a>

По оценкам команды Qualcomm, около 80-90% существующих нейросетей могут быть успешно квантованы с помощью методов PTQ без глубокого переобучения. Если же целевая точность все еще не достигнута, AIMET предлагает использовать смешанную точность (Mixed Precision). На основе данных чувствительности из Quant Analyzer разработчик может точечно перевести наиболее капризные слои в 16-битный формат (INT16), оставив остальную сеть в INT8.

Чтобы ускорить работу комьюнити, Qualcomm развивает параллельный проект — AIMET Model Zoo. На текущий момент там доступно 18 предоптимизированных популярных моделей (бэкбонов) для TensorFlow и PyTorch, которые можно скачать и сразу внедрять в продакшен. Команда планирует расширять возможности AutoQuant, добавляя новые методы калибровки, улучшая визуальные отчеты и активно приглашает опенсорс-сообщество к совместной разработке.

💬 Цитаты

«При инференсе оказывается, что столь высокая точность не нужна — можно запускать вычисления в 8-битных целых числах и получать отличную точность.»

Абхи Кхобаре 04:51

«В случае с беспилотными автомобилями такие пропуски объектов могут буквально стать фатальными.»

Абхи Кхобаре 26:24
👥 Спикеры
🔗 Упомянутые сайты и проекты
📖 Термины
Квантование моделей (Quantization)
Процесс перевода весов и активаций нейросети из высокоточных форматов (например, FP32) в форматы с более низкой разрядностью (например, INT8) для ускорения работы.
mIoU (Mean Intersection over Union)
Стандартная метрика для оценки качества семантической сегментации изображений.
ADAS (Advanced Driver Assistance Systems)
Усовершенствованные системы помощи водителю, используемые в беспилотных и современных автомобилях.
Post-Training Quantization (PTQ)
Методы квантования, применяемые к уже обученной модели без необходимости проведения полноценного повторного обучения.
Quantization-Aware Training (QAT)
Обучение нейросети с учетом последующего квантования, требующее полных датасетов и значительных вычислительных ресурсов.
📊 Цифры
⚖️ Другая сторона
Искусственный интеллект AIMET AutoQuant квантование моделей Qualcomm AI Research