Предположим, что вы подготовили данные и хотите использовать MLflow для управления и использования вашей модели ML.

Первый шаг – поставить эксперимент.

Пустой эксперимент присутствует здесь:

И здесь:

На данный момент эксперимент пуст. Этот код меняет ситуацию. Создается пять прогонов. Запуск – это часть эксперимента. Эксперимент может содержать много прогонов. Каждый запуск может иметь разные параметры.

На картинке ниже показан этот эксперимент и множество прогонов.

Что произошло в коде?

Строка 13: mlflow.start_run — создает новый запуск эксперимента. В этом случае прогон привязывается к эксперименту с первого шага. Если мы хотим присоединить запуск к другому эксперименту, мы можем указать идентификатор эксперимента в качестве аргумента:

mlflow.start_run(experiment_id = 2277472460643381, run_name=’random_forest_’+str(i), description=’MLFlow_wines_experiment_description’):

Строки 22, 23: mlflow.log_param — параметры, сохраненные в прогоне.

Строки 24, 25: mlflow.log_metric, mlflow.log_metrics — метрики, сохраненные в прогоне.

Строки 26, 27: mlflow.set_experiment_tag, mlflow.set_experiment_tags — теги, сохраненные в прогоне.

Строки 30, 31: mlflow.set_tag, mlflow.set_tags — теги, сохраненные в эксперименте.

Все вышеперечисленное (относительно пробегов) присутствует здесь:

Строка 28: mlflow.log_text — создает новый текстовый файл для запуска как артефакт, содержащий предоставленную строку.

Строка 38: mlflow.pyfunc.log_model — создает артефакты модели для запуска.

Вот артефакты:

Теперь мы можем зарегистрировать модель для последующего использования.

Вот все зарегистрированные модели, вы видите, мы зарегистрировали модель [wine_quality]. Мы использовали определенный идентификатор запуска, который представляет собой модель [random_forest_model4].

Если мы хотим использовать новейшую версию модели для прогнозирования, нам нужно изменить ее стадию. В настоящее время ожидается, что версия 6 будет использоваться в Production. Кстати, мы помечаем старую (Версия 3) как Заархивировано.

Модель готова. Вот два примера загрузки модели в блокнот.

Возможностей MLflow Python API гораздо больше. Несколько примеров в этом посте: Databricks MLflow — Python API несколько примеров

Вот еще одна функция, которая может оказаться полезной. Сравнение запусков. Где вы можете выбрать выбранные прогоны и проанализировать их свойства.

Вот код: MLflow управляет моделями