Оптимизируйте модели ИИ для периферийных устройств с помощью Quantization-Aware Training (QAT), обеспечивая высокую точность и эффективность в средах с ограниченными ресурсами.
Обучение с учетом квантования (QAT) - это сложная техника оптимизации модели разработанная для подготовки нейронных сетей к развертывания на оборудовании с ограниченными вычислительными ресурсами. В то время как стандартные модели глубокого обучения обычно обрабатывают данные с использованием 32-битные числа высокой точности с плавающей точкой (FP32), многие для многих устройств искусственного интеллекта требуется более низкая точность, например 8-битные целые числа (INT8), для экономии памяти и энергии. QAT решает проблему снижения точности, часто возникающую при таком преобразовании, путем моделирования эффектов квантования во время на этапе обучения. Такой упреждающий подход позволяет модели корректировать свои веса с учетом потери точности, в результате чего получаются высокоэффективные модели, сохраняющие свою прогностическую эффективность.
Основной механизм обучения с учетом квантования заключается в том, что в процессе обучения в архитектуру модели вставляются "фальшивые" узлы квантования. архитектуру модели во время обучения. Эти узлы моделируют ошибки округления и зажима, возникающие при преобразовании FP32 в INT8. Во время прямого прохода модель работает так, как если бы она была квантована, а во время обратного обратный проход - с помощью обратного распространения - обновляетвеса с высокой точностью, чтобы компенсировать смоделированные ошибки.
Этот процесс, по сути, является тонкой настройкой модели, чтобы она была устойчива к шуму, вносимому снижением точности. Основные фреймворки, такие как PyTorch и TensorFlow предоставляют специализированные API для облегчения этого рабочего процесса. Благодаря ранней интеграции этих ограничений конечная экспортируемая модель гораздо лучше согласована с возможностями целевого оборудования, например, в встраиваемых системах.
Важно отличать QAT от Квантование после обучения (PTQ), поскольку они служат схожие цели, но отличаются по исполнению:
QAT необходим для отраслей, где задержка вывода и энергопотребление являются критические факторы.
В то время как полные конвейеры 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.