Created by AIImproved by people
Riqli · living documents · updated continuously
Where AI knowledge meets human practice.
Share with friends

Трекинг экспериментов и версионирование моделей (MLflow / аналог)
Введение в трекинг экспериментов и версионирование моделей
Трекинг экспериментов и версионирование моделей — это фундаментальные практики MLOps, которые позволяют воспроизводить результаты, сравнивать гипотезы и контролировать жизненный цикл моделей машинного обучения. Без систематического трекинга команды теряют информацию о том, какие гиперпараметры, данные и код привели к конкретному результату, что делает невозможным надёжное развертывание и откат моделей.
В современных облачных платформах эти практики реализуются через специализированные сервисы. Например, в Azure Machine Learning рабочая область и хранилища данных централизованно управляют экспериментами, вычислительными ресурсами, наборами данных и моделями, а история запусков и активы версионируются для обеспечения воспроизводимости .
MLflow — это открытая платформа для управления жизненным циклом машинного обучения, включающая два ключевых компонента: трекинг экспериментов (Tracking) и реестр моделей (Model Registry). Трекинг позволяет логировать параметры, метрики и артефакты каждого запуска, а реестр служит единым источником достоверной информации о моделях, обеспечивая контроль версий, управление и продвижение моделей в продакшен .
MLflow может развертываться на Kubernetes для масштабируемости, хранить артефакты в объектном хранилище (например, Oracle Cloud Infrastructure Object Storage) и интегрироваться с CI/CD-инструментами. Такая архитектура позволяет командам отслеживать происхождение моделей и управлять их версиями на протяжении всего жизненного цикла.
В экосистеме Azure сервис Azure Machine Learning предоставляет MLflow-совместимые API для трекинга экспериментов, запусков, метрик, параметров, артефактов и моделей непосредственно в рабочей области. Это означает, что команды могут использовать знакомые интерфейсы MLflow, не покидая управляемую среду Azure .
Databricks, будучи платформой, где MLflow изначально был разработан, глубоко интегрирует трекинг экспериментов и реестр моделей в свою архитектуру Lakehouse. Delta Lake управляет версионированием наборов данных и их происхождением, а Git Folders обеспечивают версионирование кода, создавая полную картину воспроизводимости .
Какой компонент MLflow отвечает за логирование параметров, метрик и артефактов каждого запуска?
MLflow Tracking
MLflow Tracking предназначен для записи и запроса экспериментов, включая параметры, метрики и артефакты.
MLflow Model Registry
MLflow Projects
MLflow Recipes
Какая облачная платформа предоставляет MLflow-совместимые API для трекинга непосредственно в рабочей области?
Azure Machine Learning
Azure Machine Learning интегрирует MLflow-совместимые API, позволяя использовать трекинг и управление моделями внутри рабочей области .
Google Vertex AI
Amazon SageMaker
IBM Watson Studio
Какой компонент Databricks отвечает за версионирование наборов данных и их происхождение?
Delta Lake
Delta Lake управляет версионированием данных и линией происхождения, обеспечивая воспроизводимость .
MLflow Tracking
Databricks Git Folders
Feature Store
Практическая работа с MLflow в Azure Databricks: интерфейс, автоматическое логирование и поиск экспериментов
Практическая работа с MLflow в Azure Databricks: настройка, запуск и сравнение экспериментов
Для просмотра результатов экспериментов в Azure Databricks используется веб-интерфейс MLflow. Чтобы открыть его, выберите Experiments (Эксперименты) в боковой панели рабочей области. В списке экспериментов можно отфильтровать записи с помощью флажка Only my experiments или строки поиска Filter experiments.
После выбора эксперимента открывается страница Runs (Запуски), где отображаются все запуски, связанные с данным экспериментом. Для каждого запуска доступны параметры, метрики и метаданные. Вкладка Models (Модели) показывает залогированные модели с их точностью и гиперпараметрами .
В Azure Databricks MLflow предустановлен на кластерах Databricks Runtime ML, однако для использования библиотеки необходимо убедиться, что пакет mlflow установлен на кластере. Инструкции по установке библиотек доступны в документации Databricks . Для работы с MLflow 3 и его возможностями отслеживания рекомендуется обновить библиотеку до последней версии.
По умолчанию Databricks предоставляет размещённый сервер отслеживания MLflow, который хранит данные экспериментов в рабочей области без дополнительной настройки. Все запуски логируются на этот сервер, если не указано иное. Управление отслеживанием осуществляется через два параметра: Tracking URI (определяет сервер) и Experiment (определяет, в какой эксперимент сервера записывать запуски) .
Для установки активного эксперимента используются методы mlflow.set_experiment() (для всех последующих запусков в сессии) или mlflow.start_run(experiment_id=...) (для конкретного запуска). Также можно задать переменные окружения MLFLOW_EXPERIMENT_NAME или MLFLOW_EXPERIMENT_ID .
Если активный эксперимент не задан, запуски автоматически логируются в эксперимент текущей записной книжки (notebook experiment) . Рабочие эксперименты (workspace experiments) не привязаны к конкретной записной книжке и могут использоваться любым блокнотом через указание имени или идентификатора эксперимента .
На странице эксперимента доступна мощная система фильтрации запусков. Для поиска запусков по значениям параметров или метрик используется синтаксис запросов. Примеры: metrics.r2 > 0.3 — выбирает запуски с коэффициентом детерминации выше 0.3; params.elasticNetParam = 0.5 — запуски с определённым гиперпараметром; tags.estimator_name = 'RandomForestRegressor' — поиск по тегам .
Доступны агрегатные функции: MIN(metrics.rmse) <= 1 находит запуски с минимальным значением RMSE не выше 1, а MAX(metrics.memUsage) > 0.9 — с максимальным использованием памяти выше 90%. По умолчанию метрики фильтруются по последнему залогированному значению .
Автоматическое логирование (autologging) в MLflow позволяет существенно сократить объём кода, необходимого для отслеживания экспериментов. Достаточно вызвать соответствующую функцию перед обучением модели, например mlflow.sklearn.autolog() для scikit-learn или mlflow.tensorflow.autolog() для TensorFlow .
Autologging автоматически захватывает такие метрики, как accuracy, loss, F1-score, а также гиперпараметры и артефакты модели. Поддерживаются TensorFlow, PyTorch, scikit-learn, XGBoost, LightGBM и другие популярные фреймворки . Это позволяет разработчикам и дата-сайентистам легко сравнивать производительность разных моделей и экспериментов без ручного отслеживания .
MLflow поддерживает автоматическое логирование (autologging) для многих фреймворков машинного обучения, включая scikit-learn, TensorFlow, PyTorch и другие. Для активации достаточно вызвать соответствующую функцию, например mlflow.sklearn.autolog() .
Для более тонкого контроля над тем, какие параметры и метрики записываются, используется API логирования MLflow. В рамках запуска (with mlflow.start_run():) можно вызывать mlflow.log_param() для гиперпараметров, mlflow.log_metric() для метрик и mlflow.log_artifact() для артефактов (графиков, CSV-файлов) .
Для подключения к удалённому серверу отслеживания MLflow (например, из локальной среды разработки или при кросс-рабочем отслеживании) необходимо настроить Tracking URI и эксперимент: mlflow.set_tracking_uri('databricks://remote-workspace-url') и mlflow.set_experiment('/Shared/experiment-name') .
Аутентификация для удалённого сервера осуществляется через персональные токены доступа (PAT) или OAuth с использованием сервисных принципалов. PAT подходит для простых сценариев и разработки, OAuth рекомендуется для автоматизированных рабочих процессов и централизованного управления идентификацией .
Для локального запуска интерфейса MLflow используется команда mlflow ui. По умолчанию сервер запускается на порту 5000, и интерфейс доступен по адресу http://localhost:5000 .
Если данные хранятся в файловой системе, необходимо указать путь к хранилищу через параметр --backend-store-uri. Например, команда mlflow ui --backend-store-uri file://$PWD/mlruns --host 0.0.0.0 --port 5000 запускает UI для локальной директории mlruns с доступом извне . Это особенно полезно при работе в контейнерах или удалённых средах разработки .
Какая вкладка на странице эксперимента в MLflow UI показывает залогированные модели с их точностью и гиперпараметрами?
Какие два параметра управляют отслеживанием MLflow в Azure Databricks?
Models
Tracking URI и Experiment
Вкладка Models на странице эксперимента отображает залогированные модели, их точность, параметры и метаданные .
Tracking URI определяет сервер отслеживания, а Experiment — какой эксперимент на этом сервере использовать для логирования .
Workspace и Cluster
Runs
Model Name и Run ID
Charts
Notebook Path и Artifact Location
Artifacts
Куда логируются запуски MLflow, если активный эксперимент не задан явно?
Какой синтаксис запроса найдёт запуски с коэффициентом детерминации выше 0.3?
В эксперимент текущей записной книжки
metrics.r2 > 0.3
Синтаксис metrics.<имя_метрики> > <значение> используется для фильтрации запусков по значению метрики .
Если активный эксперимент не установлен, Azure Databricks автоматически создаёт notebook experiment и логирует запуски туда .