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

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

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

Квантование модели - это преобразующая техника в машинного обучения, предназначенная для снижения вычислительных затрат и затрат памяти при работе нейронных сетей. Путем преобразования параметров модели параметров, в частности весов и активаций, из чисел с плавающей точкой высокой точности (обычно 32-битных, известных как FP32) в форматы с более низкой точностью, такие как 8-битные целые числа (INT8), разработчики могут значительно уменьшить размер файла модели модели. Этот процесс необходим для обеспечения эффективного развертывания моделей на оборудовании с ограниченными ресурсами, обеспечивая бесперебойную работу сложных возможностей ИИ на всех устройствах - от смартфонов до промышленных датчиков. промышленных датчиков.

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

Основной механизм квантования заключается в преобразовании большого диапазона непрерывных значений в меньший набор дискретных значений. В типичной модели глубокого обучения параметры хранятся в виде 32-битных чисел с плавающей точкой для поддержания высокой точности на этапе обучения. Однако во время на этапе вывода - этапе, когда модель делает предсказания, - такой уровень точности часто оказывается ненужным.

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

Виды квантования

Существует два основных подхода к применению этой оптимизации, каждый из которых используется на разных этапах жизненного цикла разработки. жизненного цикла:

  • Посттренировочная квантизация (PTQ): Этот метод применяется после того, как модель полностью обучена. Он требует калибровочного набора данных для определения динамического диапазона активаций и весов. Такие инструменты, как TensorFlow Lite, предлагают надежную поддержку PTQ, что делает его популярным выбором для быстрой оптимизации.
  • Обучение с учетом квантования (QAT): В этом подходе модель имитирует эффекты квантования во время самого процесса обучения. Вводя "фальшивые" узлы квантования, сеть учится адаптироваться к более низкой точности, что часто приводит к повышению точности по сравнению с PTQ. Вы можете узнать больше об этой конкретной технике на нашем сайте Обучение с учетом квантования (QAT) страница.

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

Квантование - краеугольный камень Edge AI, позволяющий выполнять сложные Сложные задачи могут выполняться локально на устройствах, не завися от облачного подключения.

  1. Мобильное компьютерное зрение: Приложения для смартфонов, предлагающие такие функции, как размытие фона в реальном времени или фильтры для лиц, опираются на квантованные модели. Например, для запуска модель обнаружения объектов на телефоне требует высокой эффективности, чтобы предотвратить разрядку батареи и перегрев.
  2. Промышленный IoT и робототехника: В В робототехнике автономные устройства часто работают от аккумуляторов и используют встроенные процессоры, такие как NVIDIA Jetson. Квантованные модели позволяют этим роботам обрабатывать визуальные данные для навигации и обхода препятствий с минимальной задержкой, что очень важно для безопасности в автономных транспортных средствах.

Реализация квантования с помощью Ultralytics YOLO

Фреймворк 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")

Квантование в сравнении с другими методами оптимизации

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

  • Квантование против обрезки: Квантование снижает точность весов, обрезка модели предполагает удаление ненужных обрезка модели предполагает полное удаление ненужных связей (весов) для создания разреженной сети. Обрезка изменяет структуру, в то время как квантование изменяет структуру, в то время как квантование - тип данных.
  • Квантование против дистилляции: Дистилляция знаний обучает меньшую модель ученика для подражания более крупной модели учителя. После этого к модели ученика можно применить квантование, чтобы еще больше уменьшения ее размера.
  • Квантование против смешанной точности: Смешанная точность - это прежде всего техника обучения. которая использует смесь FP16 и FP32 для ускорения обучения и уменьшения объема памяти на GPU, в то время как квантование - это как правило, оптимизация во время вывода с использованием целых чисел.

Будущие разработки

По мере того как аппаратные ускорители становятся все более специализированными, важность квантования продолжает расти. Будущие Ultralytics исследования, такие как предстоящий проект YOLO26, нацелены на дальнейшее повышение эффективности за счет разработки архитектур, изначально устойчивых к агрессивному квантованию. эффективность за счет разработки архитектур, изначально устойчивых к агрессивному квантованию, гарантируя, что высокопроизводительное компьютерное зрение остается доступным даже на самых маленьких устройствах.

Для обеспечения более широкой совместимости квантованные модели часто развертываются с использованием таких совместимых стандартов, как ONNX или оптимизированные системы вывода движки, такие как TensorRT и OpenVINO.

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

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

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