Оптимизируй модели ИИ для пограничных устройств с помощью Quantization-Aware Training (QAT), обеспечивая высокую точность и эффективность в условиях ограниченных ресурсов.
Обучение с учетом квантования (Quantization-Aware Training, QAT) - это мощная техника, используемая для оптимизации моделей глубокого обучения (DL), таких как Ultralytics YOLO для развертывания на устройствах с ограниченными вычислительными ресурсами, таких как мобильные телефоны или встраиваемые системы. Стандартные модели часто используют для вычислений числа высокой точности (например, 32-битные числа с плавающей точкой или FP32), которые требуют значительной вычислительной мощности и памяти. QAT стремится снизить это требование, подготавливая модель на этапе обучения, чтобы она показывала хорошие результаты даже при использовании чисел с более низкой точностью (например, 8-битных целых чисел или INT8), тем самым преодолевая разрыв между высокой точностью и эффективной производительностью на граничных устройствах. Такая оптимизация крайне важна для реализации сложных задач ИИ непосредственно на аппаратном обеспечении, таком как смартфоны или IoT-датчики.
В отличие от методов, которые квантуют модель после того, как она полностью обучена, QAT интегрирует моделирование эффектов квантования непосредственно в процесс обучения. Во время обучения он вводит в архитектуру модели операции, называемые узлами "фальшивого квантования". Эти узлы имитируют влияние более низкой точности (например, точности INT8) на веса и активации модели во время прямого прохода, округляя значения так, как они были бы в модели с истинным квантованием. Однако во время обратного прохода (когда модель обучается методом обратного распространения) градиенты обычно вычисляются и применяются обновления с использованием стандартных чисел высокой точности с плавающей точкой. Это позволяет параметрам модели адаптироваться и научиться быть устойчивыми к потере точности, которая произойдет во время реального квантованного вывода. "Видя" эффекты квантования во время обучения, модель минимизирует падение точности, часто связанное с развертыванием моделей в форматах с низкой точностью, что является ключевым аспектом, обсуждаемым в стратегиях оптимизации моделей. Такие фреймворки, как TensorFlow Lite и PyTorch предоставляют инструменты для реализации QAT.
Основное различие заключается в том , когда применяется квантование. Квантование модели, часто называемое посттренировочным квантованием (PTQ), преобразует предварительно обученную модель с полной точностью в формат с более низкой точностью после завершения обучения. PTQ обычно проще в реализации, так как не требует переобучения или доступа к исходному набору обучающих данных. Однако иногда это может привести к заметному снижению точности модели, особенно для сложных моделей, выполняющих такие задачи, как обнаружение объектов или сегментация изображений. QAT, напротив, имитирует квантование во время обучения, что делает модель изначально более устойчивой к снижению точности. Это часто приводит к более высокой точности конечной квантованной модели по сравнению с PTQ, хотя и требует больше вычислительных ресурсов и доступа к обучающим данным. Для таких моделей, как YOLO, включающих в себя блоки, дружественные к квантованию, QAT может дать значительный выигрыш в производительности при минимальной потере точности.
Несмотря на то что обе техники предполагают использование числовой точности, цели у них разные. Обучение со смешанной точностью в первую очередь направлено на ускорение самого процесса обучения и снижение расхода памяти во время обучения за счет использования комбинации форматов с низкой точностью (например, 16-битных float или FP16) и стандартной точностью (32-битных float) для вычислений и хранения данных. QAT специально фокусируется на оптимизации модели для эффективного вывода с использованием целочисленных форматов с низкой точностью (например, INT8) после развертывания модели. Хотя смешанная точность помогает во время обучения, QAT гарантирует, что финальная модель будет хорошо работать в условиях ограничений аппаратного обеспечения для квантования выводов, такого как NPU (Neural Processing Units) или TPU.
Обучение с учетом квантования жизненно необходимо для развертывания сложных моделей ИИ в средах с ограниченными ресурсами, где эффективность играет ключевую роль.
Ultralytics поддерживает экспорт моделей в различные форматы, такие как ONNX, TensorRTи TFLite, которые совместимы с рабочими процессами QAT, что позволяет эффективно развертывать модели на различном оборудовании. Ты можешь управлять и разворачивать свои модели, оптимизированные для QAT, с помощью таких платформ, как Ultralytics HUB. Оценка производительности модели с помощью соответствующих метрик после QAT очень важна, чтобы убедиться, что требования к точности выполнены.