Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Назад к глоссарию Ultralytics

Inference Latency

Задержка инференса — время, за которое модель преобразует один вход в предсказание. Рассматриваются её причины, способы измерения и компромисс между задержкой и пропускной способностью.

Задержка инференса — это время, которое обученная модель машинного обучения затрачивает на преобразование одного входа, например кадра с камеры или текстового запроса, в предсказание. Обычно её измеряют в миллисекундах (мс); она определяет, насколько быстро система может реагировать: камера, снимающая 30 кадров в секунду, выдаёт новый кадр каждые 33,3 мс, поэтому детектор, которому нужно больше времени, отстаёт от потока и не может обеспечить инференс в реальном времени. Задержку указывают либо только для прямого прохода, либо для всего процесса — от исходного входа до пригодного для использования результата. В производственных системах отслеживают перцентили, например медиану (p50) и 99-й перцентиль (p99), поскольку несколько медленных ответов могут быть не менее важны, чем среднее значение.

Из чего складывается задержка инференса#

Каждое предсказание проходит несколько этапов. Предобработка декодирует, изменяет размер и нормализует входные данные. Прямой проход выполняет нейросеть; его стоимость растёт с увеличением числа FLOPs, разрешения входных данных и числовой точности, а скорость зависит от процессора — CPU, GPU или нейронного процессора (NPU). Постобработка преобразует исходные выходные данные в результаты: для детектора — декодирует рамки и выполняет подавление немаксимумов (NMS). Облачный API добавляет время сетевого обмена и ожидания запроса в очереди. Поэтому периферийный ИИ запускает модели на устройстве, которое собирает данные. Первый вызов также медленнее последующих: при первом использовании фреймворки выделяют память, загружают веса в кэш и выбирают ядра.

Оборудование и среда выполнения меняют время прямого прохода на порядок и более: Ultralytics YOLO26 nano обрабатывает изображение COCO размером 640 пикселей в среднем за 38,9 мс с ONNX на CPU и за 1,7 мс с TensorRT на GPU NVIDIA T4. Ultralytics YOLO записывает время каждого этапа для каждого предсказания в атрибут speed результата, а режим бенчмаркинга повторяет измерение для каждого формата экспорта:

from ultralytics import YOLO

# Load the smallest YOLO26 detection model
model = YOLO("yolo26n.pt")

# Predict on one image
results = model("https://ultralytics.com/images/bus.jpg")
result = results[0]

# Per-image time in milliseconds for each stage of the pipeline
for stage, ms in result.speed.items():
    print(f"{stage}: {ms:.1f} ms")

Цикл выводит время предобработки, инференса и постобработки; их сумма составляет задержку модели для этого изображения на текущем устройстве.

Как точно измерять задержку#

Сравнивать показатели задержки можно только при одинаковом способе измерения. Для надёжных измерений отбрасывают несколько прогревочных запусков, замеряют время многих запусков и указывают медиану и перцентиль хвоста распределения, а не результат одного запуска. При работе с GPU таймер должен дождаться завершения вычислений на устройстве, например с помощью torch.cuda.synchronize(), поскольку запуск ядер выполняется асинхронно и слишком раннее считывание часов завершится до окончания работы. Размер входных данных, размер пакета, точность и устройство должны соответствовать целевому развёртыванию: задержка модели на GPU центра обработки данных мало что говорит о её задержке на телефоне. FLOPs позволяют оценить стоимость без учёта оборудования, однако модели с одинаковым количеством FLOPs могут работать на одном устройстве с заметно разной скоростью.

Задержка инференса и пропускная способность#

Пропускная способность — это количество входных данных, которые система обрабатывает за единицу времени, например изображений или токенов в секунду. Часто она растёт в ущерб задержке. Больший пакет позволяет эффективнее загружать оборудование и повышает пропускную способность, но каждый входной элемент в пакете ждёт завершения обработки всего пакета, поэтому время ответа на каждый запрос увеличивается:

import time

import torch
import torchvision

# A ResNet-18 image classifier in inference mode on the CPU
model = torchvision.models.resnet18().eval()

for batch in [1, 2, 4, 8]:
    x = torch.randn(batch, 3, 224, 224)
    with torch.inference_mode():
        model(x)  # warmup run, not timed
        times = []
        for _ in range(20):
            start = time.perf_counter()
            model(x)
            times.append(time.perf_counter() - start)
    latency = sorted(times)[len(times) // 2]  # median seconds per batch
    print(f"batch {batch}: {latency * 1e3:5.1f} ms per batch, {batch / latency:4.0f} images/s")

На CPU ноутбука увеличение пакета с 1 до 8 подняло пропускную способность со 168 до 220 изображений в секунду, а время обработки пакета выросло с 6 до 36 мс. Поэтому интерактивные системы, такие как системы помощи водителю и голосовые помощники, работают с размером пакета 1, а автономные задачи, например индексация видеоархива, активно используют пакетную обработку. Серверы LLM применяют непрерывную пакетную обработку, добавляя запросы в уже обрабатываемый пакет и удаляя их из него, чтобы поддерживать высокую пропускную способность, не заставляя каждого пользователя ждать обработки полного пакета.

Снижение задержки инференса#

Самый большой прирост обычно даёт сокращение вычислений: уменьшение варианта модели, снижение разрешения входных данных или уменьшение числа весов с помощью прунинга модели. Квантование модели до FP16 или INT8 удешевляет каждую оставшуюся операцию на оборудовании с быстрыми блоками низкой точности. Экспорт в оптимизированный движок инференса, например TensorRT, OpenVINO или ONNX Runtime, объединяет слои и выбирает самые быстрые ядра для устройства. Запуск модели непосредственно на устройстве устраняет сетевой обмен, который при мобильном подключении часто занимает десятки миллисекунд.

В каких случаях важна задержка#

  • Большие языковые модели (LLM): чат-сервисы отслеживают время до первого токена, которое пользователи ощущают как быстроту отклика, и время генерации одного выходного токена, определяющее скорость потоковой выдачи. Спекулятивное декодирование сокращает второе, проверяя несколько предварительно сгенерированных токенов за один прямой проход.
  • Промышленный контроль качества: Камера над конвейером должна классифицировать каждую деталь до того, как та достигнет механизма отбраковки, поэтому задержка определяет максимальную скорость линии.
  • Автономные транспортные средства: Системы восприятия, планирования и управления работают в условиях жёсткого ограничения по времени. При скорости 100 км/ч автомобиль проезжает 2,8 метра за каждые 100 мс задержки.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

Узнай, как Ultralytics YOLO обеспечивает компьютерное зрение в спорте: отслеживание игроков и мяча, аналитика результатов, полезные выводы для тренеров и реабилитация спортсменов.
Подробнее
Компьютерное зрение для аэросъёмки

Компьютерное зрение для аэросъёмки

Превращай снимки с дронов и аэрофотоснимки в полезные данные в реальном времени для сельского хозяйства, аквакультуры, охраны природы и геопространственного анализа с Ultralytics YOLO.
Подробнее
Компьютерное зрение в аэрокосмической отрасли

Компьютерное зрение в аэрокосмической отрасли

Применяй компьютерное зрение в аэрокосмической отрасли с Ultralytics YOLO: для осмотра самолётов, обнаружения посторонних предметов на взлётно-посадочных полосах, наземного обслуживания аэропортов и выявления дефектов композитных материалов.
Подробнее
Компьютерное зрение в сфере безопасности

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

Создавай более интеллектуальные машины с моделями Ultralytics YOLO. ИИ на базе компьютерного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Подробнее
Компьютерное зрение в логистике

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ повышает безопасность дорожного движения, улучшает помощь водителю и автоматизацию автомобилей, делая дороги умнее.
Подробнее
Компьютерное зрение в сельском хозяйстве

Компьютерное зрение в сельском хозяйстве

Внедряй ИИ для компьютерного зрения в умное сельское хозяйство с моделями Ultralytics YOLO. Используй их для мониторинга посевов, отслеживания скота и точного земледелия, чтобы повысить урожайность и эффективность.
Подробнее

Давай вместе строить будущее ИИ!

Начни свой путь в будущее машинного обучения