Этот вопрос проверяет понимание роли backend как системного слоя, а не просто прокси между клиентом и ML-моделью.
Модель, задеплоенная по HTTP, решает только задачу inference, но не задачи системы в целом. Backend берет на себя аутентификацию, валидацию данных, маршрутизацию запросов и контроль доступа. Он изолирует клиентов от деталей ML-инфраструктуры и позволяет менять модели без изменения API. Также backend управляет ошибками, ретраями и бизнес-правилами. Без него система быстро становится хрупкой и плохо масштабируемой.
В продакшене ML-модель почти никогда не существует как самостоятельный сервис, доступный напрямую клиентам. Backend выполняет роль системного оркестратора.
Определение:
Backend — это прикладной слой, который реализует бизнес-логику, управление данными и интеграцию ML-моделей в продуктовую систему.
Backend нужен по нескольким причинам:
Изоляция клиентов от ML-деталей
Клиенты не знают, какая модель используется
Можно заменить модель или версию без изменения контракта API
Реализация бизнес-правил
Проверка входных данных
Ограничения по тарифам, ролям, квотам
Логика fallback (например, что делать при недоступности модели)
Управление инфраструктурными аспектами
Retry и timeout при вызове inference
Балансировка между несколькими моделями
Кеширование результатов
Безопасность
Аутентификация и авторизация
Сокрытие inference-сервера от внешнего доступа
Краткий вывод:
Прямой вызов модели по HTTP подходит для экспериментов, но backend необходим для стабильной, управляемой и масштабируемой системы.