В 2019 году мы положили заводскую сеть медного комбината. Мы просто попытались прокинуть шестьдесят потоков FullHD-видео в облако для трекинга спецтехники и касок. Местный провайдер лёг намертво от исходящего битрейта, задержка инференса доросла до восьми секунд, а система экстренной остановки конвейера превратилась в генератор посмертных логов. Edge против облака в видеоаналитике: где обрабатывать поток, чтобы не платить за трафик и не ждать — это не тема для панельной дискуссии на IT-конференции. Это вопрос того, выживет ли ваша архитектура при столкновении с физической реальностью или сгорит в первый же день.
Когда стартапы из коворкингов рисуют архитектуру индустриального ИИ, они ставят иконку камеры, проводят от неё красивую пунктирную стрелочку и вешают облачко. В реальности эта стрелочка — прогнившая витая пара, перебитая бронированной дверью КПП, и LTE-модем, теряющий сеть каждый раз, когда мимо проезжает карьерный самосвал.
Облачный инференс для видео — это финансовая чёрная дыра, замаскированная под удобство масштабирования. Давайте считать. Отправка 60 потоков в формате H.264 даже при агрессивном сжатии до 2 Мбит/с — это 120 Мбит/с постоянного исходящего трафика. На промышленном объекте такой uplink либо стоит как крыло самолёта, либо физически недостижим из-за ограничений радиоканала. Вы арендуете инстансы g4dn.xlarge в AWS или GCP, чтобы крутить тяжелый конвейер из YOLO и DeepSORT 24/7. В конце месяца вы смотрите на счет за GPU-часы и исходящий трафик (потому что вам нужно забирать результаты обратно) и понимаете, что дешевле было нанять штат наблюдателей с биноклями.
Канал не просто узкий. Он нестабильный.
Там, где требуется мгновенная реакция, обработка на edge обязательна. Если рабочий падает на движущуюся ленту конвейера, идущую со скоростью три метра в секунду, у вас есть окно в 100-150 миллисекунд на физическое размыкание цепи питания. Если фрейм летит до дата-центра, там распаковывается, прогоняется через нейросеть, а затем по сети возвращается JSON с командой {"action": "stop"}, проходит две секунды. За две секунды человек уезжает на шесть метров в дробилку. Вы больше не пишете систему безопасности. Вы пишете систему автоматической фиксации несчастных случаев.
В тот момент, когда мы в Morana Labs впервые выкатили такую архитектуру на живой карьер, иллюзии о бесконечном облачном скейлинге растворились в уральской пыли.
Железо для edge-вычислений — это отдельный вид боли. Вы не можете просто поставить системный блок с RTX 4090 под стол охраннику. Потребительские кулеры умирают от угольной пыли за месяц. Начинается троттлинг. Ваша модель, которая в лаборатории выдавала 30 FPS, падает до 2 FPS. Система замолкает без предупреждения. Приходится переходить на промышленные мини-серверы: безвентиляторные корпуса с радиаторами размером с кирпич, Nvidia Jetson Orin или платы с тензорными сопроцессорами вроде Hailo-8. Они требуют грамотного under-volting'а и жесткой оптимизации моделей: компиляции в TensorRT, квантизации до INT8, вырезания слоев.
Edge против облака в видеоаналитике: где обрабатывать поток, чтобы не платить за трафик и не ждать
Реальный выход из ситуации — это не фанатичный отказ от серверов, а гибридная архитектура. Вы не отказываетесь от облака, вы меняете тип полезной нагрузки.
Тяжеловесная работа остается на месте. Edge-нода забирает RTSP-поток напрямую с камеры по локальной сети, распаковывает кадры в VRAM, прогоняет через детекторы, трекеры и классификаторы. А вот в центр уходит не видео, а сухая телеметрия. В облако летят легковесные MQTT-сообщения размером в пару сотен байт: таймстемп, ID камеры, класс объекта, координаты bounding box'а, уверенность сети и извлеченные эмбеддинги. Трафик падает на 99.9%. Обычного GPRS-соединения становится достаточно для мониторинга завода в реальном времени.
Видео в центр отправляется только в двух случаях: по запросу оператора (в пониженном битрейте) или при автоматической детекции инцидента. Нейросеть нашла нарушение техники безопасности — edge-нода нарезает пятисекундный MP4-ролик из локального буфера и асинхронно пушит его в S3, когда канал свободен.
Но как только вы переносите инференс на места, вы сталкиваетесь с кошмаром обновления парка устройств. У вас 300 нод, разбросанных по тайге. Вы не можете зайти на каждую по SSH и сделать git pull. Связь обрывается каждую минуту.
Попытка обновить веса PyTorch-модели через скачивание двухгигабайтного Docker-образа по 3G-модему заканчивается тем, что архив бьется на 99%, контейнер не поднимается, и нода превращается в тыкву. Приходится строить систему OTA (Over-The-Air) обновлений: A/B партицирование корневой файловой системы, дельта-обновления весов, локальный фоллбэк на предыдущую версию модели при краше рантайма.
Схема выбора между edge и облаком для ИТ-директора укладывается в жесткий прагматизм:
- Требования к latency: Меньше 200 мс — только локальный инференс. Физику маршрутизации пакетов не обмануть деньгами.
- Доступность канала: Если на одну камеру нельзя гарантировать стабильный 1 Мбит/с на
upload24/7 без потерь пакетов, видео не должно покидать периметр объекта. - Специфика агрегации: Если задача — трекать перемещение одного и того же человека между пятьюдесятью филиалами по всей стране, работает гибрид. Локальные ноды извлекают ReID-векторы (эмбеддинги) и шлют их в центральную базу для кросс-матчинга.
- TCO на горизонте трех лет: Закупка промышленных мини-серверов больно бьет по Capex в первый месяц, но аренда GPU-кластера для 100 камер обгоняет эти затраты уже на восьмой месяц работы.
Вы выбираете перенос вычислений на ребро не потому, что это модный тренд из пресс-релизов. Вы делаете это, потому что альтернатива — платить облачным провайдерам за перегонку шума и молиться, чтобы экскаватор не перерезал оптику во время критического инцидента. И платить за этот выбор придется не деньгами, а тяжелой инфраструктурной инженерией. Если ваша система деплоя не способна пережить отключение электричества прямо во время записи новых весов модели, вы получаете не распределенную сеть ИИ, а просто кучу дорогих кирпичей.