Запустить inference относительно просто. Гораздо сложнее сделать сервис, который предсказуемо работает под нагрузкой, переживает сбои, масштабируется и не теряет пользовательские задачи.
В какой-то момент вокруг модели или inference runtime приходится строить полноценную распределённую систему: управлять очередью и состоянием задач, распределять работу между worker’ами, контролировать ownership, восстанавливаться после сбоев и масштабировать инфраструктуру в зависимости от реальной нагрузки.
В докладе разберём, какие проблемы возникают при переходе от запуска inference к управляемой системе выполнения задач и как мы их решаем. Покажем, почему обычного горизонтального масштабирования оказывается недостаточно, как устроить orchestration layer и какие инженерные решения понадобятся для надёжной асинхронной обработки.
Отдельно рассмотрим реальные production-проблемы: что происходит, когда worker падает посреди выполнения, как не допустить повторной обработки одной задачи, почему autoscaling может удалить ещё выполняющуюся задачу и как связать состояние очереди с фактическим завершением inference.
В качестве конкретного runtime в кейсе используется ComfyUI, но описанные подходы применимы гораздо шире — к системам, где есть долгие задачи, асинхронное выполнение, распределённые worker’ы и необходимость управлять жизненным циклом inference-задач.
Бэкенд-разработчик, Специалист по данным / Специалист по машинному обучению
Средний
Занимается развитием платформенных сервисов для ИИ в Cloud.ru.