Model Quantization
Узнай, как квантование моделей оптимизирует Ultralytics YOLO26 для граничного ИИ. Открой для себя способы сокращения памяти, снижения задержки и экспорта INT8-моделей для ускоренного инференса.
Квантование моделей — это сложный метод оптимизации моделей, используемый для снижения вычислительных затрат и требований к памяти при запуске моделей глубокого обучения. В стандартных рабочих процессах обучения нейронные сети обычно хранят параметры (веса и смещения) и карты активации с использованием 32-битных чисел с плавающей запятой (FP32). Хотя такая высокая точность обеспечивает корректные вычисления во время обучения, она часто избыточна для инференса. Квантование преобразует эти значения в форматы с более низкой точностью, такие как 16-битные числа с плавающей запятой (FP16) или 8-битные целые числа (INT8), что эффективно уменьшает размер модели и ускоряет выполнение без существенной потери точности.
Link to this sectionПочему квантование важно#
Основная причина для квантования — необходимость развертывания мощного ИИ на оборудовании с ограниченными ресурсами. По мере того как модели компьютерного зрения, такие как YOLO26, становятся сложнее, растут и их вычислительные потребности. Квантование решает три критические проблемы:
- Объем занимаемой памяти: За счет уменьшения разрядности весов (например, с 32 до 8 бит) требования к памяти модели сокращаются до 4 раз. Это жизненно важно для мобильных приложений, где размер приложения ограничен.
- Задержка инференса: Операции с более низкой точностью менее затратны с вычислительной точки зрения. Современные процессоры, особенно те, что оснащены специализированными нейронными процессорами (NPU), могут выполнять операции INT8 намного быстрее, чем FP32, что значительно снижает задержку инференса.
- Энергопотребление: Передача меньшего объема данных через память и выполнение более простых арифметических операций потребляют меньше энергии, продлевая срок службы батареи портативных устройств и автономных транспортных средств.
Link to this sectionСравнение со смежными концепциями#
Важно отличать квантование от других методов оптимизации, так как они модифицируют модель по-разному:
- Квантование против прунинга: В то время как квантование уменьшает размер файла за счет снижения разрядности параметров, прунинг модели (отсечение) предполагает полное удаление ненужных связей (весов) для создания разреженной сети. Прунинг меняет структуру модели, тогда как квантование изменяет представление данных.
- Квантование против дистилляции знаний: Дистилляция знаний — это метод обучения, при котором маленькая «модель-ученик» учится имитировать большую «модель-учителя». Квантование часто применяется к модели-ученику после дистилляции для дальнейшего повышения производительности периферийного ИИ.
Link to this sectionРеальные приложения#
Квантование открывает возможности для компьютерного зрения и ИИ в различных отраслях, где эффективность имеет решающее значение.
-
Автономные системы: В автомобильной промышленности беспилотные автомобили должны обрабатывать визуальные данные с камер и LiDAR в режиме реального времени. Квантованные модели, развернутые на движках NVIDIA TensorRT, позволяют таким автомобилям обнаруживать пешеходов и препятствия с миллисекундной задержкой, обеспечивая безопасность пассажиров.
-
Умное сельское хозяйство: Дроны, оснащенные мультиспектральными камерами, используют квантованные модели обнаружения объектов для выявления болезней сельскохозяйственных культур или мониторинга стадий роста. Запуск этих моделей локально на встроенных системах дрона избавляет от необходимости в ненадежном сотовом соединении в отдаленных полях.
Link to this sectionРеализация квантования с Ultralytics#
Библиотека Ultralytics упрощает процесс экспорта, позволяя тебе конвертировать модели, такие как передовая YOLO26, в квантованные форматы. Платформа Ultralytics также предоставляет инструменты для беспрепятственного управления этими развертываниями.
Следующий пример демонстрирует, как экспортировать модель в TFLite с включенным квантованием INT8. Этот процесс включает этап калибровки, на котором модель анализирует выборочные данные для определения оптимального динамического диапазона квантованных значений.
from ultralytics import YOLO
# Load a standard YOLO26 model
model = YOLO("yolo26n.pt")
# Export to TFLite format with INT8 quantization
# The 'int8' argument triggers Post-Training Quantization
# 'data' provides the calibration dataset needed for mapping values
model.export(format="tflite", int8=True, data="coco8.yaml")Оптимизированные модели часто развертываются с использованием интероперабельных стандартов, таких как ONNX, или высокопроизводительных движков инференса, таких как OpenVINO, что обеспечивает широкую совместимость с различными аппаратными экосистемами.






