Глоссарий

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

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

Обучай модели YOLO просто
с помощью Ultralytics HUB.

Узнай больше

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

Как работает обучение с учетом квантования

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

Отличие от смежных понятий

QAT против квантования модели (после обучения)

Основное различие заключается в том , когда применяется квантование. Квантование модели, часто называемое посттренировочным квантованием (PTQ), преобразует предварительно обученную модель с полной точностью в формат с более низкой точностью после завершения обучения. PTQ обычно проще в реализации, так как не требует переобучения или доступа к исходному набору обучающих данных. Однако иногда это может привести к заметному снижению точности модели, особенно для сложных моделей, выполняющих такие задачи, как обнаружение объектов или сегментация изображений. QAT, напротив, имитирует квантование во время обучения, что делает модель изначально более устойчивой к снижению точности. Это часто приводит к более высокой точности конечной квантованной модели по сравнению с PTQ, хотя и требует больше вычислительных ресурсов и доступа к обучающим данным. Для таких моделей, как YOLO, включающих в себя блоки, дружественные к квантованию, QAT может дать значительный выигрыш в производительности при минимальной потере точности.

QAT против смешанной точности

Несмотря на то что обе техники предполагают использование числовой точности, цели у них разные. Обучение со смешанной точностью в первую очередь направлено на ускорение самого процесса обучения и снижение расхода памяти во время обучения за счет использования комбинации форматов с низкой точностью (например, 16-битных float или FP16) и стандартной точностью (32-битных float) для вычислений и хранения данных. QAT специально фокусируется на оптимизации модели для эффективного вывода с использованием целочисленных форматов с низкой точностью (например, INT8) после развертывания модели. Хотя смешанная точность помогает во время обучения, QAT гарантирует, что финальная модель будет хорошо работать в условиях ограничений аппаратного обеспечения для квантования выводов, такого как NPU (Neural Processing Units) или TPU.

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

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

  1. Компьютерное зрение на устройстве: Запуск сложных моделей компьютерного зрения, таких как Ultralytics YOLOv8 непосредственно на смартфонах для таких приложений, как обнаружение объектов в реальном времени в приложениях дополненной реальности или классификация изображений в инструментах управления фотографиями. QAT позволяет этим моделям работать эффективно, без значительного разряда батареи и задержек.
  2. Edge AI в автомобилестроении и робототехнике: Развертывание моделей для таких задач, как обнаружение пешеходов или помощь в удержании полосы движения в автономных автомобилях, или для манипулирования объектами в робототехнике. QAT позволяет этим моделям работать на специализированном оборудовании, таком как Google Edge TPUs или NVIDIA Jetson, обеспечивая низкую задержку вывода для принятия критически важных решений в реальном времени. Это очень важно для таких приложений, как системы охранной сигнализации или управление парковкой.

Ultralytics поддерживает экспорт моделей в различные форматы, такие как ONNX, TensorRTи TFLite, которые совместимы с рабочими процессами QAT, что позволяет эффективно развертывать модели на различном оборудовании. Ты можешь управлять и разворачивать свои модели, оптимизированные для QAT, с помощью таких платформ, как Ultralytics HUB. Оценка производительности модели с помощью соответствующих метрик после QAT очень важна, чтобы убедиться, что требования к точности выполнены.

Читать полностью