Quantization-Aware Training (QAT)
Узнай, как обучение с учетом квантования (QAT) оптимизирует модели Ultralytics YOLO26 для развертывания на периферии. Открой для себя, как поддерживать высокую точность с использованием INT8.
Quantization-Aware Training (QAT) — это специализированный метод, используемый на этапе обучения моделей машинного обучения для их подготовки к работе в условиях пониженной точности. В стандартных процессах deep learning модели обычно используют высокоточные 32-битные числа с плавающей запятой (FP32). Хотя такая точность обеспечивает превосходные результаты, она может быть вычислительно затратной и требовательной к памяти, особенно на периферийных устройствах. QAT имитирует эффекты квантования — снижения точности до форматов вроде 8-битных целых чисел (INT8) — прямо во время обучения модели. Внедряя эти ошибки квантования в процесс обучения, модель учится адаптировать свои веса и эффективно восстанавливать точность, которая в противном случае была бы потеряна при конвертации после обучения.
Link to this sectionПочему QAT важен для развертывания на периферийных устройствах#
Развертывание computer vision models на устройствах с ограниченными ресурсами часто требует баланса между скоростью и производительностью. Стандартные методы квантования, известные как Post-Training Quantization (PTQ), применяют снижение точности только после полного завершения обучения модели. Хотя PTQ работает быстро, это иногда может привести к снижению точности чувствительных моделей, так как веса neural network существенно меняются без возможности корректировки.
QAT решает эту проблему, позволяя модели «практиковаться» в состоянии квантования. Во время прямого прохода при обучении веса и активации имитируются как значения с низкой точностью. Это позволяет процессу gradient descent обновлять параметры модели таким образом, чтобы минимизировать потери именно для квантованного состояния. Результатом является надежная модель, которая сохраняет высокую точность даже при развертывании на таком оборудовании, как microcontrollers или мобильные процессоры.
Link to this sectionОтличие QAT от Post-Training Quantization (PTQ)#
Полезно отличать QAT от model quantization, а именно от Post-Training Quantization (PTQ):
- Post-Training Quantization (PTQ): Модель обучается стандартным образом в FP32. После завершения обучения веса конвертируются в INT8. Это быстрее и не требует дообучения, но может привести к более значительной потере точности для сложных архитектур.
- Quantization-Aware Training (QAT): Процесс квантования эмулируется на этапе дообучения. Модель адаптирует свои внутренние параметры для учета шума, вносимого пониженной точностью, что обычно дает лучшую accuracy, чем PTQ.
Link to this sectionРеальные приложения#
QAT критически важен для отраслей, где требуется выполнение вывода в режиме реального времени на периферийном оборудовании.
- Автономные дроны: В AI drone operations время автономной работы и бортовая вычислительная мощность сильно ограничены. Дроны, использующие модели, оптимизированные с помощью QAT, могут обнаруживать препятствия или отслеживать объекты с высокой точностью, используя ускорители INT8, что значительно увеличивает время полета по сравнению с моделями FP32.
- Умные камеры для розничной торговли: Супермаркеты используют computer vision in retail для контроля наличия товаров на полках или управления очередями на кассах. Эти системы часто работают на энергоэффективных периферийных шлюзах. QAT гарантирует, что модели object detection, работающие на таких устройствах, сохраняют точность, необходимую для различения похожих товаров, без необходимости дорогостоящего подключения к облаку.
Link to this sectionРеализация QAT с Ultralytics#
Ultralytics Platform и экосистема YOLO поддерживают экспорт моделей в квантованные форматы. Хотя QAT — это сложная процедура обучения, современные фреймворки упрощают подготовку моделей к квантованному выводу.
Ниже приведен пример того, как ты можешь экспортировать обученную модель YOLO26 в квантованный формат INT8 TFLite, который использует принципы квантования для эффективного развертывания на периферии.
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)Link to this sectionИнтеграция с периферийными экосистемами#
Модели, оптимизированные с помощью методов квантования, предназначены для работы на специализированных движках вывода. Модели, обученные с помощью QAT, часто развертываются с использованием ONNX Runtime для кроссплатформенной совместимости или OpenVINO для оптимизации на оборудовании Intel. Это гарантирует, что независимо от целевой платформы — будь то Raspberry Pi или выделенный Edge TPU — модель работает с максимально возможной эффективностью и скоростью.
Link to this sectionОсновные понятия, связанные с QAT#
Чтобы полностью понять QAT, полезно ознакомиться с несколькими связанными концепциями машинного обучения:
- Precision (Точность): Относится к уровню детализации, используемому для представления чисел. Half-precision (FP16) и INT8 являются распространенными целями для квантования.
- Calibration (Калибровка): Процесс определения диапазона динамических значений активации (мин/макс) для эффективного отображения чисел с плавающей запятой в целые числа. Это важнейший шаг при deploying quantized YOLO models.
- Inference Latency (Задержка вывода): Одним из главных преимуществ QAT является снижение inference latency, что позволяет быстрее принимать решения в системах реального времени.
- Fine-Tuning (Дообучение): QAT часто выполняется как этап fine-tuning уже обученной модели, а не обучение с нуля, что экономит вычислительные ресурсы.
Интегрируя Quantization-Aware Training в конвейер MLOps, ты как разработчик можешь сократить разрыв между высокоточными исследовательскими моделями и высокоэффективными, готовыми к производству периферийными AI-приложениями.






