Wprowadzenie do modeli MLflow

Wprowadzenie do MLflow

Weston Bassler

Senior MLOps Engineer

Modele MLflow

  • Uproszczenie integracji z bibliotekami ML

  • Uproszczenie wdrażania

  • Konwencja zwana „Flavors"

flavors

1 unsplash.com
Wprowadzenie do MLflow

Wbudowane Flavors

OBRAZY FLAVORÓW

  • Tworzenie niestandardowych narzędzi z bibliotek ML

  • Flavors eliminują potrzebę pisania niestandardowego kodu

# Import flavor from mlflow module
import mlflow.FLAVOR
1 mlflow.org
Wprowadzenie do MLflow

Autolog

# Automatically log model and metrics
mlflow.FLAVOR.autolog()
# Scikit-learn built-in flavor
mlflow.sklearn.autolog()
Wprowadzenie do 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 zostanie automatycznie zalogowany przy model.fit()

Wprowadzenie do MLflow

Typowe metryki

  • Regresja
    • błąd średniokwadratowy
    • pierwiastek błędu średniokwadratowego
    • średni błąd bezwzględny
    • współczynnik R²
  • Klasyfikacja
    • precyzja
    • czułość
    • miara F1
    • dokładność

Typowe parametry

MODEL.get_params()
Wprowadzenie do MLflow

Typowe parametry

# 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}
Wprowadzenie do MLflow

Autolog – parametry

parametry

# Model
lr = LinearRegression()
lr.fit(X, y)
Wprowadzenie do MLflow

Autolog – metryki

metryki

# Model
lr = LinearRegression()
lr.fit(X, y)
Wprowadzenie do MLflow

Format przechowywania

Struktura katalogów modelu:

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

Artefakty

Wprowadzenie do MLflow

Zawartość pliku 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
Wprowadzenie do MLflow

MLmodel

MLmodel

Wprowadzenie do MLflow

Czas na ćwiczenia!

Wprowadzenie do MLflow

Preparing Video For Download...