Механизм инференса
Узнайте, как механизмы логического вывода (inference engines) поддерживают ИИ, предоставляя прогнозы в реальном времени, оптимизируя модели и обеспечивая кроссплатформенное развертывание.
Механизм вывода - это специализированный программный компонент, предназначенный для выполнения обученных
моделей машинного обучения и генерирования
прогнозов на основе новых данных. В отличие от обучающих фреймворков, которые сосредоточены на изучении паттернов из огромных массивов данных, механизм вывода
механизм вывода оптимизирован исключительно для операционной фазы, известной как
развертывание модели. Его главная цель - запустить эти
моделей как можно эффективнее, минимизируя
задержек при выводе и максимизации пропускной способности на
целевом оборудовании, будь то мощный облачный сервер или ограниченное по ресурсам
пограничное устройство искусственного интеллекта.
Как работает механизм вывода
Переход от обученной модели к готовому к развертыванию приложению обычно осуществляется с помощью механизма вывода, выполняющего роль
среды выполнения. После обучения модели в таком фреймворке, как
PyTorch или
TensorFlowно они часто бывают тяжелыми и содержат структуры данных
структуры, полезные для обучения, но ненужные для предсказания. Механизм вывода устраняет эти накладные расходы и
применяет строгую оптимизацию к вычислительному графу.
Ключевые методы оптимизации включают:
-
Слияние слоев: Движок объединяет несколько слоев (например, свертку, пакетную нормализацию и
активация) в одну операцию. Это сокращает доступ к памяти и ускоряет выполнение.
-
Уменьшение точности: С помощью
квантования модели, движок преобразует
веса из 32-битного формата с плавающей точкой высокой точности (FP32) в форматы с более низкой точностью, такие как INT8 или FP16. Это
значительно уменьшает размер модели и пропускную способность памяти без существенного снижения
точность.
-
Автоматическая настройка ядра: Такие двигатели, как
NVIDIA TensorRT автоматически выбирают наиболее эффективные
алгоритмы и аппаратные ядра для конкретного
GPU который используется.
-
Управление памятью: Эффективные стратегии повторного использования памяти минимизируют накладные расходы на выделение и
деаллокации памяти во время выполнения, что очень важно для
для выводов в реальном времени.
Общие механизмы вывода
Различные движки адаптированы к конкретным аппаратным экосистемам и целям производительности:
-
NVIDIA TensorRT: высокопроизводительный оптимизатор выводов глубокого обучения и среда выполнения для графических процессоров NVIDIA .
Он широко используется в центрах обработки данных и автомобильных приложениях. Вы можете легко
экспортировать модели Ultralytics в TensorRT для максимальной
скорости.
-
Intel OpenVINO: The
Открытый визуальный вывод и нейросетевая оптимизация
Инструментарий оптимизирует модели для аппаратного обеспечения Intel , включая
процессоры и интегрированные графические процессоры. Он позволяет использовать подход "написать один раз,
развернуть в любом месте" в экосистеме Intel .
-
ONNX Runtime: Кроссплатформенный движок, разработанный компанией Microsoft , который поддерживает
ONNX формат. Он позволяет моделям
обученные в одном фреймворке, эффективно работать на различных аппаратных платформах.
-
TensorFlow Lite: Разработан для мобильных и IoT-устройств,
TensorFlow Lite позволяет выполнять выводы с низкой задержкой на Android, iOS и
встроенных системах.
Применение в реальном мире
Системы выводов - это невидимая основа современных приложений ИИ, позволяющая им мгновенно реагировать на происходящее в мире.
-
Автономное вождение: В автомобильной промышленности транспортные средства полагаются на компьютерное зрение для безопасной навигации
безопасной навигации. Система выводов, работающая на бортовом компьютере автомобиля, обрабатывает видеосигнал, чтобы выполнить
обнаружения объектов - пешеходов, других
транспортных средств и дорожных знаков. Использование такой модели, как YOLO11,
двигатель обеспечивает выполнение этих прогнозов за миллисекунды, позволяя автомобилю автономно тормозить или поворачивать в режиме реального времени
время.
-
Умное производство: На производственных линиях для автоматизированного контроля качества используются системы выводов.
Высокоскоростные камеры снимают изображения продукции на конвейере, а система вывода обрабатывает эти изображения, чтобы
detect дефектов, таких как трещины или смещения. Эта высокопроизводительная система предотвращает отгрузку бракованных изделий
и сокращает расходы на ручной контроль.
Механизм вывода в сравнении с обучающей средой
Важно различать инструменты, используемые для создания моделей, и инструменты, используемые для их запуска.
-
Обучающие фреймворки (например, PyTorch, Keras): Они предназначены для гибкости и экспериментов.
Они поддерживают обратное распространение, обновление градиента и динамические графы, которые необходимы для обучения, но
но требуют больших вычислительных затрат.
-
Механизмы вывода (например, TensorRT, ONNX Runtime): Они рассчитаны на скорость и эффективность. Они
рассматривают модель как статический набор операций, которые нужно выполнить как можно быстрее. Как правило, они не поддерживают
обучение или изучение новых моделей.
Экспорт для выводов
Чтобы использовать конкретный механизм вывода, часто требуется
экспортировать обученную модель в совместимый формат. Например,
Например, экспорт модели YOLO11 в формат ONNX позволяет запускать ее в ONNX Runtime или импортировать в другие механизмы.
from ultralytics import YOLO
# Load a trained YOLO11 model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format for use with ONNX Runtime
# This creates 'yolo11n.onnx' optimized for inference
model.export(format="onnx")
Используя механизм выводов, разработчики могут раскрыть весь потенциал своих моделей ИИ, обеспечивая их бесперебойную работу
бесперебойную работу в производственных средах - от облачных кластеров до пограничных устройств с батарейным питанием.