🎯 Що таке MLOps
Визначення та значення
MLOps — це набір практик для автоматизації та оптимізації життєвого циклу машинного навчання, від розробки до продакшну та моніторингу, поєднуючи ML з DevOps принципами.
Мета: Зробити ML моделі надійними, масштабованими, легко підтримуваними в продакшні, як традиційний софт.
Проблема: Багато ML моделей залишаються в Jupyter notebooks, не досягаючи продакшну. MLOps вирішує це.
DevOps для ML: Ідеї DevOps (CI/CD, автоматизація, моніторинг) адаптовані для специфічних потреб ML (дані, моделі, навчання).
Критичність: Без MLOps ML проєкти часто провалюються в продакшні через технічний борг, деградацію моделей, відсутність моніторингу.
Зв'язок з DevOps
Подібності: CI/CD, автоматизація, моніторинг, інфраструктура як код, версіонування, колаборація.
Відмінності: ML додає версіонування даних та моделей, навчання як частину pipeline, моніторинг data drift, retraining циклів.
Складність: ML складніший: моделі залежать від даних, деградують з часом, потребують постійного retraining.
🔄 Життєвий цикл ML
Етапи життєвого циклу
Розробка: EDA, feature engineering, експерименти з моделями, hyperparameter tuning в Jupyter notebooks або IDEs.
Навчання: Навчання моделей на навчальних даних, validation, вибір найкращої моделі.
Версіонування: Збереження моделі з метаданими (дата навчання, метрики, дані, код) в модель реєстрі.
Тестування: Автоматичні тести: функціональні, метрики performance, на нових даних, інтеграційні.
Deployment: Розгортання моделі в продакшн (REST API, batch processing, real-time inference).
Моніторинг: Відстеження performance, drift, помилок, ресурсів у продакшні.
Retraining: Періодичне перенавчання на нових даних, оновлення моделі.
Ре-deployment: Автоматичний або ручний redeployment оновленої моделі.
Автоматизація циклу
ML Pipeline: Автоматизований pipeline від даних до deployment: data ingestion → preprocessing → training → validation → deployment.
Orchestration: Airflow, Prefect, Kubeflow для керування pipeline, планування, залежностями.
Тригери: Автоматичне навчання при нових даних, degradation моделі, schedule (щотижня, щомісяця).
📦 Версіонування
Версіонування моделей
Модель реєстри: MLflow, Weights & Biases, Neptune зберігають версії моделей з метаданими (метрики, параметри, дані, код).
Метадані: Дата навчання, метрики performance, гіперпараметри, версія коду, версія даних, environment.
Формати: Pickle, joblib, ONNX, TensorFlow SavedModel, PyTorch, H5, інші формати для різних фреймворків.
Переваги: Можливість rollback, порівняння версій, відстеження еволюції моделей, reproducibility.
Версіонування даних
DVC (Data Version Control): Git-like система для версіонування великих датасетів, зберігання в S3, GCS.
Потреба: Великі дані не можна зберігати в Git. DVC зберігає посилання та checksums.
Відстеження: Які дані використовувалися для навчання кожної версії моделі, зміни в даних.
Версіонування коду
Git: Стандартне версіонування коду, експериментів, pipeline кодів.
Best practices: Feature branches, pull requests, code reviews, теги для релізів моделей.
🔄 CI/CD для ML
Continuous Integration (CI)
Тестування коду: Unit тести, integration тести, linting, type checking.
Тестування моделей: Перевірка метрик performance, порівняння з baseline, тести на validation set.
Тестування даних: Перевірка якості даних, schema validation, виявлення аномалій.
Автоматизація: GitHub Actions, GitLab CI, Jenkins запускають тести автоматично при комітах.
Continuous Deployment (CD)
Автоматичне deployment: Після проходження тестів, модель автоматично розгортається в staging або продакшн.
Стратегії: Blue-green deployment, canary releases, A/B testing, shadow mode (нова модель працює паралельно, не використовується).
Rollback: Автоматичний відкат до попередньої версії при проблемах.
Gateways: Перевірки перед deployment: performance метрики, безпека, compliance.
📊 Моніторинг моделей
Performance моніторинг
Метрики: Accuracy, precision, recall, F1, AUC для класифікації; MAE, RMSE, R² для регресії.
Відстеження: Реальні performance метрики в продакшні (ground truth можуть прийти з затримкою).
Алерти: Автоматичні сповіщення при деградації performance нижче порогу.
Data Drift
Визначення: Зміни в розподілі вхідних даних порівняно з тренувальними даними. Модель навчена на одному розподілі, отримує інший.
Виявлення: Statistical tests (KS test, PSI), ML моделі (drift detection models), візуалізація розподілів.
Наслідки: Data drift може призвести до деградації performance моделі.
Рішення: Retraining на нових даних, адаптація моделі, виправлення проблем з даними.
Concept Drift
Визначення: Зміни в зв'язках між features та target. Те, що працювало раніше, більше не працює.
Приклади: Зміни в поведінці користувачів, економічні зміни, сезонність, нові тренди.
Виявлення: Performance моніторинг, порівняння прогнозів з реальністю, statistical tests.
Рішення: Retraining, адаптивні моделі, online learning.
Операційний моніторинг
Latency: Час відгуку моделі, P50, P95, P99 персентилі.
Throughput: Кількість запитів за секунду, обробка за хвилину.
Ресурси: CPU, пам'ять, GPU використання.
Помилки: Кількість помилок, типи помилок, exception tracking.
🏗️ Інфраструктура
Compute для навчання
Клауд: AWS SageMaker, GCP AI Platform, Azure ML для managed навчання.
Kubernetes: Kubeflow, MLflow на K8s для оркестрації навчання.
GPU: NVIDIA GPUs для deep learning, managed GPU інстанси в клауді.
Auto-scaling: Автоматичне масштабування compute для навчання.
Serving інфраструктура
Real-time inference: REST APIs (Flask, FastAPI), gRPC, model servers (TensorFlow Serving, TorchServe, Triton).
Batch inference: Spark, Airflow, scheduled jobs для обробки великих обсягів даних.
Edge deployment: Моделі на edge пристроях (мобільні, IoT), оптимізація моделей (quantization, pruning).
Scaling: Load balancing, auto-scaling, containerization (Docker, Kubernetes).
Data infrastructure
Data lakes: S3, GCS, Azure Blob для зберігання даних.
Data warehouses: Snowflake, BigQuery, Redshift для аналітики.
Feature stores: Feast, Tecton для зберігання та обслуговування features.
Data pipelines: Airflow, Prefect, dbt для ETL/ELT.
📚 Гайд з прикладами
Приклад 1: MLOps Pipeline
Сценарій: Модель рекомендацій для e-commerce
Pipeline:
Data ingestion: Щоденний імпорт нових даних з транзакцій у data lake.
Feature engineering: Обчислення features, збереження в feature store.
Training trigger: Автоматичне навчання щотижня або при data drift.
Training: Навчання моделі на нових даних, validation.
Testing: Автоматичні тести: метрики > baseline, performance на holdout set.
Registry: Збереження моделі в MLflow з метаданими.
Deployment: Canary deployment: 10% трафіку на нову модель, моніторинг.
Rollout: Якщо все добре, поступове збільшення до 100%.
Моніторинг: Постійне відстеження performance, drift, latency.
Приклад 2: Data Drift виявлення та retraining
Сценарій: Модель прогнозування попиту, виявлено data drift.
Процес:
Моніторинг: Система виявляє зміни в розподілі вхідних даних (PSI > 0.2).
Алерт: Команда отримує сповіщення про drift.
Аналіз: Дослідження причин drift, вплив на performance.
Retraining: Якщо performance деградувала, автоматичне або ручне запуск retraining.
Validation: Нова модель перевіряється, порівнюється з поточною.
Deployment: Якщо краща, deployment нової версії.
Спробуйте наживо
Усе, що вище, працює прямо у вашому браузері — відкрийте Dimensionality Reduction: PCA, t-SNE & UMAP і змінюйте параметри під час роботи. Нічого не встановлюється, нічого не завантажується на сервер, уся модель живе в одній вкладці.
▶ Відкрити симуляцію Dimensionality Reduction: PCA, t-SNE & UMAP