Quantization-Aware Training (QAT)
Узнай, как обучение с учетом квантования (QAT) оптимизирует модели Ultralytics YOLO26 для развертывания на периферийных устройствах. Изучи, как сохранять высокую точность при формате INT8.
Обучение с учетом квантования (QAT) — это специализированная методика, используемая на этапе обучения моделей машинного обучения для подготовки их к работе в средах с пониженной точностью. В стандартных рабочих процессах глубокого обучения модели обычно используют 32-битные числа с плавающей запятой высокой точности (FP32). Хотя такая точность обеспечивает отличные результаты, она может требовать значительных вычислительных ресурсов и объема памяти, особенно на периферийных устройствах. QAT имитирует эффекты квантования — снижения точности до таких форматов, как 8-битные целые числа (INT8), — пока модель еще обучается. Внося эти ошибки квантования в процесс обучения, модель учится адаптировать свои веса и эффективно восстанавливать точность, которая в противном случае могла бы быть потеряна при преобразовании после обучения.
Почему QAT важен для развертывания на периферийных устройствах#
Развертывание моделей компьютерного зрения на устройствах с ограниченными ресурсами часто требует найти баланс между скоростью и производительностью. Стандартные методы квантования, известные как квантование после обучения (PTQ), применяют снижение точности только после полного завершения обучения модели. Хотя PTQ выполняется быстро, иногда он может снижать точность чувствительных моделей, поскольку веса нейронной сети существенно изменяются без возможности адаптации.
QAT решает эту проблему, позволяя модели «потренироваться» работать после квантования. Во время прямого прохода при обучении веса и активации имитируются как значения низкой точности. Благодаря этому процесс градиентного спуска обновляет параметры модели таким образом, чтобы минимизировать функцию потерь именно для квантованного состояния. В результате получается надежная модель, сохраняющая высокую точность даже при развертывании на таком оборудовании, как микроконтроллеры или мобильные процессоры.
Отличия QAT от квантования после обучения (PTQ)#
Полезно отличать QAT от квантования моделей, в частности от квантования после обучения (PTQ):
- Квантование после обучения (PTQ): Модель обычно обучается в FP32. После завершения обучения веса преобразуются в INT8. Этот процесс выполняется быстрее и не требует повторного обучения, но может привести к большей потере точности в сложных архитектурах.
- Обучение с учетом квантования (QAT): Процесс квантования имитируется на этапе дообучения. Модель корректирует свои внутренние параметры, чтобы учитывать шум, вносимый пониженной точностью, обычно обеспечивая более высокую точность, чем PTQ.
Практические применения#
QAT необходим в отраслях, где критически важен вывод в реальном времени на периферийном оборудовании.
- Автономные дроны: В операциях с дронами на базе AI время работы от аккумулятора и вычислительная мощность на борту крайне ограничены. Дроны с моделями, оптимизированными с помощью QAT, могут с высокой точностью обнаруживать препятствия или отслеживать объекты, используя ускорители INT8, что значительно увеличивает продолжительность полета по сравнению с моделями FP32.
- Интеллектуальные камеры в розничной торговле: Супермаркеты используют компьютерное зрение в розничной торговле для контроля запасов на полках или управления очередями на кассах. Такие системы часто работают на периферийных шлюзах с низким энергопотреблением. QAT гарантирует, что модели обнаружения объектов, работающие на этих устройствах, сохраняют точность, необходимую для различения похожих товаров, без дорогостоящего подключения к облаку.
Реализация QAT с Ultralytics#
Платформа Ultralytics и экосистема YOLO поддерживают экспорт моделей в квантованные форматы. Хотя QAT представляет собой сложную процедуру обучения, современные фреймворки упрощают подготовку моделей к квантованному выводу.
Ниже приведен пример экспорта обученной модели YOLO26 в квантованный формат TFLite с INT8, использующий принципы квантования для эффективного развертывания на периферийных устройствах.
from ultralytics import YOLO
# Load a trained YOLO26 model
model = YOLO("yolo26n.pt")
# Export the model to TFLite format with INT8 quantization
# This prepares the model for efficient execution on edge devices
model.export(format="tflite", int8=True)Интеграция с периферийными экосистемами#
Модели, оптимизированные с помощью методов квантования, предназначены для работы на специализированных движках вывода. Модели, обученные с использованием QAT, часто развертываются с помощью ONNX Runtime для кроссплатформенной совместимости или OpenVINO для оптимизации на оборудовании Intel. Это гарантирует, что модель будет работать с максимально возможной эффективностью и скоростью независимо от того, используется ли в качестве целевой платформы Raspberry Pi или специализированный Edge TPU.
Ключевые понятия, связанные с QAT#
Для полного понимания QAT полезно знать несколько связанных с машинным обучением понятий:
- Точность: Указывает на уровень детализации, используемый для представления чисел. Числа с половинной точностью (FP16) и INT8 — распространенные целевые форматы для квантования.
- Калибровка: Процесс определения диапазона динамических значений активаций (мин./макс.), чтобы эффективно сопоставлять числа с плавающей запятой целым числам. Это важный этап развертывания квантованных моделей YOLO.
- Задержка вывода: Одно из главных преимуществ QAT — сокращение задержки вывода, что позволяет быстрее принимать решения в системах реального времени.
- Дообучение: QAT часто выполняется как этап дообучения предварительно обученной модели, а не как обучение с нуля, что позволяет экономить вычислительные ресурсы.
Интегрируя обучение с учетом квантования в конвейер MLOps, разработчики могут сократить разрыв между исследовательскими моделями с высокой точностью и высокоэффективными готовыми к промышленной эксплуатации периферийными приложениями AI.









