Оптимизируйте производительность ИИ с помощью квантования моделей. Уменьшите размер, увеличьте скорость и повысьте энергоэффективность для реальных развертываний.
Квантование модели - это преобразующая техника в машинного обучения, предназначенная для снижения вычислительных затрат и затрат памяти при работе нейронных сетей. Путем преобразования параметров модели параметров, в частности весов и активаций, из чисел с плавающей точкой высокой точности (обычно 32-битных, известных как FP32) в форматы с более низкой точностью, такие как 8-битные целые числа (INT8), разработчики могут значительно уменьшить размер файла модели модели. Этот процесс необходим для обеспечения эффективного развертывания моделей на оборудовании с ограниченными ресурсами, обеспечивая бесперебойную работу сложных возможностей ИИ на всех устройствах - от смартфонов до промышленных датчиков. промышленных датчиков.
Основной механизм квантования заключается в преобразовании большого диапазона непрерывных значений в меньший набор дискретных значений. В типичной модели глубокого обучения параметры хранятся в виде 32-битных чисел с плавающей точкой для поддержания высокой точности на этапе обучения. Однако во время на этапе вывода - этапе, когда модель делает предсказания, - такой уровень точности часто оказывается ненужным.
Квантование сжимает эти значения, что уменьшает пропускную способность памяти, необходимую для получения весов модели и ускоряет математические операции. Современное оборудование, включая центральные процессоры и специализированные ускорители, такие как графические процессоры, часто имеют специальные наборы инструкций для целочисленной арифметики, которые быстрее и энергоэффективнее, чем их аналоги с плавающей точкой. аналогов с плавающей запятой. Такая оптимизация помогает минимизировать задержки при выводе, обеспечивая более быстрый пользовательский в приложениях реального времени.
Существует два основных подхода к применению этой оптимизации, каждый из которых используется на разных этапах жизненного цикла разработки. жизненного цикла:
Квантование - краеугольный камень Edge AI, позволяющий выполнять сложные Сложные задачи могут выполняться локально на устройствах, не завися от облачного подключения.
Фреймворк Ultralytics упрощает процесс экспорта моделей в форматы, удобные для квантования. Следующий пример демонстрирует, как экспортировать модель YOLO11 в TFLite с включенным квантованием INT8. Этот процесс автоматически обрабатывает калибровку с использованием указанных данных.
from ultralytics import YOLO
# Load the standard YOLO11 model
model = YOLO("yolo11n.pt")
# Export to TFLite format with INT8 quantization
# The 'data' argument provides calibration images
model.export(format="tflite", int8=True, data="coco8.yaml")
Полезно отличать квантование от других стратегий оптимизации модели, поскольку они часто используются в тандеме, но действуют по-разному:
По мере того как аппаратные ускорители становятся все более специализированными, важность квантования продолжает расти. Будущие Ultralytics исследования, такие как предстоящий проект YOLO26, нацелены на дальнейшее повышение эффективности за счет разработки архитектур, изначально устойчивых к агрессивному квантованию. эффективность за счет разработки архитектур, изначально устойчивых к агрессивному квантованию, гарантируя, что высокопроизводительное компьютерное зрение остается доступным даже на самых маленьких устройствах.
Для обеспечения более широкой совместимости квантованные модели часто развертываются с использованием таких совместимых стандартов, как ONNX или оптимизированные системы вывода движки, такие как TensorRT и OpenVINO.