Оптимизация инференса YOLO26 с помощью движка DeepSparse от Neural Magic#
При развертывании моделей object detection, таких как Ultralytics YOLO26, на различном железе ты можешь столкнуться с уникальными проблемами, например с оптимизацией. Именно здесь на помощь приходит интеграция YOLO26 с движком DeepSparse от Neural Magic. Она меняет подход к выполнению моделей YOLO26 и обеспечивает производительность уровня GPU прямо на CPU.
В этом руководстве показано, как развернуть YOLO26 с использованием DeepSparse от Neural Magic, как запускать инференс, а также как проводить бенчмаркинг производительности, чтобы убедиться в ее оптимизации.
Компания Neural Magic была acquired by Red Hat in January 2025 и прекращает поддержку сообщества для своих библиотек deepsparse, sparseml, sparsezoo и sparsify. Дополнительную информацию см. в уведомлении, опубликованном in the Readme on the sparsify GitHub repository.
DeepSparse от Neural Magic#
Neural Magic's DeepSparse — это среда выполнения выводов, созданная для оптимизации работы нейросетей на CPU. Она применяет передовые методы, такие как разреженность (sparsity), прунинг и квантование, чтобы кардинально снизить требования к вычислительным ресурсам при сохранении точности. DeepSparse предлагает гибкое решение для эффективного и масштабируемого выполнения neural network на различных устройствах.
Преимущества интеграции DeepSparse от Neural Magic с YOLO26#
Прежде чем переходить к тому, как развернуть YOLO26 с помощью DeepSparse, давай разберемся в преимуществах использования DeepSparse. Вот некоторые ключевые плюсы:
- Увеличенная скорость инференса: достигает до 525 FPS (на YOLO11n), значительно ускоряя возможности инференса YOLO по сравнению с традиционными методами.
- Оптимизированная эффективность модели: использует прунинг и квантование для повышения эффективности YOLO26, уменьшая размер модели и требования к вычислениям при сохранении accuracy.
-
Высокая производительность на стандартных CPU: обеспечивает производительность, сравнимую с GPU, на CPU, предоставляя более доступный и экономичный вариант для различных приложений.
-
Упрощенная интеграция и развертывание: предлагает удобные инструменты для легкой интеграции YOLO26 в приложения, включая функции аннотирования изображений и видео.
-
Поддержка различных типов моделей: совместима как со стандартными, так и с оптимизированными по разреженности моделями YOLO26, что добавляет гибкости при развертывании.
-
Экономичное и масштабируемое решение: снижает эксплуатационные расходы и обеспечивает масштабируемое развертывание современных моделей обнаружения объектов.
Как работает технология DeepSparse от Neural Magic?#
Технология DeepSparse от Neural Magic вдохновлена эффективностью человеческого мозга при вычислениях в нейронных сетях. Она перенимает два ключевых принципа работы мозга:
-
Разреженность (Sparsity): процесс разреживания заключается в удалении избыточной информации из сетей deep learning, что приводит к созданию более компактных и быстрых моделей без ущерба для точности. Этот метод значительно уменьшает размер сети и её вычислительные потребности.
-
Локальность ссылок (Locality of Reference): DeepSparse использует уникальный метод выполнения, разбивая сеть на Tensor Columns. Эти колонки выполняются по глубине, полностью помещаясь в кэш CPU. Такой подход имитирует эффективность мозга, минимизируя перемещение данных и максимизируя использование кэша CPU.
Создание разреженной версии YOLO26, обученной на собственном наборе данных#
SparseZoo, репозиторий моделей с открытым исходным кодом от Neural Magic, предлагает a collection of pre-sparsified YOLO26 model checkpoints. С помощью SparseML, плавно интегрированного с Ultralytics, пользователи могут легко дообучать эти разреженные чекпоинты на своих датасетах с помощью простого интерфейса командной строки.
Ознакомься с Neural Magic's SparseML YOLO26 documentation для получения дополнительной информации.
Использование: развертывание YOLO26 с помощью DeepSparse#
Развертывание YOLO26 с использованием DeepSparse от Neural Magic состоит из нескольких простых шагов. Прежде чем переходить к инструкциям по использованию, обязательно изучи ассортимент YOLO26 models offered by Ultralytics. Это поможет тебе выбрать наиболее подходящую модель для требований твоего проекта. Вот как можно начать.
Шаг 1: Установка#
Чтобы установить необходимые пакеты, выполни:
# Install the required packages
pip install deepsparse[yolov8]Шаг 2: Экспорт YOLO26 в формат ONNX#
Движок DeepSparse требует модели YOLO26 в ONNX format. Экспорт твоей модели в этот формат необходим для совместимости с DeepSparse. Используй следующую команду для экспорта моделей YOLO26:
# Export YOLO26 model to ONNX format
yolo task=detect mode=export model=yolo26n.pt format=onnx opset=13Эта команда сохранит модель yolo26n.onnx на твой диск.
Шаг 3: Развертывание и запуск инференса#
Имея модель YOLO26 в формате ONNX, ты можешь развернуть и запустить инференс с помощью DeepSparse. Это можно легко сделать с помощью их интуитивно понятного Python API:
from deepsparse import Pipeline
# Specify the path to your YOLO26 ONNX model
model_path = "path/to/yolo26n.onnx"
# Set up the DeepSparse Pipeline
yolo_pipeline = Pipeline.create(task="yolov8", model_path=model_path)
# Run the model on your images
images = ["path/to/image.jpg"]
pipeline_outputs = yolo_pipeline(images=images)Шаг 4: Бенчмаркинг производительности#
Важно убедиться, что твоя модель YOLO26 работает оптимально на DeepSparse. Ты можешь benchmark производительность модели для анализа пропускной способности и задержки:
# 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. Это помогает получить наглядное представление о возможностях обнаружения модели.
После запуска команды оценки ты получишь подробные метрики вывода, такие как precision, recall и mAP (средняя точность). Это дает полное представление о производительности модели на датасете и особенно полезно для точной настройки и оптимизации моделей YOLO26 под конкретные задачи, гарантируя высокую точность и эффективность.
Резюме#
В этом руководстве рассматривается интеграция Ultralytics YOLO26 с движком DeepSparse от Neural Magic. Оно подчеркивает, как эта интеграция повышает производительность YOLO26 на CPU-платформах, предлагая эффективность уровня GPU и передовые методы разреженности нейронных сетей.
Для получения более подробной информации и расширенного использования посети DeepSparse documentation by Neural Magic. Ты также можешь explore the YOLO26 integration guide и watch a walkthrough session on YouTube.
Кроме того, для более широкого понимания различных интеграций YOLO26 посети Ultralytics integration guide page, где ты сможешь найти множество других интересных возможностей интеграции.
FAQ#
Движок DeepSparse от Neural Magic — это среда выполнения выводов, созданная для оптимизации работы нейросетей на CPU с помощью передовых методов, таких как разреженность, прунинг и квантование. Интегрируя DeepSparse с YOLO26, ты получаешь производительность уровня GPU на стандартных CPU, значительно повышая скорость вывода, эффективность модели и общую производительность при сохранении точности. Для получения дополнительной информации загляни в Neural Magic's DeepSparse section.
Установка необходимых пакетов для развертывания YOLO26 с помощью DeepSparse от Neural Magic очень проста. Ты можешь легко установить их с помощью CLI. Вот команда, которую тебе нужно запустить:
pip install deepsparse[yolov8]После установки следуй шагам из Installation section, чтобы настроить окружение и начать использовать DeepSparse с YOLO26.
Для конвертации моделей YOLO26 в формат ONNX, который требуется для совместимости с DeepSparse, ты можешь использовать следующую команду CLI:
yolo task=detect mode=export model=yolo26n.pt format=onnx opset=13Эта команда экспортирует твою модель YOLO26 (
yolo26n.pt) в формат (yolo26n.onnx), который может использоваться движком DeepSparse. Более подробную информацию об экспорте моделей можно найти в Model Export section.Бенчмаркинг производительности YOLO26 на DeepSparse помогает тебе анализировать пропускную способность и задержку, чтобы убедиться, что твоя модель оптимизирована. Ты можешь использовать следующую команду CLI для запуска бенчмарка:
deepsparse.benchmark model_path="path/to/yolo26n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"Эта команда предоставит тебе важнейшие метрики производительности. Дополнительную информацию см. в Benchmarking Performance section.
Интеграция DeepSparse от Neural Magic с YOLO26 дает несколько преимуществ:
- Увеличенная скорость инференса: достигает до 525 FPS (на YOLO11n), демонстрируя возможности оптимизации DeepSparse.
- Оптимизированная эффективность модели: использует методы разреженности, прунинга и квантования для уменьшения размера модели и вычислительных потребностей при сохранении точности.
- Высокая производительность на стандартных CPU: предлагает производительность уровня GPU на экономичном CPU-оборудовании.
- Упрощенная интеграция: удобные инструменты для легкого развертывания и интеграции.
- Гибкость: поддерживает как стандартные, так и оптимизированные по разреженности модели YOLO26.
- Экономичность: снижает эксплуатационные расходы за счет эффективного использования ресурсов.
Чтобы углубиться в эти преимущества, перейди в раздел Benefits of Integrating Neural Magic's DeepSparse with YOLO26 section.