MLflow¶
MLflow — это платформа с открытым исходным кодом для управления жизненным циклом проектов машинного обучения (ML), включая этапы экспериментов, воспроизводимости, развёртывания и регистрации моделей. Разработана компанией Databricks и впервые выпущена в 2018 году. MLflow предоставляет набор инструментов, не привязанных к конкретным библиотекам или фреймворкам, что позволяет интегрировать её с любыми ML-технологиями (TensorFlow, PyTorch, Scikit-learn, XGBoost и другими).
¶История
MLflow была анонсирована компанией Databricks в июне 2018 года как ответ на проблему фрагментации инструментов в области машинного обучения. До её появления разработчики часто использовали разрозненные решения для отслеживания экспериментов (например, TensorBoard), упаковки кода (Docker) и развёртывания (Kubernetes), что затрудняло воспроизводимость и совместную работу. MLflow объединила эти функции в единую платформу с простым API.
Первая стабильная версия (1.0) вышла в декабре 2019 года. В 2020 году проект был принят в инкубатор Apache Software Foundation, но в 2022 году вышел из него, сохранив лицензию Apache 2.0. На 2025 год MLflow остаётся одним из наиболее популярных инструментов MLOps (согласно опросам O’Reilly и JetBrains), используемым как в стартапах, так и в крупных корпорациях (например, Adobe, Microsoft, Zillow).
¶Компоненты MLflow
MLflow состоит из четырёх основных модулей, каждый из которых решает конкретную задачу в жизненном цикле ML.
¶MLflow Tracking
MLflow Tracking — это API и пользовательский интерфейс для логирования параметров, метрик, артефактов (файлов, моделей, графиков) и исходного кода во время выполнения ML-экспериментов. Данные сохраняются в хранилище (локальная файловая система, база данных SQL, облачное хранилище S3/ADLS/GCS) и могут быть визуализированы в веб-интерфейсе.
Основные возможности:
- Логирование числовых параметров (например, learning_rate, batch_size) и метрик (accuracy, loss).
- Сохранение артефактов: файлов моделей, изображений (например, графиков обучения), текстовых отчётов.
- Автоматическое логирование для популярных библиотек (через
mlflow.autolog()). - Сравнение запусков (runs) по метрикам и параметрам.
¶MLflow Projects
MLflow Projects — это формат упаковки ML-кода для воспроизводимости. Проект описывается файлом MLproject (YAML), в котором указываются зависимости (conda, pip, Docker), точки входа (entry points) и параметры командной строки. Это позволяет запускать один и тот же эксперимент на разных окружениях (локально, в кластере Spark, в облаке) без ручной настройки.
Пример структуры проекта: `` my_project/ ├── MLproject ├── conda.yaml ├── train.py └── data/ ``
¶MLflow Models
MLflow Models — это стандартный формат для упаковки ML-моделей, пригодных для развёртывания. Модель сохраняется в виде директории с файлом MLmodel (YAML), который содержит:
- flavour (формат модели:
python_function,sklearn,pytorch,tensorflow,onnxи др.); - путь к артефактам модели;
- зависимости окружения;
- сигнатуру (входные и выходные данные).
Модели могут быть загружены и использованы через mlflow.pyfunc.load_model() или развёрнуты как REST-сервис с помощью встроенного сервера (mlflow models serve).
¶MLflow Model Registry
MLflow Model Registry — это централизованное хранилище для управления версиями моделей, их аннотациями и стадиями жизненного цикла (Staging, Production, Archived). Реестр интегрирован с Tracking: после успешного эксперимента модель можно зарегистрировать, присвоить ей версию и перевести на нужную стадию. Это упрощает процесс CI/CD для ML-моделей.
¶Архитектура и развёртывание
MLflow может работать в нескольких режимах:
- Локальный режим — все компоненты (Tracking Server, UI, хранилище артефактов) запускаются на одной машине. Подходит для индивидуальной разработки.
- Серверный режим — Tracking Server запускается отдельно, подключается к удалённой базе данных (PostgreSQL, MySQL) и хранилищу артефактов (S3, Azure Blob). Позволяет командам совместно просматривать и сравнивать эксперименты.
- Облачные развёртывания — MLflow может быть развёрнут на платформах Databricks, AWS SageMaker, Azure ML, Google Vertex AI, а также в Kubernetes с помощью Helm-чартов.
¶Применение
MLflow используется в следующих сценариях:
¶Исследования и разработка
- Отслеживание гиперпараметров и метрик при обучении моделей.
- Воспроизведение экспериментов через MLflow Projects.
- Сравнение десятков и сотен запусков для выбора лучшей модели.
¶MLOps и CI/CD
- Автоматическая регистрация моделей в реестре после успешного пайплайна (например, в Jenkins, GitLab CI).
- Развёртывание моделей в продакшн через REST API или пакетную обработку.
- Мониторинг дрейфа данных и метрик модели (с интеграцией с Prometheus, Grafana).
¶Обучение и демонстрация
- Используется в учебных курсах и хакатонах для демонстрации полного цикла ML.
- Позволяет быстро делиться результатами экспериментов через ссылки на UI.
¶Интеграции
MLflow поддерживает интеграции с большинством популярных инструментов:
- Фреймворки ML: TensorFlow, PyTorch, Scikit-learn, XGBoost, LightGBM, CatBoost, Keras, Fastai, Hugging Face Transformers.
- Инструменты обработки данных: Apache Spark, Pandas, NumPy.
- Платформы MLOps: Kubeflow, Airflow, MLflow Pipelines (экспериментальная функция).
- Облачные провайдеры: AWS, Azure, Google Cloud, Databricks.
¶Критика и ограничения
Несмотря на популярность, MLflow имеет ряд недостатков, отмечаемых сообществом:
- Сложность настройки в больших командах: требуется конфигурация базы данных, хранилища артефактов и аутентификации.
- Ограниченная поддержка мониторинга в реальном времени: MLflow не предоставляет встроенного инструментария для отслеживания дрейфа данных или метрик в продакшене (эту функцию часто берут на себя сторонние решения, такие как Evidently AI или WhyLabs).
- Проблемы с производительностью при большом количестве запусков (более 10 000) в стандартной конфигурации с SQLite.
- Отсутствие встроенного управления доступом (RBAC) в open-source версии — эта функция доступна только в платной версии Databricks.
¶Альтернативы
Существуют другие инструменты, решающие схожие задачи:
- Kubeflow — платформа для MLOps на Kubernetes, более сложная в настройке, но с поддержкой пайплайнов и оркестрации.
- Neptune.ai — коммерческий сервис для отслеживания экспериментов с расширенной визуализацией.
- Weights & Biases (WandB) — популярный инструмент для логирования экспериментов с акцентом на визуализацию и коллаборацию.
- DVC — система управления версиями данных и экспериментов, интегрируемая с Git.
¶Интересные факты
- Название «MLflow» происходит от идеи «потока» (flow) данных и моделей в машинном обучении.
- MLflow поддерживает более 20 «flavour» (форматов моделей), включая редкие, такие как Spark MLlib и H2O.
- В 2023 году Databricks выпустила MLflow 2.0 с улучшенной поддержкой пайплайнов и автоматического логирования.
- MLflow используется в проектах с открытым исходным кодом, таких как Hugging Face Spaces, для демонстрации моделей.
¶Источники
- MLflow Documentation — официальная документация проекта (mlflow.org).
- Databricks Blog — анонс MLflow (2018) и обновления версий.
- O’Reilly Media — «MLflow: A Tool for Managing the Machine Learning Lifecycle» (2020).
- JetBrains Developer Survey — статистика использования инструментов MLOps (2023, 2024).
- Apache Software Foundation — инкубатор MLflow (2020–2022).
- Статья «MLflow vs. Kubeflow vs. Neptune» на платформе Towards Data Science (2023).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


