メインコンテンツまでスキップ

ワークフローとモデルを Unity Catalog に移行する

Databricks では、ガバナンスの向上、ワークスペースや環境間での共有の容易さ、より柔軟な MLOps ワークフローを実現するために、Unity Catalog のモデルの使用を推奨しています。このページでは、 Workspace Model Registry内のモデルをUnity Catalogに移行する手順を説明します。

Unity Catalogのモデルの紹介

Unity Catalogのモデルは、一元的なアクセス制御、監査、リネージ、ワークスペース全体でのモデルの共有と検出など、 Unity Catalogの利点をMLモデルに拡張します。 Unity Catalog のモデルは、モデルのライフサイクルを管理する際の柔軟性も高めます。

モデルをUnity Catalogに移行すると、一部のモデルライフサイクル ステップの実行方法が異なります。

ステップ 1. Unity Catalogでモデルを作成する

Unity Catalog 互換モデルのトレーニングと登録を行うを参照してください。

ステップ 2. Unity Catalog権限をモデルに割り当てる

Unity Catalog には統合された権限モデルがあります。Unity Catalog 内のモデルに権限を割り当てる方法については、 「モデルへのアクセスを制御する」を参照してください。

次の表は、ワークスペース モデル レジストリの権限とUnity Catalogの権限の関係を示しています。 表に示されている権限に加えて、すべてのアクションにはUSE CATALOGUSE SCHEMA権限も必要です。

ワークスペースモデルレジストリ

Unity Catalog

読み取り可能

EXECUTE

編集可能

モデルバージョンの作成 + タグの適用

これらの権限を持つユーザーは、モデルまたはモデル バージョンの 説明 を編集できません。

CAN MANAGE STAGING VERSIONS

APPLY タグ +展開ジョブ

Unity Catalog では、デプロイメントジョブを使用して、ライフサイクルステージを通じてモデルバージョンの移動を制御します。詳細については、 「MLflow 3 デプロイ ジョブ」を参照してください。

CAN MANAGE PRODUCTION VERSIONS

APPLY タグ +展開ジョブ

Unity Catalog では、デプロイメントジョブを使用して、ライフサイクルステージを通じてモデルバージョンの移動を制御します。詳細については、 「MLflow 3 デプロイ ジョブ」を参照してください。

管理可能

MANAGE

ステップ 3. モデルのバージョンをコピーする

モデル バージョンをコピーするには、MLflow クライアント >= 3.4.0copy_model_version()を使用します。

Python
from mlflow import MLflowClient

# Registry must be set to workspace registry
client = MlflowClient(registry_uri="databricks")

src_model_uri = f"models:/my_wmr_model/1"
uc_migrated_copy = client.copy_model_version(
src_model_uri, "mycatalog.myschema.my_uc_model"
)

宛先モデルがUnity Catalogに存在しない場合は、このAPI呼び出しによって作成されます。

Unity Catalog内のモデルには署名が必要です。 ワークスペース モデル バージョンに署名がない場合は、Databricks では、 MLflow ドキュメントの手順に従って署名を作成することをお勧めします。別の方法としては、環境変数MLFLOW_SKIP_SIGNATURE_CHECK_FOR_UC_REGISTRY_MIGRATIONを使用することです。この環境変数は、 copy_model_version()を使用する場合にのみ使用可能であり、MLflow バージョン3.4.0以上が必要です。この環境変数が"true"に設定されている場合、署名は必要ありません。

ワークスペース モデル レジストリ内のモデルのすべてのモデル バージョンを宛先Unity Catalogモデルに移行するために使用できるスクリプトについては、「 Workspace Model RegistryからUnity Catalogへのモデル バージョンの移行」を参照してください。

ステップ 4. モデルのメタデータを移行する

このセクションでは、ワークスペースのレジストリ レベルのメタデータを、ステージ、タグ、説明などの Unity Catalog モデルおよびモデル バージョン メタデータにマッピングする方法について説明します。

ステージ

Workspace Model Registry StagingProductionなどの「ステージ」の概念を使用して、モデルのライフサイクルを追跡していました。 ステージ別にモデルを検索したり呼び出したりすることができます。Unity Catalogでは、ステージは、モデルを呼び出すためのエイリアスと、モデルにラベルを付けるタグに置き換えられました。

Workspace Model Registryステージの簡単な移行では、「本番運用」や「Staging」などの任意のエイリアス名を直接使用できます。 Workspace Model Registryでは、複数のモデル バージョンが同じステージに存在する可能性があり、モデル バージョンを参照すると最新バージョンが呼び出されていました。 Unity Catalogでは、一意のモデル バージョンにエイリアスが割り当てられます。

ステージ ラベルを簡単に移行するには、タグを使用してモデル バージョンに「本番運用」、「ステージング」、または「アーカイブ」のラベルを付けます。 他のラベルも使用できます。タグの詳細については、 「タグ」を参照してください。

Workspace Model Registryでは、モデル バージョンのライフサイクルはステージごとに追跡され、移行リクエストには人間による承認が必要でした。 Unity Catalog では、モデル バージョンのライフサイクルはデプロイメント ジョブによって管理されます。デプロイメント ジョブ内の各タスクは、「ステージ」に対応します。デプロイメント ジョブを使用すると、モデルのライフサイクルをカスタマイズし、 Workspace Model Registryよりも複雑なワークフローに対応できます。 デプロイメント ジョブでは、引き続き人間による承認が行われます。詳細については、 「MLflow 3 デプロイ ジョブ」を参照してください。

タグ

Unity Catalogでは、モデルまたはモデルバージョンに基づいてタグを作成します。

Unity CatalogモデルバージョンUIにタグボタンを追加しました。

カタログ エクスプローラーでタグでモデルを検索するには、検索ボックスにキーまたは値を入力します。

Unity Catalogモデル UI でタグでモデルを検索します。

カタログ エクスプローラーでは、モデル バージョンではなくモデルのみを検索するためにタグを使用できます。MLflow クライアントは、Unity Catalog タグによるモデルの検索をサポートしていません。Unity Catalogは、オブジェクトごとに最大 50 タグが許可されます。

説明とコメント

モデルとモデル バージョンに説明を追加できます。Unity Catalog では、モデルの AI 生成の説明のオプションも提供されます。

Unity Catalogにモデルまたはモデル バージョンの説明を追加します。

Unity Catalog内のモデルには、ワークスペース モデル レジストリのモデル バージョン ページの [ アクティビティ] セクションに表示される情報に対応する場所がありません。 そのセクションにモデルバージョンとともに転送したい情報がある場合は、 Unity Catalogのモデルバージョンページの 「説明」 セクションにコピーします。

ステップ 5. すべてのワークロードとエンドポイントを更新します

モデルとモデル バージョンをUnity Catalogに移行した後、すべてのジョブ、ノートブック、およびモデルサービング エンドポイントを含むその他のワークロードを更新して、 Unity Catalogのバージョンを使用します。

ステップ 6. (オプション) デプロイメント ジョブを作成する

新しいモデル バージョンが作成されるたびにデプロイメント ジョブが自動的にトリガーされ、評価、承認、およびデプロイメント ワークフローが自動化されます。詳細については、 「MLflow 3 デプロイ ジョブ」を参照してください。

モデル バージョンの作成や承認などのイベントで通知をトリガーするように設定できます。「ジョブに通知を追加する」を参照してください。

Workspace Model Registry内のイベントに対して電子メール通知を設定していた場合は、次のように移行します。

  • 新しいモデル バージョンが作成されました: 新しいモデル バージョンが作成されたときにトリガーされる展開ジョブと、ジョブがトリガーされたときに電子メール通知を設定します。
  • ステージの移行リクエスト: ステージの移行リクエストは承認タスクに対応します。 承認タスクの成功または失敗を電子メールで通知するように設定します。
  • ステージの移行: ステージの移行はジョブ タスクに対応します。 タスクの成功または失敗の電子メール通知を設定します。
  • 新しいコメント: Unity Catalogではコメントはサポートされていません。

詳細情報

以下のリンク先のページでは、Workspace Model Registry から Unity Catalog にワークフロー (モデルトレーニングおよびバッチ推論ジョブ) を移行する方法について説明しています。