Ответ
MLOps (Machine Learning Operations) — это культура и набор практик, направленных на надежное и эффективное развертывание, мониторинг и поддержку машинного обучения (ML) в production. Это адаптация принципов DevOps (CI/CD, автоматизация, мониторинг, коллаборация) к специфическому жизненному циклу ML-систем, где помимо кода есть данные и модели.
Ключевые отличия и дополнения к классическому DevOps:
| Аспект | DevOps | MLOps |
|---|---|---|
| Версионирование | Код, конфиги | Код + Данные + Модели + Гиперпараметры |
| Тестирование | Unit, интеграционные тесты | + Тесты на качество данных (дрейф), тесты на fairness модели |
| Мониторинг | Метрики приложения (латентность, ошибки) | + Метрики модели (accuracy, precision/recall), мониторинг дрейфа данных |
| Развертывание | Контейнеризация, оркестрация | + Канареечное/теневое развертывание моделей, A/B-тесты |
| Паipeline | Build -> Test -> Deploy | + Data Validation -> Train -> Validate Model -> Deploy |
Пример архитектуры MLOps-пайплайна с использованием GitLab CI и DVC:
# .gitlab-ci.yml
stages:
- data
- train
- evaluate
- deploy
data_versioning:
stage: data
image: dvcorg/dvc:latest
script:
- dvc pull # Загружаем версионированные данные из удаленного хранилища (S3)
- python scripts/validate_data.py # Проверяем качество и схему данных
train_model:
stage: train
image: python:3.9
script:
- pip install -r requirements.txt
- python train.py # Обучаем модель, на выходе model.pkl
- dvc add model.pkl # Версионируем артефакт модели
- dvc push
evaluate_model:
stage: evaluate
script:
- python evaluate.py # Считаем метрики на тестовом наборе
- python tests/model_tests.py # Запускаем специфичные тесты модели
artifacts:
reports:
junit: report.xml
deploy_to_staging:
stage: deploy
script:
- docker build -t ml-model:${CI_COMMIT_SHORT_SHA} .
- kubectl set image deployment/ml-model-deploy ml-model=ml-model:${CI_COMMIT_SHORT_SHA} --namespace=staging
Основные инструменты стека MLOps:
- Версионирование данных: DVC, Pachyderm, Delta Lake.
- Экспериментирование и трекинг: MLflow, Weights & Biases, Neptune.ai.
- Пайплайны и оркестрация: Kubeflow Pipelines, Apache Airflow, Metaflow.
- Развертывание и обслуживание: Seldon Core, KServe, TorchServe, Triton Inference Server.
Цель MLOps — превратить разовое создание модели в предсказуемый, управляемый и воспроизводимый инженерный процесс.