モデルを管理するManage models

Azure Databricks には、MLflow モデル レジストリのホストされたバージョンが用意されており、MLflow モデルのライフサイクル全体を管理するのに役立ちます。Azure Databricks provides a hosted version of the MLflow Model Registry to help you to manage the full lifecycle of MLflow Models. モデル レジストリには、時系列モデル系列 (特定の時点でモデルを生成した MLflow 実験と実行)、モデルのバージョン管理、ステージの遷移 (例: ステージングから運用またはアーカイブまで)、モデルとモデル バージョンの注釈と説明が用意されています。Model Registry provides chronological model lineage (which MLflow experiment and run produced the model at a given time), model versioning, stage transitions (for example, from staging to production or archived), and model and model version annotations and descriptions.

この記事では、機械学習ワークフローの一部としてモデル レジストリを使用する方法について説明し、モデル レジストリ UI とモデル レジストリ API の両方について説明します。This article covers how to use the Model Registry as part of your machine learning workflow and includes instructions for both the Model Registry UI and the Model Registry API.

モデル レジストリの概念の概要については、「MLflow ガイド」を参照してください。For an overview of Model Registry concepts, see MLflow guide.

このセクションの内容:In this section:

必要条件Requirements

モデル レジストリ UI を使用するには、以下が必要です。To use the Model Registry UI:

  • mlflow>=1.7.0 がインストールされた Databricks Runtime 6.4 以降Databricks Runtime 6.4 or above with mlflow>=1.7.0 installed
  • mlflow>=1.7.0 がインストールされた Databricks Runtime 6.4 MLDatabricks Runtime 6.4 ML with mlflow>=1.7.0 installed
  • Databricks Runtime 6.5 ML 以降Databricks Runtime 6.5 ML or above

モデル レジストリ API を使用するには、以下が必要です。To use the Model Registry API:

  • Databricks Runtime 6.5 以降Databricks Runtime 6.5 or above
  • Databricks Runtime 6.5 ML 以降Databricks Runtime 6.5 ML or above
  • mlflow>=1.7.0 がインストールされた Databricks Runtime 6.4 以前Databricks Runtime 6.4 or below with mlflow>=1.7.0 installed
  • mlflow>=1.7.0 がインストールされた Databricks Runtime 6.4 ML 以前Databricks Runtime 6.4 ML or below with mlflow>=1.7.0 installed

モデルを作成または登録するCreate or register a model

このセクションの内容:In this section:

UI を使用してモデルを作成または登録するCreate or register a model using the UI

モデル レジストリにモデルを登録するには、2 つの方法があります。There are two ways to register a model in the Model Registry. MLflow にログ記録されている既存のモデルを登録するか、新しい空のモデルを作成して登録してから、以前にログに記録したモデルを割り当てることができます。You can register an existing model that has been logged to MLflow, or you can create and register a new, empty model and then assign a previously logged model to it.

ノートブックから既存のログに記録されたモデルをノートブックに登録するRegister an existing logged model from a notebook

  1. ワークスペースで、登録するモデルを含む MLflow 実行を特定します。In the Workspace, identify the MLflow run containing the model you want to register.

    1. ノートブック ツールバーの 実験 アイコン 実験 をクリックします。Click the Experiment icon Experiment in the notebook tool bar.

      ノートブック ツール バーNotebook toolbar

    2. [Experiment Runs](実験実行) サイドバーで、実行日の横にあるIn the Experiment Runs sidebar, click the 外部リンク アイコンをクリックします。icon next to the date of the run. [MLflow Run](MLflow 実行) ページが表示されます。The MLflow Run page displays. このページには、パラメーター、メトリック、タグ、および成果物の一覧を含む実行の詳細が表示されます。This page shows details of the run including parameters, metrics, tags, and list of artifacts.

  2. [Artifacts](成果物) セクションで、xxx-model という名前のディレクトリをクリックします。In the Artifacts section, click the directory named xxx-model.

    モデルの登録Register model

  3. 右端にある [モデルの登録] ボタンをクリックします。Click the Register Model button at the far right.

  4. [モデルの登録] ダイアログで、[モデル] ドロップダウン メニューから [新しいモデルの作成] を選択し、[モデル名] フィールドにモデルの名前を入力します (scikit-learn-power-forecasting など)。In the Register Model dialog, select Create New Model from the Model drop-down menu, and in the Model Name field, enter a model name, for example scikit-learn-power-forecasting.

    モデルの作成Create model

  5. [登録] をクリックします。Click Register. これにより、scikit-learn-power-forecasting という名前のモデルが登録され、MLflow モデル レジストリによって管理される安全な場所にモデルがコピーされ、新しいバージョンのモデルが作成されます。This registers a model named scikit-learn-power-forecasting, copies the model into a secure location managed by the MLflow Model Registry, and creates a new version of the model.

    しばらくすると、MLflow 実行 UI によって、[モデルの登録] ボタンが新しい登録済みのモデル バージョンへのリンクに置き換えられます。After a few moments, the MLflow Run UI replaces the Register Model button with a link to the new registered model version.

    モデルの作成Create model

  6. リンクをクリックして、モデル レジストリ UI で新しいモデル バージョンを開きます。Click the link to open the new model version in the Model Registry UI. 左のナビゲーション バーでYou can also find the model in the Model Registry by clicking the モデル アイコン アイコンをクリックして、モデル レジストリでモデルを見つけることもできます。icon in the left navigation bar.

新しい登録済みモデルを作成し、ログに記録されたモデルを割り当てるCreate a new registered model and assign a logged model to it

登録済みのモデルのページの [モデルの作成] ボタンを使用して、新しい空のモデルを作成してから、ログに記録されたモデルをそれに割り当てることができます。You can use the Create Model button on the registered models page to create a new, empty model and then assign a logged model to it. 次の手順に従います。Follow these steps:

  1. 登録済みのモデル ページで、 [モデルの作成] をクリックします。On the registered models page, click Create Model. モデルの名前を入力し、 [作成] をクリックします。Enter a name for the model and click Create.

  2. ノートブックから既存のログに記録されたモデルをノートブックに登録する」の 1 から 3 の手順に従います。Follow Steps 1 through 3 in Register an existing logged model from a notebook.

  3. [モデルの登録] ダイアログで、手順 1 で作成したモデルの名前を選択し、 [登録] をクリック ます。In the Register Model dialog, select the name of the model you created in Step 1 and click Register. これにより、作成した名前でモデルが登録され、MLflow モデル レジストリによって管理される安全な場所にモデルがコピーされ、モデル バージョン Version 1 が作成されます。This registers a model with the name you created, copies the model into a secure location managed by the MLflow Model Registry, and creates a model version: Version 1.

    しばらくすると、MLflow 実行 UI によって、[モデルの登録] ボタンが新しい登録済みのモデル バージョンへのリンクに置き換えられます。After a few moments, the MLflow Run UI replaces the Register Model button with a link to the new registered model version. これで、 [Experiment Runs](実験実行) ページの [モデルの登録] ダイアログの [モデル] ドロップダウン リストからモデルを選択できるようになりました。You can now select the model from the Model drop-down list in the Register Model dialog on the Experiment Runs page. また、Create ModelVersion などの API コマンドでその名前を指定して、新しいバージョンのモデルを登録することもできます。You can also register new versions of the model by specifying its name in API commands like Create ModelVersion.

API を使用してモデルを登録するRegister a model using the API

モデル レジストリにモデルを登録するには、プログラムによる 3 つの方法があります。There are three programmatic ways to register a model in the Model Registry. すべてのメソッドで、MLflow モデル レジストリによって管理される安全な場所にモデルがコピーされます。All methods copy the model into a secure location managed by the MLflow Model Registry.

  • MLflow 実験中にモデルをログに記録し、指定した名前で登録するには、mlflow.<model-flavor>.log_model(...) メソッドを使用します。To log a model and register it with the specified name during an MLflow experiment, use the mlflow.<model-flavor>.log_model(...) method. 名前付きの登録済みのモデルが存在しない場合、メソッドにより新しいモデルが登録され、Version 1 が作成され、ModelVersion MLflow オブジェクトが返されます。If a registered model with the name doesn’t exist, the method registers a new model, creates Version 1, and returns a ModelVersion MLflow object. 名前付きの登録済みのモデルが既にある場合は、メソッドにより新しいモデル バージョンが作成され、バージョン オブジェクトが返されます。If a registered model with the name exists already, the method creates a new model version and returns the version object.

    with mlflow.start_run(run_name=<run-name>) as run:
      ...
      mlflow.<model-flavor>.log_model(<model-flavor>=<model>,
        artifact_path="<model-path>",
        registered_model_name="<model-name>"
      )
    
  • すべての実験実行が完了し、レジストリに追加するのに最も適したモデルを決定した後、指定された名前を持つモデルを登録するには、mlflow.register_model() メソッドを使用します。To register a model with the specified name after all your experiment runs complete and you have decided which model is most suitable to add to the registry, use the mlflow.register_model() method. この方法では、mlruns:URI 引数の実行 ID が必要です。For this method, you need the run ID for the mlruns:URI argument. 名前付きの登録済みのモデルが存在しない場合、メソッドにより新しいモデルが登録され、Version 1 が作成され、ModelVersion MLflow オブジェクトが返されます。If a registered model with the name doesn’t exist, the method registers a new model, creates Version 1, and returns a ModelVersion MLflow object. 名前付きの登録済みのモデルが既にある場合は、メソッドにより新しいモデル バージョンが作成され、バージョン オブジェクトが返されます。If a registered model with the name exists already, the method creates a new model version and returns the version object.

    result=mlflow.register_model("runs:<model-path>", "<model-name>")
    
  • 指定された名前で新しい登録済みモデルを作成するには、MLflow Client API create_registered_model() メソッドを使用します。To create a new registered model with the specified name, use the MLflow Client API create_registered_model() method. モデル名が存在する場合、このメソッドにより MLflowException がスローされます。If the model name exists, this method throws an MLflowException.

    client = MlflowClient()
    result = client.create_registered_model("<model-name>")
    

モデルへのアクセスの制御Control access to models

モデル レジストリに登録されているモデルへのアクセスを制御する方法については、「MLflow モデル権限」を参照してください。To learn how to control access to models registered in Model Registry, see MLflow Model permissions.

モデル ステージを切り替えるTransition a model stage

モデル バージョンには、次のいずれかの段階があります: None (なし)Staging (ステージング)Production (運用)Archived (アーカイブ済み)A model version has one of the following stages: None, Staging, Production, or Archived. ステージング 段階は、モデルのテストと検証を目的としています。一方、運用 段階は、テストまたはレビューのプロセスを完了し、ライブ スコア付けのためにアプリケーションにデプロイされたモデル バージョンを対象としています。The Staging stage is meant for model testing and validating, while the Production stage is for model versions that have completed the testing or review processes and have been deployed to applications for live scoring. アーカイブされたモデル バージョンは、非アクティブであると想定されます。その時点で、削除することを検討できます。An Archived model version is assumed to be inactive, at which point you can consider deleting it. さまざまなモデル バージョンを、さまざまなステージに配置できます。Different versions of a model can be in different stages.

適切な権限を持つユーザーは、モデル バージョンのステージを切り替えることができます。A user with appropriate permission can transition a model version between stages. モデル バージョンを特定のステージに切り替える権限がある場合は、切り替えを直接行うことができます。If you have permission to transition a model version to a particular stage, you can make the transition directly. 権限を持っていない場合は、ステージ切り替えを要求できます。また、モデル バージョンを切り替える権限を持つユーザーは、要求を承認、却下、またはキャンセルすることができます。If you do not have permission, you can request a stage transition and a user that has permission to transition model versions can approve, reject, or cancel the request.

このセクションの内容:In this section:

UI を使用したモデル ステージの切り替えTransition a model stage using the UI

モデルのステージを切り替えるには、次の手順に従います。Follow these instructions to transition a model’s stage.

  1. 使用可能なモデル ステージと使用可能なオプションの一覧を表示するには、モデル バージョンのページで、 [ステージ: ] ボタンをクリックし、別のステージへの切り替えを要求または選択します。To display the list of available model stages and your available options, in a model version page, click the Stage: button and request or select a transition to another stage.

    ステージ切り替えのオプションStage transition options

  2. 省略可能なコメントを入力し、 [OK] をクリックします。Enter an optional comment and click OK.

モデル バージョンを運用ステージに切り替えるTransition a model version to the Production stage

テストと検証を行った後、運用ステージに移行または移行を要求できます。After testing and validation, you can transition or request a transition to the Production stage.

モデル レジストリでは、各ステージで登録済みモデルの複数のバージョンを使用できます。Model Registry allows more than one version of the registered model in each stage. 運用で 1 つのバージョンのみを使用する場合は、運用の既存のモデルのすべてのバージョンをアーカイブ済みに移行するには、 [Transition existing Production model versions to Archived](既存の運用モデル バージョンをアーカイブ済みに移行) をオンにします。If you want to have only one version in Production, you can transition all versions of the model currently in Production to Archived by checking Transition existing Production model versions to Archived.

モデル バージョンのステージ切り替え要求の承認、拒否、または取り消し Approve, reject, or cancel a model version stage transition request

ステージ切り替え権限のないユーザーは、ステージ切り替えを要求できます。A user without stage transition permission can request a stage transition. 要求は、モデル バージョンのページの [保留中の要求] セクションに表示されます。The request appears in the Pending Requests section in the model version page:

運用への移行Transition to production

ステージ切り替えの要求を承認、拒否、またはキャンセルするには、 [承認][拒否] 、または [Cancel](取り消し) リンクをクリックします。To approve, reject, or cancel a stage transition request, click the Approve, Reject, or Cancel link.

切り替え要求の作成者は、要求をキャンセルすることもできます。The creator of a transition request can also cancel the request.

モデル バージョンのアクティビティを表示するView model version activities

要求された、承認された、保留中、そしてモデル バージョンに適用されているすべての移行を表示するには、[アクティビティ] セクションに移動します。To view all the transitions requested, approved, pending, and applied to a model version, go to the Activities section. このアクティビティのレコードにより、監査または検査のためのモデルのライフサイクルの系列が提供されます。This record of activities provides a lineage of the model’s lifecycle for auditing or inspection.

API を使用したモデル ステージの切り替えTransition a model stage using the API

適切な権限を持つユーザーは、モデル バージョンを新しいステージに切り替えることができます。Users with appropriate permissions can transition a model version to a new stage.

モデル バージョン ステージを新しいステージに更新するには、次のように MLflow Client API transition_model_version_stage() メソッドを使用します。To update a model version stage to a new stage, use the MLflow Client API transition_model_version_stage() method:

  client = MlflowClient()
  client.transition_model_version_stage(
    name="<model-name>",
    version=<model-version>,
    stage="<stage>",
    description="<description>"
  )

<stage> に指定できる値は、"Staging"|"staging""Archived"|"archived""Production"|"production"、および "None"|"none" です。The accepted values for <stage> are: "Staging"|"staging", "Archived"|"archived", "Production"|"production", "None"|"none".

モデルまたはモデル バージョンに注釈を付けるAnnotate a model or model version

注釈を付けて、モデルまたはモデル バージョンに関する情報を提供できます。You can provide information about a model or model version by annotating it. たとえば、問題の概要や、使用される手法とアルゴリズムに関する情報を含めることができます。For example, you may want to include an overview of the problem or information about the methodology and algorithm used.

UI を使用してモデルまたはモデル バージョンに注釈を付けるAnnotate a model or model version using the UI

モデルまたはモデル バージョンの説明を追加または更新するには:To add or update a model or model version description:

  1. 登録されているモデルまたは モデル バージョンのページで、説明 編集アイコン アイコンをクリックします。From the registered model or model version page, click the Description Edit Icon icon. 編集ウィンドウが表示されます。An edit window displays.

  2. 編集ウィンドウで説明を入力または編集します。Enter or edit the description in the edit window.

  3. [保存] をクリックします。Click Save.

    モデル バージョンの説明を入力した場合、登録済みのモデルのページの表内の [説明] 列に説明が表示されます。If you entered a description of a model version, the description appears in the Description column in the table on the registered model page. 列には、最大で 32 文字または 1 行のテキスト (短い方) が表示されます。The column displays a maximum of 32 characters or one line of text, whichever is shorter.

API を使用してモデル バージョンに注釈を付けるAnnotate a model version using the API

モデル バージョンの説明を更新するには、MLflow Client API update_model_version() メソッドを使用します。To update a model version description, use the MLflow Client API update_model_version() method:

client = MlflowClient()
client.update_model_version(
  name="<model-name>",
  version=<model-version>,
  description="<description>"
)

モデル名を変更する (API のみ)Rename a model (API only)

登録されているモデルの名前を変更するには、MLflow Client API rename_registered_model() メソッドを使用します。To rename a registered model, use the MLflow Client API rename_registered_model() method:

client=MlflowClient()
client.rename_registered_model("<model-name>", "<new-model-name>")

注意

登録されているモデルの名前を変更できるのは、バージョンがない場合、またはすべてのバージョンが "なし" または "アーカイブ済み" ステージにある場合のみです。You can rename a registered model only if it has no versions, or all versions are in the None or Archived stage.

モデルを検索するSearch for a model

登録済みのモデルはすべて MLflow モデル レジストリにあります。All registered models live in the MLflow Model Registry. UI または API を使用してモデルを検索できます。You can search for models using the UI or the API.

UI を使用してモデルを検索するSearch for a model using the UI

登録されているすべてのモデルを表示するには、サイドバーのTo display all registered models, click the モデル アイコン アイコンをクリックします。icon in the sidebar.

特定のモデルを検索するには、検索ボックスにモデルの名前を入力します。To search for a specific model, type in the model name in the search box.

登録済みのモデルの検索Registered models search

API を使用してモデルを検索するSearch for a model using the API

登録されているすべてのモデルの一覧を取得するには、MLflow Client API list_model_versions() メソッドを使用します。To retrieve a list of all registered models, use the MLflow Client API list_model_versions() method:

from pprint import pprint

client = MlflowClient()
for rm in client.list_registered_models():
  pprint(dict(rm), indent=4)

これにより、以下が出力されます。This outputs:

{   'creation_timestamp': 1582671933216,
    'description': None,
    'last_updated_timestamp': 1582671960712,
    'latest_versions': [<ModelVersion: creation_timestamp=1582671933246, current_stage='Production', description='A random forest model containing 100 decision trees trained in scikit-learn', last_updated_timestamp=1582671960712, name='sk-learn-random-forest-reg-model', run_id='ae2cc01346de45f79a44a320aab1797b', source='./mlruns/0/ae2cc01346de45f79a44a320aab1797b/artifacts/sklearn-model', status='READY', status_message=None, user_id=None, version=1>,
    <ModelVersion: creation_timestamp=1582671960628, current_stage='None', description=None, last_updated_timestamp=1582671960628, name='sk-learn-random-forest-reg-model', run_id='d994f18d09c64c148e62a785052e6723', source='./mlruns/0/d994f18d09c64c148e62a785052e6723/artifacts/sklearn-model', status='READY', status_message=None, user_id=None, version=2>],
    'name': 'sk-learn-random-forest-reg-model'}

また、MLflow Client API search_model_versions() メソッドを使用して、特定のモデル名を検索し、そのバージョンの詳細を一覧表示することもできます。You can also search for a specific model name and list its version details using MLflow Client API search_model_versions() method:

from pprint import pprint

client=MlflowClient()
[pprint(mv) for mv in client.search_model_versions("name=<model-name>")]

これにより、以下が出力されます。This outputs:

{   'creation_timestamp': 1582671933246,
    'current_stage': 'Production',
    'description': 'A random forest model containing 100 decision trees '
                   'trained in scikit-learn',
    'last_updated_timestamp': 1582671960712,
    'name': 'sk-learn-random-forest-reg-model',
    'run_id': 'ae2cc01346de45f79a44a320aab1797b',
    'source': './mlruns/0/ae2cc01346de45f79a44a320aab1797b/artifacts/sklearn-model',
    'status': 'READY',
    'status_message': None,
    'user_id': None,
    'version': 1 }

{   'creation_timestamp': 1582671960628,
    'current_stage': 'None',
    'description': None,
    'last_updated_timestamp': 1582671960628,
    'name': 'sk-learn-random-forest-reg-model',
    'run_id': 'd994f18d09c64c148e62a785052e6723',
    'source': './mlruns/0/d994f18d09c64c148e62a785052e6723/artifacts/sklearn-model',
    'status': 'READY',
    'status_message': None,
    'user_id': None,
    'version': 2 }

モデルまたはモデル バージョンを削除するDelete a model or model version

UI または API を使用してモデルを削除することができます。You can delete a model using the UI or the API.

UI を使用してモデル バージョンまたはモデルを削除するDelete a model version or model using the UI

警告

この操作を元に戻すことはできません。You cannot undo this action. モデル バージョンをレジストリから削除するのではなく、"アーカイブ済み" ステージにそれを移行することができます。You can transition a model version to the Archived stage rather than deleting it from the registry. モデルを削除すると、モデル レジストリに格納されているすべてのモデル成果物と、登録済みモデルに関連付けられているすべてのメタデータが削除されます。When you delete a model, all model artifacts stored by the Model Registry and all the metadata associated with the registered model are deleted.

注意

モデルおよびモデル バージョンは、"なし" または "アーカイブ済み" ステージでのみ削除できます。You can only delete models and model versions in the None or Archived stage. 登録済みモデルのステージングまたは運用ステージにバージョンがある場合は、モデルを削除する前に、それらを "なし" または "アーカイブ済み" のいずれかのステージに移行する必要があります。If a registered model has versions in the Staging or Production stage, you must transition them to either the None or Archived stage before deleting the model.

モデル バージョンを削除するには:To delete a model version:

  1. 以下をクリックしますClick the モデル アイコン アイコンをクリックします。icon in the sidebar.

  2. モデル名をクリックします。Click a model name.

  3. モデル バージョンをクリックします。Click a model version.

  4. テキスト カーソルが既にクラスの空の行にある場合は、左余白に表示されているSelect the 下向きボタン を選択します。next to the version number.

    モデル バージョンの削除Delete model version

  5. [削除] ボタンをクリックします。Click the Delete button.

モデルを削除するには:To delete a model:

  1. 以下をクリックしますClick the モデル アイコン アイコンをクリックします。icon in the sidebar.
  2. モデル名をクリックします。Click a model name.
  3. テキスト カーソルが既にクラスの空の行にある場合は、左余白に表示されているSelect the 下向きボタン を選択します。next to the model.
  4. [削除] ボタンをクリックします。Click the Delete button.

API を使用してモデル バージョンまたはモデルを削除するDelete a model version or model using the API

警告

この操作を元に戻すことはできません。You cannot undo this action. モデル バージョンをレジストリから削除するのではなく、"アーカイブ済み" ステージにそれを移行することができます。You can transition a model version to the Archived stage rather than deleting it from the registry. モデルを削除すると、モデル レジストリに格納されているすべてのモデル成果物と、登録済みモデルに関連付けられているすべてのメタデータが削除されます。When you delete a model, all model artifacts stored by the Model Registry and all the metadata associated with the registered model are deleted.

注意

モデルおよびモデル バージョンは、"なし" または "アーカイブ済み" ステージでのみ削除できます。You can only delete models and model versions in the None or Archived stage. 登録済みモデルのステージングまたは運用ステージにバージョンがある場合は、モデルを削除する前に、それらを "なし" または "アーカイブ済み" のいずれかのステージに移行する必要があります。If a registered model has versions in the Staging or Production stage, you must transition them to either the None or Archived stage before deleting the model.

モデル バージョンを削除するDelete a model version

モデル バージョンを削除するには、MLflow Client API delete_model_version() メソッドを使用します。To delete a model version, use the MLflow Client API delete_model_version() method:

# Delete versions 1,2, and 3 of the model
client = MlflowClient()
versions=[1, 2, 3]
for version in versions:
  client.delete_model_version(name="<model-name>", version=version)

モデルを削除するDelete a model

モデルを削除するには、MLflow Client API delete_registered_model() メソッドを使用します。To delete a model, use the MLflow Client API delete_registered_model() method:

client = MlflowClient()
client.delete_registered_model(name="<model-name>")

ワークスペース間でモデルを共有するShare models across workspaces

Azure Databricks では、複数のワークスペース間でのモデルの共有がサポートされています。Azure Databricks supports sharing models across multiple workspaces. たとえば、独自のワークスペースでモデルを開発してログに記録し、それを一元化されたモデル レジストリに登録できます。For example, you can develop and log a model in your own workspace and then register it in a centralized model registry. これは、複数のチームでモデルへのアクセスを共有する場合に便利です。This is useful when multiple teams share access to models. 複数のワークスペースを作成し、これらの環境全体でモデルを使用および管理することができます。You can create multiple workspaces and use and manage models across these enviroments.

Example

この例は、モデル レジストリを使用して機械学習アプリケーションを構築する方法を示しています。This example illustrates how to use the Model Registry to build a machine learning application.

MLflow モデル レジストリの例MLflow Model Registry example