Задержка, топология развёртывания и выбор между реальным временем и пакетной обработкой

Автор: Николай СапуновОбновлено: август 202624 мин чтения
Содержание статьи +

TL;DR

Любая ИИ-фича в видео-продукте живёт внутри треугольника: latency-бюджет (сколько времени у вас есть на ответ), топология развёртывания (где работает модель – на устройстве пользователя, на edge-узле или в облаке) и поза real-time vs batch (модель ждёт полный вход или обязана выдавать частичные ответы потоком). Три выбора не независимы – выберите любые два, и третий зафиксирован. Большинство проектов проваливается не на выборе неправильной модели, а на неверном масштабировании треугольника: live-субтитры с бюджетом 200 мс, поставленные в облачный регион в 1500 км от пользователя, сожгут бюджет на одном сетевом round-trip – как бы быстро Whisper ни работал. В статье – инженерная арифметика треугольника: конкретные latency-числа, расчёт стоимости минуты для каждой топологии и дерево решений, превращающее любой feature-request в план развёртывания за пять минут.

Зачем это вам

Если вы запускаете видеопродукт, следующая ИИ-функция, которую вы внедряете, пройдёт через три архитектурных решения задолго до того, как инженер напишет первую строчку кода. Как быстро должен прийти ответ? Где в сети размещена модель? Видит ли модель входные данные как поток или как готовый файл? Эти три параметра определяют стоимость минуты, уровень конфиденциальности, операционную сложность и то, выдержит ли функция первые выходные в продакшене. Эта статья – шпаргалка, которой должны пользоваться продукт, инженерия и финансы, чтобы на вопрос «можем ли мы добавить эту ИИ-функцию?» ответ приходил за день, а не за квартал.

Треугольник

Три выбора лежат в основе любой видео-ИИ-функции. Выберите любые два – третий будет определён автоматически.

Latency-бюджет – это время между поступлением входных данных и отправкой ответа. Для real-time-звонка оно составляет 100–200 мс end-to-end. Для генерации резюме встречи – до пяти минут. Для индексации архива в поиске – часы. Бюджет задаёт пользовательский опыт, а не модель: модель должна укладываться в бюджет, а не наоборот.

Топология развёртывания – где модель физически работает. В 2026 году существует четыре слоя: on-device (телефон, ноутбук, камера пользователя), edge (сервер в той же метро-зоне, что и пользователь, – CDN-узел, региональный GPU-пул, 5G MEC-площадка), in-region cloud (GPU-гиперскейлера на том же континенте) и cross-region cloud (GPU где-то ещё на планете). Каждый слой добавляет фиксированную стоимость в миллисекундах и меняет стоимость минуты на порядок.

Поза real-time vs batch – должна ли модель выдавать частичные ответы, пока входной поток ещё не завершён, или может дождаться полного ввода перед обработкой. Streaming-версия Whisper выдаёт частичные транскрипты каждые 300 мс, тогда как batch-версия Whisper ждёт окончания записи и выдаёт точный транскрипт целиком. Streaming- и batch-версии одной и той же модели – это разные инженерные deliverables, с разными кодовыми путями и разными характеристиками качества.

Треугольник жёсткий. Бюджет в 100 мс вынуждает использовать модель на устройстве или на edge, что требует компактной модели и real-time-стриминга с пониженным качеством. Бюджет в 5 минут позволяет использовать облачную обработку в регионе, крупную модель и пакетную обработку с пиковым качеством. Попробуйте нарушить одну из вершин – две другие рухнут.

Остальная часть статьи последовательно рассматривает каждую вершину, а затем демонстрирует дерево решений, связывающее их воедино.

Вершина 1 – Бюджет задержки

Latency – это время от «пользователь что-то сделал» до «результат показан пользователю». Для видео-ИИ-фич бюджет ставит то, что пользователь делает, а не то, на что способна модель.

Real-time-разговорная фича – live-субтитры, live-перевод, ИИ-агент в звонке – имеет бюджет 200–500 мс end-to-end. Выше – мозг пользователя регистрирует лаг, и фича ощущается сломанной. Live-субтитры конкретно нуждаются в partial-словах внутри 300 мс от речи и в финализированном тексте внутри одной секунды; streaming-ASR-сообщество называет это partial_latency и final_latency, и бюджет на оба числа стабилен с 2020 года.

Near-real-time-фича – in-call action items, mid-meeting-резюме, live-модерация – имеет бюджет 1–10 секунд. Пользователь ещё внутри сессии, но соглашается на пару секунд задержки, потому что результат обогащает звонок, а не управляет им. Большинство «умных meeting»-фич живёт здесь.

Post-session-фича – резюме встречи, главы, highlight-ролик, полнокачественный транскрипт – имеет бюджет 30 секунд – 5 минут. Пользователь оффлайн, листает meetings-страницу, ожидая, что результат готов к моменту клика в запись. Быстрее 30 секунд – впустую потраченная инженерия; медленнее 5 минут – support-тикеты.

Архивная фича – мультимодальный поисковый индекс, проверка brand safety по VOD-каталогу, генерация эмбеддингов для рекомендаций – работает с бюджетом в часы и дни. Это оффлайн-задача, выполняется батчами и периодически переобучается. Задержка измеряется по тому, успел ли ночной джоб завершиться к 6 утра.

Числа ниже показывают, что позволяет каждый бюджет с физической точки зрения. Они получены из production-развёртываний, а не из изолированных бенчмарков модели.

ФичаБюджетЖёсткий верхний пределИсточник предела
Live-субтитры (partial)300 мс500 мсЧитатель успевает за речью
Live-субтитры (final)1.0 с1.5 сUI-обновление ощущается живым
Live-перевод800 мс1.5 сТуда-обратно в разговоре
ИИ-агент в звонке200–500 мс800 мсЕстественная очередь реплик
Размытие фона, на кадр33 мс50 мс30 fps capture loop
In-call action items3–10 с30 сСкролл бокового панеля
Резюме встречи30 с – 5 мин10 минОткрытие страницы записи
Highlight-ролик1–10 мин30 минNotification UX
Индекс поиска по архивучасыnightlyРитм ежедневной пересборки

Бюджет – это первое, что вы указываете. От него зависит каждое последующее решение в этой статье.

Вершина 2 – Топология развёртывания

Зная бюджет, вы выбираете слой, в котором размещается модель. У каждого слоя – фиксированная сетевая задержка в миллисекундах и фиксированная стоимость минуты работы.

Слой A – On-device

Модель работает на железе пользователя – GPU/NPU телефона, GPU/CPU ноутбука, браузер через WebGPU, SoC IP-камеры, AR/VR-гарнитура. Сетевая стоимость – ноль; round-trip никогда не покидает устройство.

Что здесь живёт: размытие фона, виртуальные фоны, шумоподавление на устройстве, beauty-фильтры, коррекция взгляда, распознавание пробуждающих слов на устройстве, компактные ASR-модели для живых субтитров, простые object-детекторы в качестве префильтров для камер наблюдения. Общее свойство – модель умещается в десятки–сотни мегабайт и работает в ваттном диапазоне мощности.

Рантаймы – самый нижний слой стека, о котором может слышать неинженер. На устройствах Apple это Core ML, на Android – LiteRT (ранее TensorFlow Lite), в браузере – WebGPU в связке с ONNX Runtime Web или transformers.js, на Linux-устройствах на краю сети – TensorRT (для NVIDIA Jetson), OpenVINO (для Intel) или QNN (для Qualcomm). В 2025 году Google LiteRT объединил кросс-платформенную GPU-логику: теперь он работает через единый ML Drift-бэкенд, совместимый с OpenCL, Metal, Vulkan и WebGPU, а GPU-делегат стал в 1,4 раза быстрее предыдущего TFLite GPU-делегата (Google Developers Blog, 2025).

Экономика инвертирована относительно облака. Операционная стоимость за минуту – ноль: каждый цикл выполняется на железе, купленном клиентом. Вы платите за это инженерной сложностью на старте – модель адаптируется под каждую поддерживаемую платформу (iOS, Android, Chrome, Safari, Edge, Electron), остаётся достаточно компактной, чтобы работать даже на самых слабых устройствах в install-базе, и корректно деградирует, когда GPU занят.

Слой B – Edge

Модель работает на сервере, географически близком к пользователю, – та же метро-зона или страна, обычно 5–30 мс round-trip. Четыре под-типа edge в 2026 году: CDN edge-узел (Cloudflare Workers AI, Akamai EdgeWorkers AI, Fastly Compute), площадка 5G mobile edge compute (MEC), региональный GPU-пул (ближайший к пользователю регион гиперскейлера или региональный облачный провайдер) и on-premise-инфраструктура для enterprise-инсталляций.

Что здесь живёт: live-субтитры в региональном звонке, контент-модерация в региональном SFU, real-time-перевод, LiveKit Agents worker, заходящий в звонок, surveillance-аналитика на локальном сервере объекта, telemedicine-инференс на стойке внутри здания больницы. Общее свойство – round-trip latency достаточно мала для real-time, но используется железо общего назначения и оно разделяется между задачами.

Edge привлёк наибольшее внимание в 2026 году, поскольку история экономии затрат оказалась наиболее убедительной. NVIDIA AI Grid reference design – распределённый edge-инференс через телеком-сети – демонстрирует на 76% более низкую стоимость инференса при пиковых нагрузках и стабильно достигает цели задержки менее 500 мс по всей географии (NVIDIA GTC 2026). Развёртывание системы видеонаблюдения из 1000 камер, выполняющих детекцию на edge-устройствах, снижает нагрузку на backbone-сеть с десятков гигабит до единичных, поскольку в центр передаются только алерты и короткие клипы, а не необработанное видео.

Компромисс между надёжностью и патчингом: при отказе edge-узла CDN происходит переключение на следующий регион – с добавлением задержки round-trip в 30–80 мс, что может нарушить работу live-перевода, если у системы был узкий бюджет на задержки. Edge-уровень – самый уязвимый перед операционными разрывами между ситуацией «демо работает» и «продакшен масштабно выдерживает региональный сбой».

Слой C – облачные сервисы в регионе

Модель работает на GPU-гиперскейлера на том же континенте, что и пользователь, – AWS us-east-1 для США, eu-west-1 для Европы. Сетевой round-trip – 30–100 мс в зависимости от расположения пользователя и ISP.

Что здесь живёт: большинство production-AI-API, которым не нужен бюджет ниже 200 мс, пакетная распознавание речи для транскрипции звонков, проходы VLM по видео встреч, вызовы генеративных видео-API (Sora, Runway, Veo), генерация эмбеддингов для поиска по архивам. Общее свойство – модель слишком велика для CDN edge, но допустимый бюджет задержки позволяет континентальный round-trip.

Рантаймы здесь – те inference-серверы, которые ML-команды реально сравнивают: vLLM для LLM и VLM (42 000 запросов в месяц и растёт в 2026 – de facto serving-движок для open-weights LLM), Triton Inference Server для смешанных развёртываний, TensorRT-LLM для NVIDIA-специфичного сжатия и управляемые предложения вроде Modal, Replicate, Together AI и Fireworks – «я не хочу сам запускать serving-слой».

Облако – место, где стоимость минуты работы наиболее заметна. NVIDIA L4 по модели on-demand стоит $0.65 в час – это $0.011 за минуту; A100 – $1.50 в час, или $0.025 за минуту; H100 – $2.50 в час, что составляет $0.042 за минуту. Реальная цена минуты видео зависит от количества потоков, использующих GPU: модель сегментации 720p30 способна обрабатывать сотни одновременных потоков на одном L4, тогда как 4K-генеративная видеомодель занимает весь H100 даже для одного 10-секундного клипа.

Слой D – Облачная инфраструктура с поддержкой нескольких регионов

Модель работает в регионе на другом континенте от пользователя. Сетевой round-trip – 100–300 мс. Почти никогда не правильный ответ для видео-фич, но иногда вынужден регулированием (единственная EU-hosted-модель живёт в eu-central-1) или доступностью модели (фронтир-модель развёрнута только в us-west-2).

Здесь живут редкие резервные пути, регуляторные граничные случаи, ограничения доступности модели в период запуска. Если ваша функция реального времени регулярно зависит от межрегионального взаимодействия – архитектура построена неправильно: либо нужно использовать более лёгкую модель в регионе, либо признать, что функция не является real-time.

Рисунок 1. Четыре слоя топологии выстроены от локального уровня on-device вверх – через metro-edge, in-region cloud и cross-region cloud. Каждый слой добавляет фиксированную задержку в миллисекундах и изменяет общую стоимость использования за минуту.

Вершина 3 – Реальное время против пакетной обработки

Когда бюджет и топология определены, третье решение – выбрать между streaming-моделью и batch. Эти подходы дают разные результаты, а не являются разными конфигурациями одной и той же модели.

Real-time-модель (streaming) выдаёт частичные ответы, пока входные данные ещё поступают. Whisper-стриминг выдаёт частичные транскрипты каждые 300 мс; Pyannote-стриминг выдаёт метки диаризации кадр за кадром; стриминговая VLM для видео выдаёт бегущее описание сцены по мере поступления кадров. У реального времени три жёстких требования: модель обязана выдать частичный ответ до завершения получения полного входа; она должна уложиться в фиксированный лимит задержки независимо от нагрузки; и любые сбои мгновенно заметны пользователю (5-секундная задержка в живых субтитрах – это уже тикет в поддержку).

Batch-модель ожидает полный входной сигнал. Batched Whisper-Large-v3 ждёт окончания записи, обрабатывает данные end-to-end и выдаёт транскрипт качества, недостижимого для любой стриминговой версии. У batch-подхода обратные свойства: он допускает неограниченную длину входных данных, может попадать в очередь при пиковых нагрузках, а его сбои проявляются как «результат пришёл позже, чем ожидал оператор» – раздражает, но не фатально.

Три инженерных следствия вытекают из этой разницы. Во-первых, одно и то же имя модели (Whisper, Pyannote, Qwen-VL) может иметь два принципиально разных production-развёртывания – разные кодовые пути, стратегии разбиения на чанки, настройки beam search и заметную разницу в качестве. Во-вторых, один и тот же продукт почти всегда требует оба варианта: субтитры в реальном времени во время звонка (real-time, быстро и грубо) и чистый транскрипт после звонка (batch, медленно и точно). Нужно поддерживать оба режима и плавно переключать пользователя на стыке. В-третьих, воспринимать live-результат как окончательный – самая распространённая ошибка на этом уровне: вы сохраняете в записи ухудшенную версию транскрипта навсегда.

Арифметика 30 fps беспощадна. На 30 кадрах в секунду системе отводится 33 мс на обработку каждого кадра. Если инференс занимает больше времени, система либо теряет кадры (что вызывает заметный рывок), либо вводит задержку (ощутимую лаги), либо и то, и другое (Ultralytics, Real-Time Inference glossary, 2026). YOLO26-N, представленная в январе 2026 года, обеспечила ускорение CPU-инференса на 43% по сравнению с YOLO11-N – именно для того, чтобы уложиться в этот временной бюджет на устройствах без GPU.

Решение – не «или-или», а вопрос пропорций. Продукт телемедицины хочет субтитры в реальном времени во время консультации, диаризацию и кодирование медицинской карты после неё, а также ночной архивный проход для аудита биллинга. Три deliverables, три разных развёртывания, одна общая product-поверхность.

Рисунок 2. Real-time- и batch-ИИ – это разные инженерные deliverables. То же имя модели (Whisper, Pyannote, Qwen-VL) живёт в двух production-развёртываниях с разными код-путями и разными envelope качества.

Треугольник на практике – три разобранных примера

Треугольник обретает конкретику, когда в него подставляются числа. Ниже – три коротких примера, по одному для каждой типовой формы видео-ИИ.

Пример 1 – Live-субтитры в звонке 1-на-1

UX: субтитры появляются на экране во время речи, частичные слова – в течение 300 мс, окончательные – в течение 1 секунды.

Треугольник:

  • Бюджет – partial_latency 300 мс, final_latency 1,0 с.
  • Топология – edge или облачный in-region. On-device не подходит: модели требуют более 100 МБ, а самые компактные on-device-ASR значительно уступают по WER.
  • Поза – стриминг.

Production-стек: Deepgram Nova-3 или AssemblyAI Universal-Streaming на стороне API (оба показывают задержку partial-результатов около 300 мс при нагрузке в продакшене в 2026 году); либо self-hosted Whisper-medium-streaming на региональном L4 с обёрткой chunked-overlap (faster-whisper или WhisperX). Внутрирегиональный round-trip-оверхед добавляет 30–80 мс, что укладывается в допустимые пределы. Стоимость составляет около $0.0048 за минуту аудио для Deepgram Nova-3 или примерно $0.001 за минуту при self-hosted решении при высокой утилизации. (Источник: публичная страница цен Deepgram, 2026.)

Пример 2 – Размытие фона в звонке

UX: размытие включается мгновенно, лицо пользователя остаётся чётким, фон сглажен, дропов кадров нет, видимого лага нет.

Треугольник:

  • Бюджет – 33 мс на кадр при 30 fps.
  • Топология – на устройстве. Edge не подходит: 50-миллисекундный round-trip съедает весь бюджет кадра.
  • Поза – в реальном времени, кадр за кадром.

Production-стек: MediaPipe Selfie Segmentation v2 через WebGPU в Chrome и Edge, Core ML в Safari и macOS, LiteRT на Android. Обработка одного кадра – около 3 мс на GPU класса M в ноутбуке, около 8 мс на среднем Android-устройстве. Стоимость эксплуатации в минуту – $0, модель работает на уже имеющемся у клиента оборудовании. Инженерные затраты при запуске – сборка под каждую платформу и плавное понижение качества (graceful degrade) на слабых устройствах. Это классический пример on-device-решения.

Пример 3 – Резюме встречи после звонка

UX: когда пользователь открывает страницу встречи после звонка, резюме, главы и action items уже там.

Треугольник:

  • Бюджет – от 30 секунд до 5 минут.
  • Топология – облачная инфраструктура в регионе.
  • Поза – пакетная обработка.

Production-стек: после завершения сессии джоб выбирает запись из object storage, запускает Whisper-Large-v3 в батч-режиме на региональном A100, передаёт транскрипт во фронтирный LLM (GPT-5 / Claude Opus 4 / Gemini 2.5 Pro) для генерации резюме и глав, а затем записывает результат обратно в метаданные записи. Стоимость обработки одного часа встречи – примерно $0.10–0.30 в зависимости от выбранной модели. (Источник: публичные цены каждого вендора в 2026.) Джоб прерываемый и помещается в очередь; если в часы пик нагрузка растёт, результаты приходят с задержкой до 5 минут вместо 30 секунд – при этом пользователь не замечает сбоев.

Дерево решений – превращение feature-requests в развёртывание

В продакшене вы не строите треугольник с нуля для каждой фичи. Вы используете дерево решений. Ниже приведённое дерево объединяет три вершины в пятишаговую процедуру.

Шаг 1. Какой у вас бюджет задержки UX? Выберите: ≤500 мс (реальное время, разговорный режим), 1–30 с (почти реальное время), 30 с – 10 мин (после сессии), часы – дни (архив).

Шаг 2. Зная бюджет, каков максимально допустимый сетевой round-trip? Вычтите время round-trip из общего бюджета, чтобы получить окно для инференса. При бюджетах ≤500 мс окно для инференса становится крайне узким (≤100 мс после вычитания времени на сеть), что означает: модель должна быть либо on-device, либо на edge.

Шаг 3. Зная окно инференса и размер модели, какой топологический слой подходит? Модель сегментации объёмом 50 МБ работает на устройстве; VLM с 7 миллиардами параметров – на региональном A100; LLM с 70 миллиардами – на H100. Если модель не помещается ни в один слой, значит, либо бюджет выбран неверно, либо модель неподходящая – в этом случае стоит выбрать модель поменьше или более медленную фичу.

Шаг 4. Зная топологию, каков envelope стоимости минуты при ожидаемом уровне concurrency? On-device – $0; edge GPU – $0,0003–0,003/мин на поток в зависимости от железа и утилизации; cloud GPU – $0,001–0,05/мин на поток. Умножьте на ожидаемое число одновременных потоков, чтобы получить месячный счёт.

Шаг 5. Streaming или batch? Если пользователь видит partial-выход до конца входа – streaming. Иначе – batch – и помните, что streaming- и batch-версии одной модели – это разные deliverables.

Если вы не можете последовательно ответить на все пять шагов, фича ещё не готова к развёртыванию – сделайте шаг назад и уточните спецификацию продукта.

Рисунок 3. Пятишаговое дерево решений превращает любой новый запрос на фичу в план развёртывания. Если на каком-либо шаге невозможно дать однозначный ответ без противоречий, значит, у фичи ещё нет deployable-формы.

Частые ошибки – три повторяющихся паттерна

Три ошибки топологии повторяются в проектах видео-искусственного интеллекта. Каждую из них можно исправить перерисовкой треугольника, а не настройкой модели.

Первая – on-device-как-облако: модель запускают в облаке, потому что «ИИ-команда работает в облаке», хотя правильным решением было бы on-device. Размытие фона – классический пример: рендеринг на облачном GPU обходится в $0,001–0,01 в минуту на поток и добавляет задержку из-за сетевого round-trip, тогда как та же модель на устройстве работает бесплатно и без задержек. Ошибка усиливается с масштабированием; решение – обсудить архитектуру (например, нарисовать треугольник) до того, как ИИ-команда начнёт реализацию фичи.

Вторая – live-резюме: пытаются генерировать резюме в реальном времени, хотя правильным решением является пакетная обработка после звонка. Live-резюме всегда хуже post-call (входные данные неполные) и обходится дороже (модель работает непрерывно, а не однократно). Лекарство – оставить стриминг для субтитров и action items, а резюме перенести в пакетную обработку после звонка.

Третья – cross-region по умолчанию: каждую модель развёртывают в us-east-1, потому что там команда, а потом европейские пользователи получают 200-мс трансатлантический round-trip. Для real-time-фич это фатально. Лекарство – развернуть регионально и принять операционную сложность, либо признать, что фича не real-time для пользователей вне региона.

Где здесь Фора Софт

Фора Софт разрабатывает видеопродукты с 2005 года – видеоконференции, OTT, трансляцию в прямом эфире, видеонаблюдение, электронное обучение, телемедицину, AR/VR – и для каждой ИИ-функции в этих продуктах проходит треугольник «задержка – топология – масштаб». В конференциях мы применяем размытие и шумоподавление на устройстве на уровне захвата, edge-ASR для живых субтитров и перевода, а также региональные пакетные задачи для создания сводок после звонков. В системе видеонаблюдения используется многоуровневая архитектура: фильтрация на краю сети, подтверждение на региональном уровне и облачный архивный аудит. Этот треугольник – тот самый, который мы рисуем на доске в начале каждого ИИ-проекта: до выбора модели, до определения стоимости и до первого PR.

Главное

  • У каждой ИИ-фичи есть latency-бюджет, топология развёртывания и поза real-time vs batch; выберите любые два – третий вынуждается.
  • Latency-бюджет ставит UX, а не модель – модель должна вписаться в бюджет.
  • В 2026 году существует четыре слоя топологии: on-device, edge, in-region cloud, cross-region cloud – каждый добавляет фиксированную сетевую стоимость и меняет стоимость минуты на порядок.
  • Real-time- и batch-версии одной модели – разные deliverables; почти любой продукт хочет оба, переключаясь на стыке сессии.
  • Пятишаговое дерево решений превращает любой feature-request в план развёртывания; если шаг не отвечается, нужно дорабатывать product spec, а не ИИ-команду.

Что читать дальше

Строите такую систему?

Подберём параметры кодирования под ваш контент и посчитаем стоимость доставки до старта разработки.