MLflow モデル入門

MLflow 入門

Weston Bassler

Senior MLOps Engineer

MLflow Models

  • MLライブラリ連携を簡素化

  • デプロイを簡素化

  • 「フレーバー」という規約

フレーバー

1 unsplash.com
MLflow 入門

組み込みフレーバー

フレーバーの画像

  • MLライブラリのカスタムツールを作成

  • フレーバーでカスタムコード対応を簡素化

# mlflow モジュールからフレーバーをインポート
import mlflow.FLAVOR
1 mlflow.org
MLflow 入門

Autolog(自動ログ)

# モデルと指標を自動でログ
mlflow.FLAVOR.autolog()
# scikit-learn の組み込みフレーバー
mlflow.sklearn.autolog()
MLflow 入門

Scikit-learn フレーバー

# scikit-learn をインポート
import mlflow
from sklearn.linear_model import \
    LinearRegression

# 自動ロギングを有効化 mlflow.sklearn.autolog()
# モデル学習
lr = LinearRegression()
lr.fit(X, y)

model.fit() 実行時に自動でログされます

MLflow 入門

代表的な指標

  • 回帰
    • mean squared error
    • root mean squared error
    • mean absolute error
    • r2 score
  • 分類
    • precision score
    • recall score
    • f1 score
    • accuracy score

代表的なパラメータ

MODEL.get_params()
MLflow 入門

代表的なパラメータ

# モデル学習
lr = LinearRegression()
lr.fit(X, y)

# パラメータ取得 params = lr.get_params(deep=True)
params
{'copy_X': True, 'fit_intercept': True, 'n_jobs': None, 
    'normalize': 'deprecated', 'positive': False}
MLflow 入門

パラメータの自動ログ

パラメータ

# モデル
lr = LinearRegression()
lr.fit(X, y)
MLflow 入門

指標の自動ログ

指標

# モデル
lr = LinearRegression()
lr.fit(X, y)
MLflow 入門

保存形式

モデルのディレクトリ構成:

model/
    MLmodel
    model.pkl
    python_env.yaml
    requirements.txt
# 自動ログ
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...