Model Quantization
Узнай, как квантование моделей оптимизирует Ultralytics YOLO26 для граничного ИИ. Открой для себя способы сокращения памяти, снижения задержки и экспорта INT8-моделей для ускоренного инференса.
Квантование моделей — это сложный метод оптимизации моделей, используемый для снижения вычислительных затрат и затрат памяти на запуск моделей глубокого обучения. В стандартных процессах обучения нейронные сети обычно сохраняют параметры (веса и смещения) и карты активации с использованием 32-битных чисел с плавающей запятой (FP32). Хотя эта высокая точность обеспечивает правильность вычислений при обучении, она часто избыточна для инференса. Квантование преобразует эти значения в форматы пониженной точности, такие как 16-битные числа с плавающей запятой (FP16) или 8-битные целые числа (INT8), что эффективно уменьшает размер модели и ускоряет выполнение без существенного ухудшения точности.
Почему квантование важно#
Главным стимулом для квантования является необходимость развертывания мощного ИИ на оборудовании с ограниченными ресурсами. По мере того как модели computer vision, такие как YOLO26, становятся сложнее, их вычислительные требования возрастают. Квантование решает три критических узких места:
- Объем занимаемой памяти: За счет уменьшения разрядности весов (например, с 32 до 8 бит) требования к памяти модели сокращаются до 4 раз. Это жизненно важно для мобильных приложений, где размер приложения ограничен.
- Задержка инференса: Операции с более низкой точностью обходятся дешевле в вычислениях. Современные процессоры, особенно те, которые оснащены специализированными neural processing units (NPUs), могут выполнять операции INT8 намного быстрее, чем FP32, что значительно снижает задержку инференса.
- Энергопотребление: Перемещение меньшего объема данных через память и выполнение более простых арифметических операций потребляют меньше энергии, продлевая время работы батареи в портативных устройствах и автономных транспортных средствах.
Сравнение со смежными концепциями#
Важно отличать квантование от других методов оптимизации, так как они модифицируют модель по-разному:
- Квантование против прунинга: В то время как квантование уменьшает размер файла за счет снижения разрядности параметров, пруссурирование моделей предполагает полное удаление ненужных связей (весов) для создания разреженной сети. Прунинг изменяет структуру модели, тогда как квантование изменяет представление данных.
- Квантование против дистилляции знаний: Дистилляция знаний — это метод обучения, при котором небольшая модель-«ученик» учится имитировать большую модель-«учитель». Квантование часто применяется к модели-«ученику» после дистилляции для дальнейшего повышения производительности edge AI.
Реальные приложения#
Квантование открывает возможности для компьютерного зрения и ИИ в различных отраслях, где эффективность имеет решающее значение.
-
Автономные системы: В автомобильной промышленности беспилотные автомобили должны обрабатывать визуальные данные с камер и лидаров в реальном времени. Квантованные модели, развернутые на движках NVIDIA TensorRT, позволяют этим транспортным средствам обнаруживать пешеходов и препятствия с задержкой в миллисекунды, обеспечивая безопасность пассажиров.
-
Умное сельское хозяйство: Дроны, оснащенные мультиспектральными камерами, используют квантованные модели обнаружения объектов для выявления болезней сельскохозяйственных культур или мониторинга стадий роста. Запуск этих моделей локально на встроенных системах дрона устраняет необходимость в ненадежных сотовых соединениях в удаленных полях.
Реализация квантования с 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, обеспечивая широкую совместимость в различных аппаратных экосистемах.






