🏢 Ситуация
Churn-модель (модули 5–10) до сих пор живёт как «ноутбук, который запускает Игорь по понедельникам». Лена:
«Стыдно признаться, но это правда половины индустрии. Пора по-взрослому: модель должна стать сервисом — с API, версионированием, мониторингом и планом на случай "всё сломалось". Заворачивай в FastAPI + Docker, настраивай мониторинг дрейфа. Это последний навык, отделяющий тебя от мидла: модель, которую нельзя надёжно эксплуатировать, не существует.»
🎯 Ваша задача
- Обернуть модель в REST API (FastAPI) и контейнер (Docker).
- Понять версионирование моделей и reproducibility.
- Настроить мониторинг: сервисные метрики, дрейф данных, качество.
📚 Теория
Уровни зрелости ML-систем
- Ноутбук + ручной запуск («у нас сейчас»).
- Модель как сервис: API, контейнер, CI/CD, версии.
- Автоматизированный пайплайн: переобучение по расписанию/триггеру, валидационные гейты.
- Полный MLOps: feature store, реестр моделей, автоматический откат, A/B на моделях.
Большинству команд достаточно уровня 1–2. Не стройте уровень 3 ради галочки.
Модель как артефакт
- Сериализация: joblib/pickle (⚠️ версии библиотек должны совпадать!), ONNX — переносимый формат.
- Версионирование: модель + код + данные + метрики фиксируются вместе (MLflow Model Registry, W&B). Вопрос «какая модель сейчас в проде и на чём она обучена?» должен иметь ответ за 10 секунд.
- Reproducibility: зафиксированные random_state, версии пакетов (lock-файл), код в git.
Три слоя мониторинга ML-сервиса
- Сервисный (как у любого бэкенда): латентность p50/p99, RPS, ошибки 5xx.
- Дрейф данных (data drift): распределение входных признаков уехало от обучающего (новый сегмент клиентов, сломался источник поля). Метрики: PSI, KS-тест по каждому признаку. Дрейф предсказаний — сдвиг распределения скоров — самый дешёвый ранний сигнал.
- Качество (concept drift): истинные метки приходят с задержкой (узнаём об оттоке через 30 дней) → считаем отложенное качество, сравниваем с офлайн-оценкой.
Правило: модель без мониторинга — это инцидент, который ещё не случился. Данные меняются всегда.
Стратегии выкладки моделей
- Shadow mode: новая модель предсказывает параллельно, ответы логируются, но не используются. Бесплатная проверка на реальном трафике.
- Canary: 5% трафика на новую модель, метрики ок → раскатка.
- Откат: предыдущая версия всегда наготове; переключение — конфигом, не деплоем.