К содержимому
MoranaLabs
Медиа / Видеосервис — 20 сент. 2025 г.

Конвейер аналитики видеоархива петабайтного масштаба 

На петабайтах узкое место не GPU, а чтение данных и счет за их хранение. Мы перестроили конвейер так, чтобы дорогая модель видела доли процента кадров, и стоимость обработки часа видео упала на 63%.

4,8 ПБ
архива обработано
−63 %
стоимость часа обработки
11×
часов видео в сутки
стенд · запускается здесь

Стенд: цена часа обработки

Тут сравниваются две машины, а не человек с машиной, поэтому строки про высвобожденные часы нет. Есть цена часа видео и объем, на котором она такая.

ПРЕЖНИЙ КОНВЕЙЕРНОВЫЙ КОНВЕЙЕРГРАНИЦА 26 тыс.8 000400 тыс. часов видео в месяц178 ₽
себестоимость конвейера за месяц: 2,22 млн ₽
  • постоянная часть1,35 млн ₽
  • инференс и хранение816 тыс. ₽
  • человек на проверке58 тыс. ₽

Разница 3,82 млн ₽ в месяц, внедрение 5,6 млн ₽ возвращается за 1,5 мес.

23,16 ₽
новый конвейер: цена за час видео
63,00 ₽
прежний конвейер: цена за час видео
×7
отношение по одной переменной части
3,82 млн ₽
разница за месяц
Отношение ×7 — это по одной переменной части, без амортизации платформы и без человека на проверке. С ними получается ×2,7. Обе цифры настоящие, но решение принимается по второй.

Цены и объемы синтетические, порядок — переобработка архива видеосервиса. Структура затрат — чтение, счет, запись — настоящая.

Считаем не производительность, а счет за месяц

Задача звучала как «прогнать архив через модели». Первый же расчет показал, где будет больно: 4,8 петабайта нужно прочитать, декодировать и обработать, и на этом пути видеокарты — самая заметная, но далеко не самая дорогая часть.

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

Дорогая модель не должна видеть весь архив

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

  1. Отбор по метаданным. Часть архива отсекается до чтения: длительность, источник, дата, уже посчитанные ранее признаки.
  2. Разреженный просмотр. Читаются только опорные кадры. Для поиска сцен и грубой классификации этого достаточно.
  3. Дешевый фильтр. Легкая модель отбрасывает заведомо неинтересное — статичные планы, черные кадры, дубли.
  4. Тяжелая модель. Работает по фрагментам, прошедшим предыдущие ступени.

До последней ступени доходят доли процента исходного объема. Именно это дало основную часть экономии; ускорение инференса тут вторично.

Декодирование — скрытый пожиратель

Полное декодирование видео стоит дорого и почти всегда избыточно. Мы читаем опорные кадры без полного разбора потока, а полное декодирование включается только для отобранных фрагментов.

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

Прерываемые машины требуют дисциплины

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

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

Без этих четырех правил прерываемые мощности превращаются в бесконечный перезапуск, который съедает всю экономию.

Учет сделанного важнее скорости

На объеме в тысячи часов видео главный вопрос эксплуатации звучит скучно: что уже посчитано и чем именно. Версия модели меняется, часть архива обработана старой, часть новой, отдельные фрагменты переобрабатывались после сбоя.

Поэтому в конвейере ведется реестр: фрагмент, версия обработки, результат, время. Он позволяет ответить на вопросы «что нужно пересчитать после обновления модели» и «почему по этому файлу нет результата» без археологии по логам. Он же дает возможность обновлять модель постепенно, не останавливая конвейер.

Одиннадцатикратный рост — из чего сложился

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

Ни один из источников не связан с ускорением самой нейросети. Это типично для больших конвейеров: выигрыш живет в организации потока.

Что заказчик получил кроме результатов

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

Хранение промежуточного — отдельная статья

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

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

Где такая схема не подходит

  • Задачи реального времени: каскад с фильтрами оптимизирован под пакетную обработку архива.
  • Материал, где важен каждый кадр — например, покадровый контроль качества. Разреженный просмотр там неприменим.
  • Архивы с жесткими требованиями к локации данных, если дешевые мощности доступны только в другом контуре.

Направления рядом — эксплуатация ML в продакшне, видеоаналитика и высоконагруженные модели.

4,8 ПБ
видеоархива переобработано
  • big data
  • video pipeline
  • distributed
  • CV
  • cloud
заказчик

Медиа / Видеосервис · детали под NDA

СтендПроверить расчет руками ↑

Те же цифры, но с ручками: порог, нагрузка, объем.

Комментарий инженера

Первая версия конвейера честно декодировала все подряд и упиралась в диски, пока видеокарты стояли в половинной загрузке. Мы смотрели на утилизацию GPU и радовались, что есть запас, — а платили за чтение. Переделали порядок: сначала дешевые ступени по опорным кадрам, и до тяжелой модели стали доходить доли процента материала. Счет за месяц упал сильнее, чем любая оптимизация инференса могла дать в принципе.
инженер конвейеров обработки данных · MoranaLabs
Другие кейсы
— заявка

Опишите задачу  ответим как инженеры. 

Оставьте имя и Telegram — остальное обсудим. Без брифов на 40 слайдов и звонков по три раза.

Отвечаем за пару часовотвечает инженер, а не отдел продажNDA до передачи данных

Любой один канал — куда удобнее, туда и ответим

Или сразу написать в Telegram

Без спама и звонков-роботов. Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности и обработкой персональных данных.