Введение в модели MLflow

Введение в MLflow

Weston Bassler

Senior MLOps Engineer

Модели MLflow

  • Упрощение интеграции с ML-библиотеками

  • Упрощение развёртывания

  • Концепция «Flavors»

flavors

1 unsplash.com
Введение в MLflow

Встроенные Flavors

ИЗОБРАЖЕНИЯ FLAVORS

  • Написание пользовательских инструментов для ML-библиотек

  • Flavors упрощают необходимость в пользовательском коде

# Import flavor from mlflow module
import mlflow.FLAVOR
1 mlflow.org
Введение в MLflow

Autolog

# Automatically log model and metrics
mlflow.FLAVOR.autolog()
# Scikit-learn built-in flavor
mlflow.sklearn.autolog()
Введение в MLflow

Flavor для Scikit-learn

# Import scikit-learn
import mlflow
from sklearn.linear_model import \
    LinearRegression

# Using auto-logging mlflow.sklearn.autolog()
# Train the model
lr = LinearRegression()
lr.fit(X, y)

Модель будет залогирована автоматически при вызове model.fit()

Введение в MLflow

Основные метрики

  • Регрессия
    • среднеквадратичная ошибка
    • корень из среднеквадратичной ошибки
    • средняя абсолютная ошибка
    • коэффициент детерминации r2
  • Классификация
    • точность (precision)
    • полнота (recall)
    • F1-мера
    • доля правильных ответов (accuracy)

Основные параметры

MODEL.get_params()
Введение в MLflow

Основные параметры

# Train the model
lr = LinearRegression()
lr.fit(X, y)

# Get params params = lr.get_params(deep=True)
params
{'copy_X': True, 'fit_intercept': True, 'n_jobs': None, 
    'normalize': 'deprecated', 'positive': False}
Введение в MLflow

Автологирование параметров

параметры

# Model
lr = LinearRegression()
lr.fit(X, y)
Введение в MLflow

Автологирование метрик

метрики

# Model
lr = LinearRegression()
lr.fit(X, y)
Введение в MLflow

Формат хранения

Структура директории модели:

model/
    MLmodel
    model.pkl
    python_env.yaml
    requirements.txt
# Autolog
mlflow.sklearn.autolog()

Артефакты

Введение в MLflow

Содержимое файла MLmodel

artifact_path: model
flavors:
  python_function:
    env:
      virtualenv: python_env.yaml
    loader_module: mlflow.sklearn
    model_path: model.pkl
    predict_fn: predict
    python_version: 3.10.8
  sklearn:
    code: null
    pickled_model: model.pkl
    serialization_format: cloudpickle
    sklearn_version: 1.1.3
Введение в MLflow

MLmodel

MLmodel

Введение в MLflow

Давайте потренируемся!

Введение в MLflow

Preparing Video For Download...