Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

Квантование моделей

Оптимизируйте производительность ИИ с помощью квантования моделей. Уменьшите размер, увеличьте скорость и повысьте энергоэффективность для реальных развертываний.

Квантование модели — это сложная техника оптимизации модели, используемая для снижения вычислительных затрат и затрат памяти при запуске моделей глубокого обучения. В стандартных рабочих процессах обучения нейронные сети обычно хранят параметры (weights and biases) и карты активации с использованием 32-разрядных чисел с плавающей запятой (FP32). Хотя такая высокая точность обеспечивает точность вычислений во время обучения, она часто не нужна для вывода. Квантование преобразует эти значения в форматы с более низкой точностью, такие как 16-разрядные числа с плавающей запятой (FP16) или 8-разрядные целые числа (INT8), эффективно уменьшая размер модели и ускоряя скорость выполнения без значительного ущерба для точности.

Почему квантование имеет значение

Основной движущей силой квантования является необходимость развертывания мощного ИИ на аппаратном обеспечении с ограниченными ресурсами. По мере того, как модели компьютерного зрения, такие как YOLO26, становятся все более сложными, их вычислительные требования увеличиваются. Квантование решает три критических узких места:

  • Объем памяти: за счет уменьшения разрядности весов (например, с 32 бит до 8 бит) требования к объему памяти модели сокращаются до 4 раз. Это крайне важно для мобильных приложений, где размер приложения ограничен.
  • Задержка вывода: операции с меньшей точностью требуют меньших вычислительных затрат. Современные процессоры, особенно те, которые оснащены специализированными нейронными процессорами (NPU), могут выполнять операции INT8 гораздо быстрее, чем FP32, что значительно сокращает задержку вывода.
  • Потребление энергии: Передача меньшего объема данных через память и выполнение более простых арифметических операций потребляет меньше энергии, продлевая срок службы батареи в портативных устройствах и автономных транспортных средствах.

Сравнение со смежными понятиями

Важно отличать квантование от других методов оптимизации, поскольку они модифицируют модель по-разному :

  • Квантование против обрезки: в то время как квантование уменьшает размер файла за счет снижения разрядности параметров, обрезка модели предполагает полное удаление ненужных связей (весов) для создания разреженной сети. Обрезка изменяет структуру модели, тогда как квантование изменяет представление данных.
  • Квантование против дистилляции знаний: Дистилляция знаний — это метод обучения, при котором небольшая «учащаяся» модель учится имитировать большую «учительскую» модель. Квантование часто применяется к учащейся модели после дистилляции для дальнейшего повышения производительности периферийного ИИ.

Применение в реальном мире

Квантование делает возможным использование компьютерного зрения и искусственного интеллекта в различных отраслях, где эффективность имеет первостепенное значение.

  1. Автономные системы: в автомобильной промышленности самоуправляемые автомобили должны обрабатывать визуальные данные с камер и LiDAR в режиме реального времени. Квантованные модели, развернутые на NVIDIA TensorRT позволяют этим транспортным средствам detect и препятствия с задержкой в миллисекунды, обеспечивая безопасность пассажиров.
  2. Умное сельское хозяйство: дроны, оснащенные мультиспектральными камерами, используют квантованные модели обнаружения объектов для выявления болезней сельскохозяйственных культур или мониторинга стадий роста. Запуск этих моделей локально на встроенных системахдрона устраняет необходимость в ненадежных сотовых соединениях в отдаленных полях. .

Реализация квантования с помощью 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, что обеспечивает широкую совместимость с различными аппаратными экосистемами.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас