Inference (инференс, вывод модели)
Inference (инференс, вывод модели) — процесс применения обученной модели машинного обучения к новым данным для получения результата. Во время inference модель не обучается, а использует уже полученные в процессе обучения параметры для выполнения поставленной задачи.
Например, модель компьютерного зрения получает изображение на вход и определяет, какие объекты на нем присутствуют, к каким классам они относятся или где находятся.
Как работает Inference
Типовая последовательность выглядит следующим образом:
Входные данные → предварительная обработка → модель → вычисление → результат
В качестве входных данных могут использоваться:
- изображения;
- видеокадры;
- текст;
- аудио;
- числовые данные;
- данные с датчиков.
Результат зависит от типа модели. Это может быть класс объекта, вероятность принадлежности к классу, координаты объекта, сегментационная маска, прогноз числового значения или другой результат.
Inference и обучение модели
Inference необходимо отличать от обучения модели (training).
Во время обучения модель анализирует подготовленный датасет и изменяет свои параметры, чтобы научиться решать поставленную задачу.
Во время inference параметры модели уже зафиксированы. Новые данные проходят через модель, после чего система получает результат.
Упрощенно:
Training: данные → обучение → модель
Inference: новые данные → обученная модель → результат
Inference в компьютерном зрении
В компьютерном зрении inference используется для анализа изображений и видео с помощью обученных моделей.
Например, модель может выполнять:
- Object Detection — определять наличие и положение объектов;
- Classification — определять класс изображения или объекта;
- Segmentation — выделять области изображения;
- Tracking — отслеживать объекты между последовательными кадрами.
При обработке видео inference выполняется последовательно для отдельных кадров или групп кадров. Скорость обработки может измеряться в кадрах в секунду (FPS), а задержка между поступлением данных и получением результата является одним из важных параметров системы.
Где выполняется Inference
Inference может выполняться на разных типах вычислительной инфраструктуры:
- центральном процессоре (CPU);
- графическом процессоре (GPU);
- специализированных ускорителях AI;
- бортовом компьютере;
- сервере;
- облачной инфраструктуре.
Выбор места выполнения зависит от требований к производительности, задержке, доступной вычислительной мощности и подключению к сети.
Edge Inference
Edge Inference — выполнение inference непосредственно рядом с источником данных, например на локальном компьютере или устройстве.
Для систем, работающих с камерами и другими сенсорами, это позволяет анализировать данные без обязательной передачи исходных материалов на удаленный сервер.
Например, изображение может поступить с камеры на бортовой компьютер, где обученная модель выполнит inference и передаст дальше только результат анализа или необходимые данные.
Inference в БПЛА
В системах БПЛА inference применяется для анализа данных непосредственно во время выполнения задачи.
Например, бортовой компьютер может получать изображения с камеры и запускать обученную модель компьютерного зрения для обнаружения и классификации объектов, контроля состояния инфраструктуры или анализа сельскохозяйственных участков.
При бортовом inference вычисления выполняются непосредственно на аппарате. Это позволяет получать результаты обработки без необходимости постоянно передавать исходное изображение на внешнюю вычислительную систему.
Для таких систем важны:
- скорость inference;
- задержка обработки;
- вычислительная мощность;
- объем оперативной памяти;
- энергопотребление;
- размер и оптимизация модели;
- стабильность работы на целевом оборудовании.
Оптимизация Inference
Одна и та же модель может требовать разного количества вычислительных ресурсов в зависимости от архитектуры и способа запуска.
Для ускорения inference применяются различные методы оптимизации, включая:
- уменьшение размера модели;
- квантование;
- оптимизацию вычислительного графа;
- использование специализированных AI-ускорителей;
- оптимизацию формата модели;
- снижение разрешения входных данных.
При этом ускорение inference может сопровождаться изменением точности модели, поэтому производительность и качество результата обычно оцениваются совместно.
Кратко
Inference — применение уже обученной модели машинного обучения к новым данным для получения результата. В компьютерном зрении inference используется для анализа изображений и видео, а в системах БПЛА может выполняться непосредственно на бортовом компьютере для получения результатов анализа в процессе работы системы.