ここでは、モデルレジストリへの保存の記述をまとめていきます。
モデルレジストリの概念
-
モデル:モデルフレーバーの
mlflow.<model-flavor>.log_model
メソッドの1つでログに記録される実験または実行からログに記録されたMLflowモデル。ログに記録されたら、モデルをモデルレジストリに登録できます。 - 登録モデル:モデルレジストリに登録されているMLflowモデル。登録されたモデルには、一意の名前、バージョン、モデル系統、およびその他のメタデータがあります。
- モデルバージョン:登録済みモデルのバージョン。新しいモデルがモデルレジストリに追加されると、バージョン1として追加されます。同じモデル名に登録された各モデルは、バージョン番号をインクリメントします。
- モデルステージ:モデルバージョンには、1つ以上のステージを割り当てることができます。MLflowは、一般的なユースケースであるNone、Staging、Production、およびArchivedの事前定義されたステージを提供します。適切な権限があれば、ステージ間でモデルバージョンを移行したり、モデルステージの移行をリクエストしたりできます。
- 説明:モデルの意図に注釈を付けることができます。これには、説明と、アルゴリズムの説明、採用されたデータセット、方法論など、チームに役立つ関連情報が含まれます。
- アクティビティ:登録された各モデルのアクティビティ(ステージ移行の要求など)が記録されます。アクティビティのトレースは、実験から段階的なバージョン、本番まで、モデルの進化の系統と監査可能性を提供します。
MLflowモデルレジストリは、MLflowの既存の機能に基づいて構築されており、組織がMLモデルを共有し、実験からテストと本番への移行に協力し、承認とガバナンスのワークフローを実装するための1つの中心的な場所を提供します。
モデルレジストリは、MLモデルをより見つけやすくし、一般的なMLタスクを共同で改善するためのコラボレーション機能を提供することで、チーム間での専門知識と知識の共有を促進します。
開始するには、実験からMLflowモデルを登録するだけです。レジストリを使用すると、モデルの複数のバージョンを追跡し、それぞれにライフサイクルステージ(開発、ステージング、本番、またはアーカイブ)をマークできます。
MLflowモデルレジストリダッシュボードを介して表示されるサンプルの機械学習モデル
上記の画面で登録されているモデルを一覧で表示されます。
すべての実験実行が完了し、レジストリに追加するのに最も適したモデルを決定した後、指定された名前を持つモデルを登録するには、mlflow.register_model()
メソッドを使用します。
Python
result=mlflow.register_model("runs:<model-path>", "<model-name>")
指定された名前で新しい登録済みモデルを作成するには、MLflow Client API create_registered_model()
メソッドを使用します。 モデル名が存在する場合、このメソッドにより MLflowException
がスローされます。
Python
client = MlflowClient()
result = client.create_registered_model("<model-name>")
コマンド以外でレジストリに追加する場合
追加したいモデルの詳細画面を表示
Register Modelボタンをクリックして、登録することができる。
以上がモデルレジストリについてです。
見ていただき、ありがとうございました。
株式会社メソドロジック
川名智士
参照: