# Что такое MLOps

← [Раздел](README.md) · [Главная](../README.md)

## Цель

Понять **определение MLOps**, его роль в жизненном цикле ML-систем и отличие от «просто обучил модель в Jupyter».

## Предварительно

- [00 — Карта пути](../00-karta-puti/README.md)

## Время

**2–3 часа**

---

## Определение простыми словами

**MLOps** (Machine Learning Operations) — это набор **практик, процессов и инструментов**, которые помогают **надёжно** разрабатывать, обучать, тестировать, выкатывать и **сопровождать** модели машинного обучения в production.

Если **Data Science** отвечает на вопрос «**какая модель лучше предсказывает**?», то MLOps отвечает на «**как эта модель будет жить в продукте месяцами**: обновляться, не ломаться, быть воспроизводимой и измеримой».

| Без MLOps | С MLOps |
|-----------|---------|
| Notebook на ноутбуке data scientist'а | Воспроизводимый пайплайн в CI |
| «Работало у меня» | Одинаковый результат на dev/stage/prod |
| Ручной деплой весов модели | Автоматический rollout с откатом |
| Неизвестно, на каких данных обучали | Версии данных и lineage |
| Модель деградирует незаметно | Мониторинг drift и метрик в production |

## Откуда взялся MLOps

Идея пришла из **DevOps** (автоматизация доставки ПО). ML добавляет сложности:
- **данные** меняются чаще, чем код;
- **эксперименты** — сотни прогонов с разными гиперпараметрами;
- **модель** — это не только код, но и **артефакты** (веса, препроцессинг);
- **качество** в production измеряется **метриками на живом трафике**, а не только offline accuracy.

## Жизненный цикл ML-системы

```mermaid
flowchart LR
  D[Данные] --> F[Feature engineering]
  F --> T[Обучение]
  T --> V[Валидация]
  V --> R[Registry]
  R --> S[Serving]
  S --> M[Мониторинг]
  M -->|drift / retrain| D
```

MLOps покрывает **все стрелки** на схеме: версии, автоматизация, контроль доступа, аудит.

## Роли в MLOps-команде

| Роль | Фокус |
|------|-------|
| **Data Scientist** | Гипотезы, модели, метрики offline |
| **ML Engineer** | Пайплайны, serving, интеграция с продуктом |
| **Data Engineer** | Хранилища, ETL, feature pipelines |
| **MLOps / Platform** | Инфраструктура, MLflow/Kubeflow, CI/CD |
| **SRE / DevOps** | Надёжность, observability, cost |

На старте карьеры один человек может совмещать роли; в зрелых командах они разделены.

## Что MLOps **не** делает

| Не заменяет | Пояснение |
|-------------|-----------|
| Математику ML | MLOps не учит gradient descent |
| Бизнес-аналитику | Нужно понимать, **зачем** модель продукту |
| «Магию» качества | Плохие данные + MLOps = плохая модель в production быстрее |

## Ключевые слова

- **Pipeline** — автоматизированная цепочка шагов (данные → модель)
- **Artifact** — файл результата (модель, график, датасет)
- **Lineage** — «откуда взялась эта модель и на каких данных»
- **Serving** — отдача предсказаний в реальном времени или batch
- **Drift** — изменение распределения данных или целевой переменной со временем

## Учебная аналогия

Представьте **рецепт в ресторане**:
- Data Scientist придумал рецепт (модель) в домашней кухне (notebook)
- MLOps — это **стандартизация кухни сети ресторанов**: одинаковые ингредиенты (данные), контроль качества, журнал партий, возможность откатить рецепт, если гости жалуются

## Типичные боли без MLOps

1. **Невоспроизводимость** — никто не может повторить лучший эксперимент полугодовой давности
2. **Ручной деплой** — «скинь мне `model.pkl` в Slack»
3. **Нет мониторинга** — accuracy упала на 20%, узнали от клиентов
4. **Compliance** — нельзя объяснить регулятору, как модель принимала решения

## Ошибки новичков

- Думать, что MLOps = только Kubernetes (это лишь один слой)
- Внедрять сложный стек до первой модели в production
- Путать **experiment tracking** (MLflow) с полным MLOps (нужны ещё данные, деплой, мониторинг)

---

## Самопроверка

1. Объясните MLOps одним предложением.
2. Назовите три отличия ML-системы от обычного веб-приложения.
3. Какую роль играет мониторинг в цикле MLOps?

---

## Дальше

→ [Что такое MLflow](chto-takoe-mlflow.md)
