Задача
Видеосервис с архивом в несколько петабайт: накопились годы контента без нормальной разметки. Нужно переиндексировать всё — детекция сцен, объекты, авто-теги, дедупликация — батчем и экономично. Наивный прогон на dedicated-GPU стоил как чугунный мост и растягивался на месяцы.
Задача упиралась не в модель, а в инфраструктуру: как перемолоть петабайты, не разорившись и не потеряв уже посчитанное при сбоях.
Подход
Собрали распределённый батч-конвейер с автоскейлом на спотовых GPU: декодирование на NVDEC, шардирование по сегментам, обработка партиями. Ключевое — идемпотентность и resume: каждый сегмент считается ровно один раз, а прерывание спотовой ноды не теряет работу, задача просто переедет на другую.
Стоимость держали бюджетом на споты с защитой от прерываний и приоритизацией: горячее — на стабильных нодах, объёмный бэклог — на дешёвых прерываемых. Прогресс пишется чекпойнтами, поэтому конвейер можно остановить и продолжить без потерь.
Стек
Kubernetes · Ray · NVDEC · object storage · spot GPU + Argo
Результат
- 4.8 ПБ архива переобработано в одном прогоне.
- −63% стоимости часа обработки против dedicated-GPU.
- 11× часов видео в сутки относительно прежнего пайплайна.
- Прерывание спотовой ноды не теряет посчитанное.