MLflow モデルレジストリ入門

MLflow 入門

Weston Bassler

Senior MLOps Engineer

モデルのライフサイクル

開発・ステージングの図

MLflow 入門

MLflow モデルレジストリ

  • 集中管理の保存場所

  • ライフサイクル管理

    • Web UI
    • MLflow Client モジュール
    • モデルバージョン
    • モデル段階

モデルレジストリ

MLflow 入門

MLflow モデルレジストリ

  • モデル

    • MLflow Tracking に記録
  • 登録済みモデル

    • バージョンを取得
    • ステージ割当て可能
MLflow 入門

MLflow モデルレジストリ

  • モデルバージョン

    • 新規登録ごとに増分
  • モデルステージ

    • 次から1つを割当て可能:
      • None
      • Staging
      • Production
      • Archived

ステージ

MLflow 入門

モデルレジストリの操作

モデル

MLflow 入門

MLflow Client モジュール

  • 実験

  • 実行

  • モデルバージョン

  • 登録済みモデル

機械学習

1 Flaticon.com
MLflow 入門

MLflow Client モジュールの利用

# Import from MLflow module
from mlflow import MlflowClient


# Create an instance client = MlflowClient()
# Print the object client
<mlflow.tracking.client.MlflowClient object at 0x101d55f30>
MLflow 入門

モデルの登録

# Create a Model named "Unicorn"
client.create_registered_model(name="Unicorn")
<RegisteredModel: creation_timestamp=1679404160448, description=None, 
last_updated_timestamp=1679404160448, latest_versions=[], name='Unicorn', 
tags={}>
MLflow 入門

モデル UI

モデル作成

MLflow 入門

登録済みモデルの検索

モデル検索

MLflow 入門

登録済みモデルの検索

# Search for registered models
client.search_registered_models(filter_string=MY_FILTER_STRING)
  • 識別子
    • name - モデル名
    • tags - モデルのタグ
  • 比較子
    • = - 等しい
    • != - 等しくない
    • LIKE - 大文字小文字を区別してパターン一致
    • ILIKE - 大文字小文字を区別しないパターン一致
MLflow 入門

検索例

# Filter string
unicorn_filter_string = "name LIKE 'Unicorn%'"


# Search models client.search_registered_models(filter_string=unicorn_filter_string)
[<RegisteredModel: creation_timestamp=1679404160448, description=None, 
last_updated_timestamp=1679404160448, latest_versions=[], name='Unicorn', 
tags={}>, 
<RegisteredModel: creation_timestamp=1679404276745, description=None, 
last_updated_timestamp=1679404276745, latest_versions=[], name='Unicorn 2.0', 
tags={}>]
MLflow 入門

¡Vamos a practicar!

MLflow 入門

Preparing Video For Download...