Inference Engine
Узнай, как движок вывода (inference engine) оптимизирует модели машинного обучения, такие как Ultralytics YOLO26, для развертывания в реальном времени. Ознакомься с советами по производительности для Edge AI.
Inference engine — это специализированный программный компонент, предназначенный для выполнения обученных моделей машинного обучения и генерации прогнозов на основе новых данных. В отличие от фазы обучения, которая фокусируется на изучении паттернов с помощью вычислительно интенсивных процессов, таких как backpropagation, inference engine строго оптимизирован для фазы эксплуатации, известной как model deployment. Его основная цель — выполнять вычисления максимально эффективно, минимизируя inference latency и максимизируя пропускную способность на целевом оборудовании, будь то масштабируемый облачный сервер или работающее от аккумулятора Edge AI устройство. Устраняя избыточность, необходимую для обучения, эти движки позволяют сложным neural networks функционировать в приложениях реального времени.
Link to this sectionКак Inference Engines оптимизируют производительность#
Переход от среды обучения к inference engine обычно включает в себя несколько этапов оптимизации для упрощения структуры модели. Поскольку модели больше не нужно учиться, движок может отбросить данные, необходимые для обновления градиентов, фактически замораживая model weights. Распространенные методы, используемые inference engines, включают слияние слоев (layer fusion), где несколько операций объединяются в один шаг для уменьшения обращений к памяти, и model quantization, которая преобразует веса из форматов с плавающей запятой высокой точности в целые числа с более низкой точностью (например, INT8).
Эти оптимизации позволяют таким продвинутым архитектурам, как Ultralytics YOLO26, работать с невероятно высокой скоростью без значительной потери accuracy. Различные движки часто адаптируются к конкретным аппаратным экосистемам для достижения максимальной производительности:
- NVIDIA TensorRT: Обеспечивает высокопроизводительный вывод на NVIDIA GPUs за счет использования аппаратно-специфичных ядер и оптимизации графа сети.
- Intel OpenVINO: Оптимизирует производительность deep learning на архитектурах Intel, включая CPUs и встроенную графику, что делает его идеальным для edge computing.
- ONNX Runtime: Кроссплатформенный ускоритель, который поддерживает модели в формате ONNX, создавая мост между различными фреймворками и аппаратными бэкендами.
Link to this sectionРеальные приложения#
Inference engines — это скрытые драйверы многих современных удобств ИИ, позволяющие системам computer vision мгновенно реагировать на окружающую среду.
-
Автономные транспортные средства: В беспилотных автомобилях модели object detection должны идентифицировать пешеходов, дорожные знаки и другие транспортные средства за миллисекунды. Inference engine, работающий локально на оборудовании автомобиля, гарантирует, что эта обработка происходит со скоростью real-time inference, поскольку зависимость от облачного соединения привела бы к опасным задержкам.
-
Умное производство: Фабрики используют камеры industrial IoT для контроля продукции на сборочных линиях. Inference engine обрабатывает видеопотоки для выполнения anomaly detection, мгновенно отмечая дефекты. Эта автоматизация сокращает отходы и обеспечивает строгий контроль качества, не замедляя производство.
Link to this sectionInference Engine против фреймворка для обучения#
Полезно различать программное обеспечение, используемое для создания модели, и движок, используемый для ее запуска. Training Framework (такой как PyTorch или TensorFlow) предоставляет инструменты для проектирования архитектур, вычисления потерь и обновления параметров посредством supervised learning. Он отдает приоритет гибкости и возможностям отладки.
Напротив, Inference Engine берет готовый артефакт из фреймворка обучения и отдает приоритет скорости выполнения и эффективности памяти. Хотя ты можешь запускать вывод внутри фреймворка обучения, это редко бывает столь же эффективно, как использование специализированного движка, особенно для развертывания на мобильных телефонах или встроенных устройствах с помощью таких инструментов, как TensorFlow Lite или Apple Core ML.
Link to this sectionИспользование Inference Engine с YOLO26#
Пакет ultralytics абстрагирует значительную часть сложности inference engines, позволяя тебе легко запускать прогнозы. Внутри он управляет предварительной обработкой изображений и выполнением модели. Для пользователей, стремящихся к масштабированию, Ultralytics Platform упрощает процесс обучения и экспорта моделей в оптимизированные форматы, совместимые с различными inference engines.
Следующий пример демонстрирует, как загрузить предварительно обученную модель YOLO26 и запустить inference на изображении:
from ultralytics import YOLO
# Load the YOLO26n model (nano version for speed)
model = YOLO("yolo26n.pt")
# Run inference on an image from a URL
# The 'predict' method acts as the interface to the inference process
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()





