Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Квантование с учетом обучения (QAT)

Оптимизируйте модели ИИ для периферийных устройств с помощью Quantization-Aware Training (QAT), обеспечивая высокую точность и эффективность в средах с ограниченными ресурсами.

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

Как работает QAT

Основной механизм обучения с учетом квантования заключается в том, что в процессе обучения в архитектуру модели вставляются "фальшивые" узлы квантования. архитектуру модели во время обучения. Эти узлы моделируют ошибки округления и зажима, возникающие при преобразовании FP32 в INT8. Во время прямого прохода модель работает так, как если бы она была квантована, а во время обратного обратный проход - с помощью обратного распространения - обновляетвеса с высокой точностью, чтобы компенсировать смоделированные ошибки.

Этот процесс, по сути, является тонкой настройкой модели, чтобы она была устойчива к шуму, вносимому снижением точности. Основные фреймворки, такие как PyTorch и TensorFlow предоставляют специализированные API для облегчения этого рабочего процесса. Благодаря ранней интеграции этих ограничений конечная экспортируемая модель гораздо лучше согласована с возможностями целевого оборудования, например, в встраиваемых системах.

Отличие от посттренировочной квантизации

Важно отличать QAT от Квантование после обучения (PTQ), поскольку они служат схожие цели, но отличаются по исполнению:

  • Посттренировочная квантизация (PTQ): Применяется после полного обучения модели. Она анализирует небольшой калибровочный набор данных для преобразования значений с плавающей точкой в целые числа. Несмотря на быстроту и простоту реализации, PTQ может иногда приводит к значительному снижению точности в чувствительных моделях.
  • Обучение с учетом квантования (QAT): Включает квантование в процесс обучения или процесс тонкой настройки. Он требует больше вычислительных затрат интенсивнее, чем PTQ, но обычно дает более высокую точность, что делает его предпочтительным выбором для развертывания современных моделей, таких как Ultralytics YOLO11 в критически важных сценариях.

Применение в реальном мире

QAT необходим для отраслей, где задержка вывода и энергопотребление являются критические факторы.

  1. Автономное вождение: Транспортные средства полагаются на Компьютерное зрение для таких задач, как обнаружение пешеходов обнаружение пешеходов и слежение за полосой движения. Эти системы часто работают на специализированном оборудовании, таком как модули NVIDIA Jetson. QAT гарантирует, что модели остаются достаточно точными для обеспечения безопасности и при этом достаточно быстрыми для принятия решений в реальном времени.
  2. Мобильное здравоохранение: Портативные диагностические устройства часто используют классификация изображений для анализа медицинских сканов. Используя QAT, разработчики могут развернуть надежные модели ИИ на мобильных процессорах, таких как чипы Qualcomm Snapdragon, что позволяет проводить расширенную диагностику без разрядки аккумулятора устройства.

Реализация квантования с помощью Ultralytics

В то время как полные конвейеры QAT часто включают в себя специальные конфигурации обучения. ultralytics библиотека упрощает процесс экспорта и позволяет получить квантованные модели, готовые к развертыванию. Следующий пример демонстрирует как экспортировать модель YOLO11 в TFLite формат с квантованием INT8, подготавливая его к эффективному выполнению по краям.

from ultralytics import YOLO

# Load the YOLO11 model (latest stable version)
model = YOLO("yolo11n.pt")

# Export to TFLite with INT8 quantization
# This creates a compact model optimized for edge devices
model.export(format="tflite", int8=True)

Интеграция с другими методами оптимизации

Для достижения максимальной эффективности QAT часто сочетают с другими методами развертывания моделей. Обрезка модели удаляет лишние связи перед квантования, что еще больше уменьшает размер. Кроме того, дистилляция знаний может быть использована для обучения компактной модели студента, которая затем уточняется с помощью QAT. Окончательно квантованные модели совместимы с высокопроизводительными программами выполнения, такими как ONNX Runtime и OpenVINOчто обеспечивает широкую совместимость с различных аппаратных платформ от Intel до Google Coral.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас