Оптимизация выводов YOLO11 с помощью DeepSparse Engine от Neural Magic
При развертывании моделей обнаружения объектов, таких как Ultralytics YOLO11, на различном оборудовании, вы можете столкнуться с уникальными проблемами, такими как оптимизация. Именно здесь вступает в действие интеграция YOLO11 с DeepSparse Engine от Neural Magic. Она преобразует способ выполнения моделей YOLO11 и обеспечивает производительность уровня GPU непосредственно на CPU.
В этом руководстве показано, как развернуть YOLO11 с помощью DeepSparse от Neural Magic, как запускать инференс, а также как оценивать производительность, чтобы убедиться, что она оптимизирована.
SparseML EOL
Neural Magic была приобретена Red Hat в январе 2025 года, и прекращает поддержку community версий своих deepsparse
, sparseml
, sparsezoo
и sparsify
библиотеки. Для получения дополнительной информации см. размещенное уведомление в Readme на sparseml
Репозиторий GitHub.
DeepSparse от Neural Magic
DeepSparse от Neural Magic — это среда выполнения логического вывода, предназначенная для оптимизации выполнения нейронных сетей на CPU. Она применяет передовые методы, такие как разреженность, обрезка и квантование, чтобы значительно снизить вычислительные требования при сохранении точности. DeepSparse предлагает гибкое решение для эффективного и масштабируемого выполнения нейронных сетей на различных устройствах.
Преимущества интеграции DeepSparse от Neural Magic с YOLO11
Прежде чем погружаться в то, как развернуть YOLO11 с помощью DeepSparse, давайте разберемся в преимуществах использования DeepSparse. Вот некоторые ключевые преимущества:
- Увеличенная скорость инференса: Достигает до 525 FPS (на YOLO11n), что значительно ускоряет возможности инференса YOLO11 по сравнению с традиционными методами.
- Оптимизированная эффективность модели: Использует обрезку и квантование для повышения эффективности YOLO11, уменьшая размер модели и вычислительные требования при сохранении точности.
-
Высокая производительность на стандартных CPU: Обеспечивает производительность уровня GPU на CPU, предоставляя более доступный и экономичный вариант для различных приложений.
-
Оптимизированная интеграция и развертывание: Предлагает удобные инструменты для легкой интеграции YOLO11 в приложения, включая функции аннотации изображений и видео.
-
Поддержка различных типов моделей: Совместимость как со стандартными, так и со оптимизированными по разреженности моделями YOLO11, что добавляет гибкости при развертывании.
-
Экономичное и масштабируемое решение: Снижает операционные расходы и предлагает масштабируемое развертывание передовых моделей обнаружения объектов.
Как работает технология DeepSparse от Neural Magic?
Технология Deep Sparse от Neural Magic вдохновлена эффективностью человеческого мозга в вычислениях нейронных сетей. Она использует два ключевых принципа работы мозга:
-
Разреженность: Процесс разрежения включает в себя удаление избыточной информации из сетей глубокого обучения, что приводит к созданию меньших и более быстрых моделей без ущерба для точности. Этот метод значительно уменьшает размер сети и вычислительные потребности.
-
Локальность ссылок: DeepSparse использует уникальный метод исполнения, разбивая сеть на тензорные столбцы. Эти столбцы выполняются по глубине, полностью помещаясь в кэш CPU. Такой подход имитирует эффективность мозга, минимизируя перемещение данных и максимизируя использование кэша CPU.
Для получения более подробной информации о том, как работает технология DeepSparse от Neural Magic, ознакомьтесь с их публикацией в блоге.
Создание разреженной версии YOLO11, обученной на пользовательском наборе данных
SparseZoo, репозиторий моделей с открытым исходным кодом от Neural Magic, предлагает коллекцию предварительно разреженных контрольных точек модели YOLO11. Благодаря SparseML, легко интегрированной с Ultralytics, пользователи могут без труда точно настроить эти разреженные контрольные точки на своих конкретных наборах данных, используя простой интерфейс командной строки.
Ознакомьтесь с документацией Neural Magic SparseML YOLO11 для получения более подробной информации.
Использование: Развертывание YOLO11 с помощью DeepSparse
Развертывание YOLO11 с помощью DeepSparse от Neural Magic включает в себя несколько простых шагов. Прежде чем приступить к инструкциям по использованию, обязательно ознакомьтесь с ассортиментом моделей YOLO11, предлагаемых Ultralytics. Это поможет вам выбрать наиболее подходящую модель для требований вашего проекта. Вот как вы можете начать.
Шаг 1: Установка
Чтобы установить необходимые пакеты, выполните команду:
Установка
# Install the required packages
pip install deepsparse[yolov8]
Шаг 2: Экспорт YOLO11 в формат ONNX
DeepSparse Engine требует модели YOLO11 в формате ONNX. Экспорт вашей модели в этот формат необходим для совместимости с DeepSparse. Используйте следующую команду для экспорта моделей YOLO11:
Экспорт модели
# Export YOLO11 model to ONNX format
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
Эта команда сохранит yolo11n.onnx
модель на ваш диск.
Шаг 3: Развертывание и запуск инференса
Имея вашу модель YOLO11 в формате ONNX, вы можете развертывать и запускать инференс с помощью DeepSparse. Это можно легко сделать с помощью их интуитивно понятного Python API:
Развертывание и запуск инференсов
from deepsparse import Pipeline
# Specify the path to your YOLO11 ONNX model
model_path = "path/to/yolo11n.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: Оценка производительности
Важно убедиться, что ваша модель YOLO11 оптимально работает на DeepSparse. Вы можете провести бенчмаркинг производительности вашей модели для анализа пропускной способности и задержки:
Бенчмаркинг
# Benchmark performance
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
Шаг 5: Дополнительные возможности
DeepSparse предоставляет дополнительные функции для практической интеграции YOLO11 в приложения, такие как аннотация изображений и оценка набора данных.
Дополнительные возможности
# For image annotation
deepsparse.yolov8.annotate --source "path/to/image.jpg" --model_filepath "path/to/yolo11n.onnx"
# For evaluating model performance on a dataset
deepsparse.yolov8.eval --model_path "path/to/yolo11n.onnx"
Выполнение команды annotate обрабатывает указанное вами изображение, обнаруживая объекты и сохраняя аннотированное изображение с ограничивающими рамками и классификациями. Аннотированное изображение будет сохранено в папке annotation-results. Это помогает обеспечить визуальное представление возможностей обнаружения модели.
После выполнения команды eval вы получите подробные выходные метрики, такие как точность, полнота и mAP (средняя средняя точность). Это обеспечивает всестороннее представление о производительности вашей модели на наборе данных. Эта функциональность особенно полезна для точной настройки и оптимизации ваших моделей YOLO11 для конкретных случаев использования, обеспечивая высокую точность и эффективность.
Обзор
В этом руководстве рассматривается интеграция Ultralytics' YOLO11 с DeepSparse Engine от Neural Magic. В нем подчеркивается, как эта интеграция повышает производительность YOLO11 на платформах CPU, предлагая эффективность уровня GPU и передовые методы разреженности нейронных сетей.
Для получения более подробной информации и расширенного использования посетите документацию DeepSparse от Neural Magic. Вы также можете ознакомиться с руководством по интеграции YOLO11 и посмотреть ознакомительную сессию на YouTube.
Кроме того, для более широкого понимания различных интеграций YOLO11, посетите страницу руководства по интеграции Ultralytics, где вы сможете открыть для себя ряд других интересных возможностей интеграции.
Часто задаваемые вопросы
Что такое DeepSparse Engine от Neural Magic и как он оптимизирует производительность YOLO11?
DeepSparse Engine от Neural Magic — это среда выполнения инференса, предназначенная для оптимизации выполнения нейронных сетей на CPU с помощью передовых методов, таких как разреженность, обрезка и квантование. Интегрируя DeepSparse с YOLO11, вы можете достичь производительности, сравнимой с GPU, на стандартных CPU, значительно повысив скорость инференса, эффективность модели и общую производительность при сохранении точности. Для получения более подробной информации ознакомьтесь с разделом DeepSparse от Neural Magic.
Как я могу установить необходимые пакеты для развертывания YOLO11 с использованием DeepSparse от Neural Magic?
Установка необходимых пакетов для развертывания YOLO11 с помощью Neural Magic's DeepSparse не представляет сложности. Вы можете легко установить их с помощью CLI. Вот команда, которую вам нужно выполнить:
pip install deepsparse[yolov8]
После установки выполните действия, описанные в разделе Установка, чтобы настроить среду и начать использовать DeepSparse с YOLO11.
Как преобразовать модели YOLO11 в формат ONNX для использования с DeepSparse?
Чтобы преобразовать модели YOLO11 в формат ONNX, который требуется для совместимости с DeepSparse, можно использовать следующую команду CLI:
yolo task=detect mode=export model=yolo11n.pt format=onnx opset=13
Эта команда экспортирует вашу модель YOLO11 (yolo11n.pt
) в формат (yolo11n.onnx
) который может быть использован DeepSparse Engine. Дополнительную информацию об экспорте модели можно найти в Раздел экспорта модели.
Как протестировать производительность YOLO11 на DeepSparse Engine?
Оценка производительности YOLO11 на DeepSparse помогает анализировать пропускную способность и задержку для обеспечения оптимизации вашей модели. Вы можете использовать следующую команду CLI для запуска теста:
deepsparse.benchmark model_path="path/to/yolo11n.onnx" --scenario=sync --input_shapes="[1,3,640,640]"
Эта команда предоставит вам жизненно важные показатели производительности. Для получения более подробной информации см. раздел Оценка производительности.
Почему мне следует использовать DeepSparse от Neural Magic с YOLO11 для задач обнаружения объектов?
Интеграция DeepSparse от Neural Magic с YOLO11 предлагает ряд преимуществ:
- Увеличенная скорость инференса: Достигает до 525 FPS, что значительно ускоряет возможности YOLO11.
- Оптимизированная эффективность модели: Использует методы разреженности, обрезки и квантования для уменьшения размера модели и вычислительных потребностей при сохранении точности.
- Высокая производительность на стандартных CPU: Обеспечивает производительность, сравнимую с GPU, на экономичном оборудовании CPU.
- Оптимизированная интеграция: Удобные инструменты для легкого развертывания и интеграции.
- Гибкость: Поддерживает как стандартные, так и оптимизированные по разреженности модели YOLO11.
- Экономичность: Снижает операционные расходы за счет эффективного использования ресурсов.
Чтобы глубже изучить эти преимущества, посетите раздел Преимущества интеграции DeepSparse от Neural Magic с YOLO11.