DatabricksにおけるMLflowモデルレジストリ

[MLflow Model Registry on Databricks \| Databricks on AWS](https://docs.databricks.com/applications/mlflow/model-registry.html) [2021/10/14時点]の翻訳です。

MLflowモデルレジストリは集中管理されたモデルリポジトリであり、MLflowモデルの完全なライフサイクルの管理を実現するためのUIと一連のAPIを提供します。モデルレジストリは、時系列のモデルリネージュ(特定の時点でどのMLflowエクスペリメント、ランがモデルを生成したのか)、モデルのバージョン管理、ステージ遷移(例えば、ステージングからプロダクション、アーカイブに)、モデルイベントにおけるメール通知といった機能を提供します。また、モデルの説明文やコメントを追加することができます。

モデルレジストリUIやモデルレジストリAPIを用いてモデルレジストリを操作することができます。このページには、モデルレジストリの概念的な情報、どのようにモデルレジストリを使うのかを説明するサンプルノートブックが含まれています。

モデルレジストリの利用手順に関しては、[Databricksにおける機械学習モデルの管理](https://qiita.com/taka_yayoi/items/2bf6e6a073456dce4fa1)をご覧ください。

# モデルレジストリのコンセプト

- **モデル:** エクスペリメントやランによって、モデルのフレーバーの`mlflow.<model-flavor>.log_model`メソッドで記録されるMLflowモデルです。記録されると、モデルをモデルレジストリに登録することができます。
- **登録モデル:** モデルレジストリに登録されるMLflowモデルです。登録モデルは、ユニークな名称、バージョン、モデルリネージュ、その他のメタデータを持ちます。
- **モデルバージョン:** 登録モデルの1バージョンです。モデルレジストリに新規モデルが登録されると、バージョン1として追加されます。同じモデル名に登録されるそれぞれのモデルは、バージョン番号を増加させます。
- **モデルステージ:** モデルバージョンは1つ以上のステージに割り当てることができます。MLflowは一般的なユースケースに対応する**None**、**Staging**、**Production**、**Archived**のステージを事前に定義しています。適切なアクセス権を持っていれば、モデルバージョンをステージ間で遷移させるか、遷移をリクエストすることができます。
- **説明文:** アルゴリズムの説明、使用したデータセット、方法論などチームにとって有用な情報、説明を含むモデルの意図を注釈することができます。
- **アクティビティ:** 登録されたそれぞれのモデルに対する、ステージ遷移のリクエストのようなアクティビティは記録されます。アクティビティの追跡によって、実験段階からステージング、プロダクションに至るモデルの進化におけるリネージュや監査可能性を提供します。

# 登録モデル一覧ページ

サイドバーの![](https://docs.databricks.com/_images/models-icon.png)**Models**をクリックすることで、登録モデル一覧ページが表示されます。このページでは、レジストリの全てのモデルが現在のステージ、最終更新時刻、タグ、サービング状況とともに表示されます。このページから[新規モデルを作成](https://qiita.com/taka_yayoi/items/2bf6e6a073456dce4fa1#%E6%96%B0%E8%A6%8F%E7%99%BB%E9%8C%B2%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E8%A8%98%E9%8C%B2%E6%B8%88%E3%81%BF%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E5%89%B2%E3%82%8A%E5%BD%93%E3%81%A6%E3%82%8B)することができます。

このページから、[モデルレジストリの全てのモデルに対するアクセス権](https://docs.databricks.com/security/access-control/workspace-acl.html#configure-permissions-for-all-mlflow-models-in-model-registry)を設定することができます。
![](https://docs.databricks.com/_images/registered-models.png)

# 登録モデルページ

モデルの登録モデルページを表示するには、登録モデル一覧ページでモデル名をクリックします。登録モデルページでは、選択したモデルの情報、および、それぞれのモデルバージョンに関する情報を示すテーブルが表示されます。このページから、以下のことが可能となります。

- [モデルサービングのセットアップ](https://docs.databricks.com/applications/mlflow/model-serving.html)
- [モデル推論のためのノートブックの自動生成](https://qiita.com/taka_yayoi/items/2bf6e6a073456dce4fa1#%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E6%8E%A8%E8%AB%96)
- [メール通知の設定](https://qiita.com/taka_yayoi/items/2bf6e6a073456dce4fa1#%E9%80%9A%E7%9F%A5%E8%A8%AD%E5%AE%9A)
- [モデルの削除](https://qiita.com/taka_yayoi/items/2bf6e6a073456dce4fa1#%E3%83%A2%E3%83%87%E3%83%AB%E3%83%A2%E3%83%87%E3%83%AB%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E5%89%8A%E9%99%A4)

![](https://docs.databricks.com/_images/registered-model.png)

# モデルバージョンページ

モデルバージョンページを表示するには、以下のいずれかを実行します。

- 登録モデル一覧ページの**Latest Version**のバージョン名をクリックします。
- 登録モデルページの**Version**カラムのバージョン名をクリックします。

このページでは、登録モデルの特定バージョンに関する情報を表示し、ソースとなるラン(モデルを生成するために実行されたノートブックのバージョン)へのリンクを提供します。このページでは、以下のことを実行できます。

- [モデル推論のためのノートブックの自動生成](https://qiita.com/taka_yayoi/items/2bf6e6a073456dce4fa1#%E3%83%A2%E3%83%87%E3%83%AB%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E6%8E%A8%E8%AB%96)
- [モデルの削除](https://qiita.com/taka_yayoi/items/2bf6e6a073456dce4fa1#%E3%83%A2%E3%83%87%E3%83%AB%E3%83%A2%E3%83%87%E3%83%AB%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%AE%E5%89%8A%E9%99%A4)
![](https://docs.databricks.com/_images/model-version.png)

# サンプル

風力発電における日次の出力電力を予測する機械学習アプリケーションを構築するために、どのようにモデルレジストリを使うのかを説明するサンプルに関しては、以下をご覧ください。

- [MLflow Model Registry example](https://docs.databricks.com/applications/mlflow/model-registry-example.html)

### Databricks 無料トライアル

[Databricks 無料トライアル](https://databricks.com/jp/try-databricks)