Модель внутри приложения, отдельный сервис или платформа — три уровня связанности.
Ключевые тезисы
- Встроенная модель — минимальная , но релиз модели связан с релизом приложения.
- Отдельный сервис даёт независимые релизы и масштабирование ценой сетевого хопа.
- Платформы (Triton, TorchServe, KServe) берут на себя , версии и метрики.
Какую задачу решает
Способ доставки предсказаний определяется не моделью, а тем, когда результат нужен. Если решение принимается в действия пользователя — нужен онлайн-сервис. Если результат используется завтра — батчевый расчёт по расписанию на порядки дешевле и проще. Между ними лежат потоковая обработка и предрасчёт популярных случаев.
Выбор влияет на всё: батчевый расчёт снимает требования по задержке и позволяет использовать сколь угодно тяжёлые модели; онлайн-сервис требует в реальном времени, , автомасштабирования и продуманного поведения при отказе. Ошибка в выборе режима обходится дороже, чем ошибка в выборе модели.
Задайте один вопрос: зависит ли предсказание от информации, появившейся за последние минуты? Скоринг оттока по истории за месяц — не зависит, значит . Рекомендация после просмотра трёх товаров в этой сессии — зависит, значит онлайн. Промежуточный случай: предрасчёт базовой части батчем и лёгкая онлайн-корректировка по контексту сессии. Такая гибридная схема часто даёт 90% выигрыша онлайна за 20% его сложности.
Подробный разбор
| Вариант | Плюсы | Минусы |
|---|---|---|
| В приложении (библиотека) | минимальная , нет сети | релизы связаны, дублирование памяти |
| Отдельный сервис | независимые релизы и скейлинг | сетевой хоп, ещё один сервис в эксплуатации |
| Платформа | , версии, метрики из коробки | новая инфраструктура, кривая обучения |
Практичный путь: начать с отдельного сервиса на FastAPI, а к платформе (Triton, KServe) переходить, когда моделей станет много или потребуется GPU-батчинг.
POST /v1/score
{
"request_id": "a3f...",
"features": {"age": 34, "region": "msk", "orders_30d": 7},
"model": "churn@2026-08-15" // явная версия, не "latest"
}
→ {"score": 0.183, "model": "churn@2026-08-15", "latency_ms": 12}- Версия модели указывается явно и возвращается в ответе — иначе разбор инцидента невозможен.
request_idсвязывает лог сервиса, лог приложения и последующую метку.- Отдельный эндпойнт для экономит накладные расходы при массовом скоринге.
Где применяется
- Скоринг клиентской базы ночью: результат в таблице, никаких требований к задержке.
- Персонализация выдачиОнлайн: контекст сессии известен только в запроса.
- АнтифродОнлайн с жёстким : решение нужно до подтверждения операции.
- Рекомендации в рассылке с предрасчётом: пользователей миллионы, а время не критично.
Плюсы, минусы и альтернативы
Плюсы
- Правильно выбранный режим кратно упрощает систему.
- закрывает большую часть задач за малую долю стоимости онлайна.
- Явный контракт делает возможной независимую разработку и обновление.
Минусы
- Онлайн требует полноценной инженерии: масштабирование, кэш, отказоустойчивость.
- не подходит там, где важен свежий контекст.
- Смена режима на позднем этапе означает переделку.
Брать, если
- Онлайн — когда контекст известен только в запроса.
- — когда предсказание можно посчитать заранее.
Не брать, если
- Не стройте онлайн-сервис, если результат используется раз в сутки: это дороже без выигрыша.
Чем заменяют
Видеолекции
Записи университетских курсов, где эта тема звучит. Где у записи есть тайм-коды, ссылка открывает её с нужной секунды; где их не проставили — с начала.
Связанные темы
Доставка модели в прод · Инференс и эксплуатация
Model Deployment98%
Деплой моделей · MLOpsДоставка модели пользователю: онлайн-сервис, батч-скоринг или встраивание в приложение.
CI/CD for ML85%
CI/CD для ML · MLOpsАвтоматизация проверок и выката: тесты кода, тесты данных, обучение и релиз модели по одной кнопке.
Model Versioning85%
Версионирование моделей · MLOpsКаждая обученная модель — артефакт с версией, метриками и происхождением.
MLflow85%
MLflow · MLOpsОткрытая платформа для трекинга, упаковки и регистрации моделей.
Production ML85%
ML в продакшене · Практика MLМодель в проде — это сервис с SLA, мониторингом, версионированием и планом отката.
Requirements and SLA85%
Требования и SLA · Системный дизайн ML-сервисовЧисла, которые нужно зафиксировать до архитектуры: задержка, пропускная способность, доступность, стоимость запроса.
Caching85%
Кеширование · Системный дизайн ML-сервисовНе считать то, что уже посчитано: кеш предсказаний, признаков и эмбеддингов.
Batching and Queues85%
Батчинг и очереди · Системный дизайн ML-сервисовСобирать запросы в пачки, чтобы загрузить GPU, и сглаживать всплески нагрузки очередью.
Scaling85%
Масштабирование · Системный дизайн ML-сервисовГоризонтальное и вертикальное масштабирование инференса и правильные метрики автоскейлинга.
GPU Inference85%
GPU-инференс · Системный дизайн ML-сервисовКак выжать из видеокарты пропускную способность и не переплачивать.
Reliability85%
Отказоустойчивость · Системный дизайн ML-сервисовЧто происходит, когда модель недоступна, отвечает медленно или выдаёт мусор.
Observability85%
Наблюдаемость · Системный дизайн ML-сервисовЛоги, метрики и трассировки, по которым можно восстановить, что произошло с конкретным запросом.
Cost Model85%
Экономика сервиса · Системный дизайн ML-сервисовСтоимость одного предсказания и точка, где модель перестаёт окупаться.
LLM Serving85%
Обслуживание LLM · Системный дизайн ML-сервисовОтдельная инженерная дисциплина: KV-кеш, непрерывный батчинг, потоковая отдача и контроль стоимости.
Monitoring85%
Мониторинг · MLOpsНаблюдение за инфраструктурой, данными и качеством предсказаний после релиза.
Docker85%
Docker · MLOpsКонтейнеризация фиксирует окружение целиком: код, зависимости, системные библиотеки.
Kubernetes85%
Kubernetes · MLOpsОркестрация контейнеров: масштабирование, самовосстановление, обновления без простоя.
Всё, что названо в описании, разобрано здесь же или в соседней теме — переходы под каждым определением.
Батчевый инференс
Расчёт по расписанию, результат в таблице. Дёшево, просто, без требований к задержке.
Разбор ниже: Три варианта размещенияОнлайн-инференс
Синхронный ответ на запрос. Дороже и сложнее, но единственный вариант, когда контекст известен только сейчас.
Разбор ниже: Три варианта размещенияПотоковый инференс
Реакция на события по мере поступления: компромисс между батчем и онлайном.
Разбор ниже: Три варианта размещенияКонтракт сервиса
Схема входа и выхода, версии, поведение при ошибке. Фиксируется явно и версионируется.
Разбор ниже: Контракт APIРезервное поведение
Что вернуть, когда модель недоступна: кэш, правило, значение по умолчанию.
Разбор ниже: Контракт APIПрофильная компетенция для ролей: ML Engineer, MLOps-инженер, Продуктовый инженер, Инженер рекомендаций.
Усиливает профиль: NLP-инженер, LLM-инженер, CV-инженер, Инженер речи.
Спрашивают на собеседовании: Т-Банк — Рекомендации и персонализация, VK — Лента и рекомендации, Ozon — Поиск и рекомендации, МТС — Речь и разговорный ИИ, Lamoda — Рекомендации и поиск, Самокат — Логистика и сроки доставки, HeadHunter — Матчинг и рекомендации, Циан — Поиск, ранжирование и достоверность, Selectel — Платформа инференса.
Тема встречается в тестах по направлениям — ошибки приведут обратно на эту страницу.
Разбор архитектуры, где эта тема — один из кирпичей: требования, развилки, цифры и режимы отказа.
Глава «Системный дизайн ML-сервисов» последний раз правилась . Нашли ошибку — напишите.