MLOps

Материал из llmdocs — справочник разработчика
Портал: ML и MLOps
MLOps
Полное названиеMachine Learning Operations
ИстокиDevOps, статья Google «Hidden Technical Debt in Machine Learning Systems» (2015)
Этапыданные, обучение, оценка, развёртывание, мониторинг
Отслеживание экспериментовMLflow, Weights & Biases
Данные и признакиDVC, Feast, lakeFS
ОркестрацияAirflow, Kubeflow, Prefect, Dagster
СервингKServe, BentoML, Triton, vLLM
МониторингEvidently, Prometheus, Grafana

MLOps (англ. Machine Learning Operations) — набор практик, процессов и инструментов, позволяющих надёжно доводить модели машинного обучения от эксперимента до продакшена и поддерживать их работу. Это перенос идей DevOps — автоматизации, CI/CD, мониторинга, воспроизводимости — на системы, поведение которых определяется не только кодом, но и данными.

Без MLOps типичная судьба модели — ноутбук на компьютере исследователя, который никто не может воспроизвести, или модель в продакшене, качество которой тихо деградирует месяцами.

Почему ML сложнее обычного ПО

В 2015 году инженеры Google опубликовали статью «Скрытый технический долг в системах машинного обучения»: код самой модели — лишь малая часть реальной ML-системы, а вокруг него — сбор и проверка данных, извлечение признаков, конфигурация, инфраструктура обслуживания и мониторинг.[1] Специфические трудности:

  • Три артефакта вместо одного. Результат зависит от кода, данных и гиперпараметров; изменение любого из них меняет модель.
  • Тихие отказы. Модель не падает с ошибкой — она просто начинает ошибаться чаще, когда меняются входные данные (Дрейф данных).
  • Недетерминированность. Повторное обучение даёт немного другую модель; без фиксации версий и случайных зёрен невозможно понять, что изменилось.
  • Связь обучения и обслуживания. Признаки должны вычисляться одинаково при обучении и в продакшене, иначе возникает перекос (training-serving skew).

Жизненный цикл

Этап Что делается Инструменты
Данные сбор, проверка, версионирование, разметка DVC, lakeFS, Great Expectations
Признаки единые вычисления для обучения и инференса Feature store (Feast)
Эксперименты обучение, логирование параметров и метрик MLflow, Weights & Biases
Конвейер обучения автоматическое переобучение Airflow, Kubeflow Pipelines, Dagster
Реестр моделей версии, стадии (staging, production), метаданные MLflow Model Registry
Развёртывание API, пакетная обработка, на устройстве KServe, BentoML, Triton, Docker, Kubernetes
Мониторинг качество, дрейф, задержки, стоимость Evidently, Prometheus, Grafana

Уровни зрелости

Google описывает три уровня автоматизации:[2]

  • Уровень 0 — ручной процесс. Исследователь обучает модель в ноутбуке и передаёт файл инженерам; переобучение редкое и ручное.
  • Уровень 1 — автоматизированный конвейер обучения. Переобучение на свежих данных запускается по расписанию или по сигналу, модель проверяется и выкатывается автоматически (continuous training).
  • Уровень 2 — CI/CD для конвейеров. Сам конвейер обучения тестируется, собирается и развёртывается автоматически, что позволяет быстро проверять новые идеи.

Мартин Фаулер и коллеги описали похожий подход под названием CD4ML — непрерывная поставка для машинного обучения.[3]

Пример: отслеживание экспериментов

import mlflow
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import f1_score

mlflow.set_experiment("churn")
with mlflow.start_run():
    params = {"n_estimators": 300, "max_depth": 8}
    model = RandomForestClassifier(**params).fit(X_train, y_train)
    mlflow.log_params(params)
    mlflow.log_metric("f1", f1_score(y_test, model.predict(X_test)))
    mlflow.sklearn.log_model(model, name="model", registered_model_name="churn-rf")

Каждый запуск сохраняет параметры, метрики и саму модель; в веб-интерфейсе MLflow запуски можно сравнить, а лучшую модель — перевести в продакшен через реестр.[4]

Мониторинг

В продакшене отслеживают несколько слоёв:

  1. Сервисные метрики — задержка, ошибки, нагрузка, стоимость (как у любого сервиса, см. Мониторинг и алертинг).
  2. Данные на входе — пропуски, выход значений за привычные диапазоны, сдвиг распределений признаков.
  3. Предсказания — распределение ответов модели, доля уверенных предсказаний.
  4. Качество — истинные метрики, когда становятся известны правильные ответы (часто с задержкой).

Библиотеки вроде Evidently строят отчёты о дрейфе данных и качестве модели.[6] Сигнал о деградации запускает расследование или автоматическое переобучение.

LLMOps

С распространением языковых моделей появилось направление LLMOps. Модели обычно не обучают, а используют через API или дообучают; на первый план выходят версионирование промптов, оценка качества на наборах тестовых вопросов, трассировка цепочек вызовов агентов, контроль стоимости токенов и защита от prompt injection. Базовые принципы — воспроизводимость, автоматические проверки, мониторинг — остаются теми же.[5]

См. также

Источники

  1. D. Sculley et al. — Hidden Technical Debt in Machine Learning Systems (NeurIPS 2015)
  2. Google Cloud — MLOps: Continuous delivery and automation pipelines in machine learning
  3. Martin Fowler — Continuous Delivery for Machine Learning (CD4ML)
  4. MLflow — документация
  5. ml-ops.org — MLOps Principles
  6. Evidently — документация