Квантование моделей
Оптимизируйте производительность ИИ с помощью квантования моделей. Уменьшите размер, увеличьте скорость и повысьте энергоэффективность для реальных развертываний.
Квантование модели — это мощный метод оптимизации модели, который уменьшает объем памяти и вычислительные затраты нейронной сети (NN), преобразуя ее веса и активации из чисел с плавающей запятой высокой точности (например, 32-битное число с плавающей запятой или FP32) в типы данных с более низкой точностью, такие как 8-битные целые числа (INT8). Этот процесс делает модели значительно меньше и быстрее, позволяя развертывать их на оборудовании с ограниченными ресурсами, таком как мобильные телефоны и встроенные системы. Основная цель состоит в том, чтобы улучшить производительность, особенно задержку вывода, с минимальным влиянием на точность прогнозирования модели.
Как работает квантование моделей
Процесс квантования включает в себя отображение непрерывного диапазона значений с плавающей запятой в обученной модели на меньший, дискретный набор целочисленных значений. Это преобразование уменьшает количество битов, необходимых для хранения каждого параметра, сокращая общий размер модели. Кроме того, вычисления с использованием целых чисел с более низкой точностью выполняются намного быстрее на многих современных ЦП и специализированных ускорителях ИИ, таких как графические процессоры и TPU, которые имеют специальные инструкции для целочисленной арифметики.
Существует два основных метода применения квантования:
- Квантование после обучения (PTQ): Это самый простой подход, при котором уже обученная модель преобразуется в формат с более низкой точностью. Это быстрый процесс, который включает в себя анализ распределения весов и активаций на небольшом калибровочном наборе данных для определения оптимального отображения из формата с плавающей запятой в целочисленный.
- Обучение с учетом квантования (Quantization-Aware Training, QAT): В этом методе модель обучается или тонко настраивается при моделировании эффектов квантования. Прямой проход процесса обучения имитирует квантованный вывод, позволяя модели адаптироваться к пониженной точности. QAT часто обеспечивает более высокую точность, чем PTQ, поскольку модель учится компенсировать потенциальную потерю информации на этапе обучения. Такие фреймворки, как PyTorch и TensorFlow, предоставляют надежные инструменты для реализации QAT.
Применение в реальном мире
Квантование имеет решающее значение для запуска сложных моделей компьютерного зрения в реальных сценариях, особенно на устройствах Edge AI.
- Анализ изображений на устройстве: Многие приложения для смартфонов используют квантованные модели для функций, работающих в реальном времени. Например, приложение, обеспечивающее обнаружение объектов в реальном времени через камеру, например, идентификацию продуктов или ориентиров, использует квантованную модель, такую как Ultralytics YOLO11, для эффективной работы на аппаратном обеспечении телефона, не разряжая аккумулятор и не требуя подключения к облаку.
- Автомобилестроение и робототехника: В автономных транспортных средствах модели для обнаружения пешеходов и удержания полосы движения должны работать с чрезвычайно низкой задержкой. Квантование этих моделей позволяет им работать на специализированном оборудовании, таком как NVIDIA Jetson или Google Coral Edge TPUs, обеспечивая принятие решений за доли секунды, что имеет решающее значение для безопасности.
Квантование в сравнении с другими методами оптимизации
Квантование модели часто используется вместе с другими методами оптимизации, но отличается своим подходом.
- Обрезание модели: Этот метод удаляет избыточные или неважные связи (веса) внутри нейронной сети, чтобы уменьшить ее размер и сложность. В то время как обрезка уменьшает размер сети, удаляя ее части, квантование делает оставшиеся части более эффективными за счет снижения их числовой точности. Эти два метода часто объединяются для достижения максимальной оптимизации.
- Дистилляция знаний: Это включает в себя обучение меньшей модели-"ученика" имитации большей, предварительно обученной модели-"учителя". Цель состоит в том, чтобы передать знания учителя более компактной архитектуре. Это отличается от квантования, которое изменяет числовое представление существующей модели, а не обучает новую.
- Смешанная точность: Этот метод использует комбинацию различных числовых точностей (например, FP16 и FP32) во время обучения модели, чтобы ускорить процесс и уменьшить использование памяти. Хотя это и связано, это в первую очередь оптимизация обучения, тогда как квантование обычно ориентировано на оптимизацию модели для вывода.
Рекомендации и поддержка
Хотя квантование весьма полезно, оно потенциально может повлиять на точность модели. Важно провести тщательную оценку с использованием соответствующих метрик производительности после квантования, чтобы убедиться, что компромисс в производительности приемлем.
Ultralytics облегчает развертывание квантованных моделей, поддерживая экспорт в форматы, подходящие для квантования. К ним относятся ONNX для широкой совместимости, OpenVINO для оптимизации на оборудовании Intel и TensorRT для высокой производительности на графических процессорах NVIDIA. Платформы, такие как Ultralytics HUB, могут помочь управлять всем жизненным циклом, от обучения до развертывания оптимизированных моделей. Интеграция с такими инструментами, как Neural Magic, также использует квантование и прунинг для достижения производительности класса GPU на процессорах.