モデルの登録

MLflow 入門

Weston Bassler

Senior MLOps Engineer

MLflow モデルの登録

  • モデルのバージョン

    • 従来のソフトウェア開発に準拠
    • 変更を追跡
  • コラボレーション

    • 異なる役割間で
    • 改善のため同一役割内でも
MLflow 入門

モデルライフサイクル管理

モデルライフサイクル

1 datacamp.com
MLflow 入門

モデル登録の方法

# 既存の MLflow モデル
mlflow.register_model(model_uri, name)

model_uri

  • ローカルファイルシステム
  • トラッキングサーバー
# 学習実行中
mlflow.FLAVOR.log_model(name, 
    artifact_uri,
    registered_model_name="MODEL_NAME")

registered_model_name="MODEL_NAME"

MLflow 入門

モデル登録の例

# mlflow をインポート
import mlflow


# ローカルファイルシステムから登録 mlflow.register_model("./model", "Unicorn")
# Tracking サーバーから登録 mlflow.register_model("runs:/run-id/model", "Unicorn")
MLflow 入門
# ローカルの MLFlow モデルを登録
mlflow.register_model(model_uri="./model", name="Unicorn")
登録済みモデル 'Unicorn' は既に存在します。新しいバージョンを作成します...

2023/03/24 14:34:26 INFO mlflow.tracking._model_registry.client: モデルバージョンの作成完了を最大 300 秒待機します。 モデル名: Unicorn, バージョン 1 モデル 'Unicorn' のバージョン '1' を作成しました。 <ModelVersion: creation_timestamp=1679682866413, current_stage='None', description=None, last_updated_timestamp=1679682866413, name='Unicorn', run_id=None, run_link=None, source='./model', status='READY', status_message=None, tags={}, user_id=None, version=1>
MLflow 入門
# MLflow Tracking からモデルを登録
mlflow.register_model(model_uri="runs:/run-id/model", name="Unicorn")
登録済みモデル 'Unicorn' は既に存在します。新しいバージョンを作成します...
2023/03/24 14:36:56 INFO mlflow.tracking._model_registry.client: 
モデルバージョンの作成完了を最大 300 秒待機します。                     
モデル名: Unicorn, バージョン 2
モデル 'Unicorn' のバージョン '2' を作成しました。
<ModelVersion: creation_timestamp=1679683016297, current_stage='None', 
description=None, last_updated_timestamp=1679683016297, name='Unicorn', 
run_id='2e974508b68b45ceb114657c6e97fef5', run_link=None, 
source='./mlruns/1/2e974508b68b45ceb114657c6e97fef5/artifacts/model', 
status='READY', status_message=None, tags={}, user_id=None, version=2>
MLflow 入門

Models UI

Models の UI

MLflow 入門

Unicorn のバージョン

Unicorn のバージョン UI

MLflow 入門

モデルのログ記録

# モジュールをインポート
import mlflow
import mlflow.sklearn
from sklearn.linear_model import LogisticRegression


# モデル lr = LogisticRegression() lr.fit(X, y)
# モデルをログ mlflow.sklearn.log_model(lr, "model", registered_model_name="Unicorn")
MLflow 入門
# モデルをログ
mlflow.sklearn.log_model(lr, "model", registered_model_name="Unicorn")
登録済みモデル 'Unicorn' は既に存在します。新しいバージョンを作成します...
2023/03/24 17:31:10 INFO mlflow.tracking._model_registry.client: 
モデルバージョンの作成完了を最大 300 秒待機します。                     
モデル名: Unicorn, バージョン 3
モデル 'Unicorn' のバージョン '3' を作成しました。
<mlflow.models.model.ModelInfo object at 0x14734d330>
MLflow 入門

Let's practice

MLflow 入門

Preparing Video For Download...