tgoop.com/BDataScienceM/2381
Last Update:
Делимся опытом: ML System Design для анализа коротких видео[2/3]
Теперь поговорим о том, какое итоговое решение с точки зрения инфраструктуры и коммуникаций у меня получилось.
Есть бэкэнд и фронтенд, на котором записывается видео, дальше видео кладется в google cloud bucket, который через gcfuse присоединен к машинке с Tesla T4, на которой мы будем разворачивать наш сервис. Машинка тоже гугловая, соответственно задержка между попаданием видео в бакет и на машинку очень маленькая. Почему не сразу стримить на машинку? Впадлу стыковать все это дело, к тому же бакет расширяется легче чем машинка, и через такое подключение питон может читать всю информацию будто с жесткого диска.
Информация обо всей аналитике и вообще все хранится в MongoDB, соответственно там есть коллекция под эти видео. Как только видео загружается, в записи, соответствующей видео, ставится статус UPLOADED, то есть оно полностью загружено на бакет и готово к использованию.
Что происходит на машинке? Запускается питоновский скрипт, который инициализирует два типа multiprocessing воркеров - один воркер мониторит MongoDB через pymongo на предмет новых записей, и все новые видео кладет в очередь на обработку. Другие воркеры - экземпляры пайплайна обработки, они обрабатывают видео и отправляют информацию в MongoDB о том, что видео обработано, вместе с результатами обработки, и посылают запрос в следующий сервис, который уже отдельно обрабатывает текст, извлеченный из видео, и говорит бэку что можно забрать результаты. Питоновский multiprocessing имеет ограничения, однако его было достаточно, плюс в случае запуска множества питоновских скриптов подобного типа могли возникать проблемы синхронизации, и пришлось бы дописывать балансировщик, который будет раскидывать задачи, что дополнительная попоболь, особенно для меня, который не сильно до этого упарывался с инфраструктурой, а сроки-то поджимают.
Если вы гуру систем дезигна, можете кинуть в меня помидорами в комментариях и предложить конструктивные улучшения. Также прикладываю картинку для легкости восприятия.
BY ML-легушька

Share with your friend now:
tgoop.com/BDataScienceM/2381