MLflow 模型入門

MLflow 入門

Weston Bassler

Senior MLOps Engineer

MLflow 模型

  • 簡化 ML 函式庫整合

  • 簡化部署

  • 稱為「Flavors」的慣例

flavors

1 unsplash.com
MLflow 入門

內建 Flavors

IMAGES OF 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 入門

Scikit-learn Flavor

# 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 入門

常用評估指標

  • 回歸
    • 均方誤差(MSE)
    • 均方根誤差(RMSE)
    • 平均絕對誤差(MAE)
    • R2 分數
  • 分類
    • 精確率
    • 召回率
    • F1 分數
    • 準確率

常用參數

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 入門

Autolog 參數

parameters

# Model
lr = LinearRegression()
lr.fit(X, y)
MLflow 入門

Autolog 指標

metrics

# Model
lr = LinearRegression()
lr.fit(X, y)
MLflow 入門

儲存格式

模型的目錄結構:

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

Artifacts

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...