Оптимизация инференса YOLO26 с помощью движка DeepSparse от Neural Magic#
При развертывании моделей обнаружения объектов, таких как Ultralytics YOLO26, на разном оборудовании могут возникать специфические сложности, например с оптимизацией. Здесь пригодится интеграция YOLO26 с движком DeepSparse от Neural Magic. Она меняет способ выполнения моделей YOLO26 и обеспечивает производительность уровня GPU непосредственно на CPU.
В этом руководстве показано, как развернуть YOLO26 с помощью DeepSparse от Neural Magic, запускать инференс и оценивать производительность, чтобы убедиться в оптимизации.
Neural Magic была приобретена Red Hat в январе 2025 года и прекращает поддержку версий своих библиотек deepsparse, sparseml, sparsezoo и sparsify, предназначенных для сообщества. Подробнее смотри в уведомлении, опубликованном в файле Readme репозитория sparsify на GitHub.
DeepSparse от Neural Magic#
DeepSparse от Neural Magic — среда выполнения инференса, предназначенная для оптимизации выполнения нейронных сетей на CPU. Она применяет передовые методы, такие как разреживание, прореживание и квантование, чтобы значительно снизить вычислительные затраты без потери точности. DeepSparse — гибкое решение для эффективного и масштабируемого выполнения нейронных сетей на различных устройствах.
Преимущества интеграции DeepSparse от Neural Magic с YOLO26#
Прежде чем перейти к развертыванию YOLO26 с помощью DeepSparse, рассмотрим преимущества DeepSparse. Вот некоторые из них:
- Повышение скорости инференса: обеспечивает скорость до 525 FPS (на YOLOv8n), значительно ускоряя инференс YOLO по сравнению с традиционными методами.
- Оптимизация эффективности модели: использует прореживание и квантование, чтобы повысить эффективность YOLO26, уменьшив размер модели и вычислительные требования при сохранении точности.
-
Высокая производительность на стандартных CPU: обеспечивает производительность, сопоставимую с GPU, на CPU, предлагая более доступное и экономичное решение для различных приложений.
-
Упрощенная интеграция и развертывание: предоставляет удобные инструменты для простой интеграции YOLO26 в приложения, включая функции разметки изображений и видео.
-
Поддержка разных типов моделей: совместим как со стандартными моделями YOLO, так и с моделями, оптимизированными для разреживания, что расширяет возможности развертывания.
-
Экономичное и масштабируемое решение: сокращает операционные расходы и позволяет масштабировать развертывание современных моделей обнаружения объектов.
Как работает технология DeepSparse от Neural Magic?#
Технология DeepSparse от Neural Magic вдохновлена эффективностью человеческого мозга при вычислениях в нейронных сетях. Она использует два ключевых принципа работы мозга:
-
Разреживание: процесс разреживания предполагает удаление избыточной информации из сетей глубокого обучения, что позволяет уменьшить размер моделей и ускорить их работу без потери точности. Этот метод значительно сокращает размер сети и ее вычислительные потребности.
-
Локальность обращений к данным: DeepSparse использует особый метод выполнения, разбивая сеть на тензорные столбцы. Эти столбцы обрабатываются по глубине и полностью помещаются в кэш CPU. Такой подход имитирует эффективность мозга, сокращая перемещение данных и максимально используя кэш CPU.
Создание разреженной версии YOLO26, обученной на пользовательском наборе данных#
SparseZoo — репозиторий моделей с открытым исходным кодом от Neural Magic, содержащий набор предварительно разреженных контрольных точек моделей YOLOv8. С помощью SparseML, бесшовно интегрированного с Ultralytics, пользователи могут легко дообучить эти разреженные контрольные точки на собственных наборах данных с помощью простой командной строки.
Подробнее смотри в документации Neural Magic по SparseML и YOLOv8.
Использование: развертывание YOLO26 с помощью DeepSparse#
Развертывание YOLO26 с помощью DeepSparse от Neural Magic состоит из нескольких простых шагов. Перед тем как перейти к инструкциям, ознакомься с моделями YOLO26 от Ultralytics. Это поможет выбрать модель, которая лучше всего подходит для твоих задач. Начни так:
Шаг 1: установка#
Чтобы установить необходимые пакеты, выполни команду:
# Install the required packages
pip install deepsparse[yolov8]Шаг 2: экспорт YOLO26 в формат ONNX#
Для работы движка DeepSparse требуются модели YOLO26 в формате ONNX. Экспорт модели в этот формат необходим для совместимости с DeepSparse. Используй следующую команду для экспорта моделей YOLO26:
# Export YOLO26 model to ONNX format
yolo detect export model=yolo26n.pt format=onnx opset=13Эта команда сохранит модель yolo26n.onnx на диск.
Шаг 3: Развертывание и запуск инференса#
Модель YOLO26 в формате ONNX можно развернуть и запустить с помощью DeepSparse. Это легко сделать через интуитивно понятный Python API:
from deepsparse import Pipeline
# Укажи путь к модели YOLO26 ONNX
model_path = "path/to/yolo26n.onnx"
# Настрой конвейер DeepSparse
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)
# Запусти модель на изображениях
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)Шаг 4: Оценка производительности#
Важно убедиться, что модель YOLO26 оптимально работает в DeepSparse. Ты можешь оценить производительность модели, проанализировав пропускную способность и задержку:
# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo26n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"Шаг 5: Дополнительные возможности#
DeepSparse предоставляет дополнительные возможности для практической интеграции YOLO26 в приложения, например разметку изображений и оценку датасетов.
# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo26n.onnx"
# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo26n.onnx"Команда annotate обрабатывает указанное изображение, обнаруживает объекты и сохраняет размеченное изображение с ограничивающими рамками и классами. Размеченное изображение будет сохранено в папке annotation-results. Это позволяет наглядно представить возможности модели по обнаружению объектов.
После выполнения команды eval ты получишь подробные метрики, такие как точность, полнота и mAP (средняя точность). Это дает полное представление о производительности модели на датасете и особенно полезно для тонкой настройки и оптимизации моделей YOLO26 под конкретные задачи, чтобы обеспечить высокую точность и эффективность.
Итоги#
В этом руководстве рассмотрена интеграция YOLO26 от Ultralytics с движком DeepSparse от Neural Magic. Показано, как эта интеграция повышает производительность YOLO26 на CPU, обеспечивая эффективность на уровне GPU и используя передовые методы разрежения нейронных сетей.
Подробную информацию и расширенные инструкции смотри в репозитории DeepSparse от Neural Magic. Также ты можешь изучить руководство по интеграции YOLOv8 и посмотреть обзорную сессию на YouTube.
Чтобы подробнее узнать о различных вариантах интеграции YOLO26, посети страницу руководства по интеграциям Ultralytics, где ты найдешь множество других интересных возможностей интеграции.
Часто задаваемые вопросы#
Движок DeepSparse от Neural Magic — это среда выполнения для инференса, предназначенная для оптимизации выполнения нейронных сетей на CPU с помощью передовых методов, таких как разрежение, прореживание и квантование. Интегрировав DeepSparse с YOLO26, ты сможешь добиться производительности на уровне GPU на стандартных CPU, значительно повысив скорость инференса, эффективность модели и общую производительность без потери точности. Подробнее смотри в разделе о DeepSparse от Neural Magic.
Установить пакеты, необходимые для развертывания YOLO26 с DeepSparse от Neural Magic, очень просто. Их можно установить с помощью CLI. Вот нужная команда:
pip install deepsparse[yolov8]После установки выполни инструкции из раздела Установка, чтобы настроить среду и начать использовать DeepSparse с YOLO26.
Чтобы преобразовать модели YOLO26 в формат ONNX, необходимый для совместимости с DeepSparse, воспользуйся следующей командой CLI:
yolo detect export model=yolo26n.pt format=onnx opset=13Эта команда экспортирует модель YOLO26 (
yolo26n.pt) в формат (yolo26n.onnx), который можно использовать с движком DeepSparse. Подробнее об экспорте моделей читай в разделе «Экспорт моделей».Оценка производительности YOLO26 в DeepSparse помогает проанализировать пропускную способность и задержку, чтобы убедиться в оптимальной работе модели. Для запуска теста воспользуйся следующей командой CLI:
deepsparse.benchmark model_path="path/to/yolo26n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"Эта команда выведет важные метрики производительности. Подробнее смотри в разделе «Оценка производительности».
Интеграция DeepSparse от Neural Magic с YOLO26 дает несколько преимуществ:
- Повышенная скорость инференса: до 525 FPS (для YOLOv8n), что демонстрирует возможности оптимизации DeepSparse.
- Оптимизированная эффективность модели: разрежение, прореживание и квантование позволяют уменьшить размер модели и вычислительные затраты без потери точности.
- Высокая производительность на стандартных CPU: производительность на уровне GPU на доступном по цене оборудовании с CPU.
- Простая интеграция: удобные инструменты для легкого развертывания и интеграции.
- Гибкость: поддержка стандартных и оптимизированных с помощью разрежения моделей YOLO.
- Экономичность: снижение эксплуатационных расходов благодаря эффективному использованию ресурсов.
Подробнее об этих преимуществах читай в разделе о преимуществах интеграции DeepSparse от Neural Magic с YOLO26.