ワークフローとモデルを Unity Catalog に移行する
Databricks では、ガバナンスの向上、ワークスペースや環境間での共有の容易さ、より柔軟な MLOps ワークフローを実現するために、Unity Catalog のモデルの使用を推奨しています。このページでは、 Workspace Model Registry内のモデルをUnity Catalogに移行する手順を説明します。
Unity Catalogのモデルの紹介
Unity Catalogのモデルは、一元的なアクセス制御、監査、リネージ、ワークスペース全体でのモデルの共有と検出など、 Unity Catalogの利点をMLモデルに拡張します。 Unity Catalog のモデルは、モデルのライフサイクルを管理する際の柔軟性も高めます。
モデルをUnity Catalogに移行すると、一部のモデルライフサイクル ステップの実行方法が異なります。
- Workspace Model Registry権限は、アカウントレベルのUnity Catalog権限に置き換えられます。 ステップ 2「モデルに Unity Catalog 権限を割り当てる」を参照してください。
- ステージはカスタム エイリアスとタグに置き換えられます。4 つの固定ステージの代わりに、最大 10 個のカスタムの再割り当て可能なエイリアスを作成できます。モデルにラベルを付けるタグを設定することもできます。ステップ 4「モデル メタデータの移行」を参照してください。
- デプロイメント ジョブは、ライフサイクルを通じてモデルを移行するために使用されます。ステップ 6 を参照してください。(オプション) デプロイメント ジョブを作成します。
ステップ 1. Unity Catalogでモデルを作成する
Unity Catalog 互換モデルのトレーニングと登録を行うを参照してください。
ステップ 2. Unity Catalog権限をモデルに割り当てる
Unity Catalog には統合された権限モデルがあります。Unity Catalog 内のモデルに権限を割り当てる方法については、 「モデルへのアクセスを制御する」を参照してください。
次の表は、ワークスペース モデル レジストリの権限とUnity Catalogの権限の関係を示しています。 表に示されている権限に加えて、すべてのアクションにはUSE CATALOGとUSE 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.0でcopy_model_version()を使用します。
import mlflow
from mlflow import MLflowClient
# Registry must be set to workspace registry
mlflow.set_registry_uri("databricks")
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 StagingやProductionなどの「ステージ」の概念を使用して、モデルのライフサイクルを追跡していました。 ステージ別にモデルを検索したり呼び出したりすることができます。Unity Catalogでは、ステージは、モデルを呼び出すためのエイリアスと、モデルにラベルを付けるタグに置き換えられました。
Workspace Model Registryステージの簡単な移行では、「本番運用」や「Staging」などの任意のエイリアス名を直接使用できます。 Workspace Model Registryでは、複数のモデル バージョンが同じステージに存在する可能性があり、モデル バージョンを参照すると最新バージョンが呼び出されていました。 Unity Catalogでは、一意のモデル バージョンにエイリアスが割り当てられます。
ステージ ラベルを簡単に移行するには、タグを使用してモデル バージョンに「本番運用」、「ステージング」、または「アーカイブ」のラベルを付けます。 他のラベルも使用できます。タグの詳細については、 「タグ」を参照してください。
Workspace Model Registryでは、モデル バージョンのライフサイクルはステージごとに追跡され、移行リクエストには人間による承認が必要でした。 Unity Catalog では、モデル バージョンのライフサイクルはデプロイメント ジョブによって管理されます。デプロイメント ジョブ内の各タスクは、「ステージ」に対応します。デプロイメント ジョブを使用すると、モデルのライフサイクルをカスタマイズし、 Workspace Model Registryよりも複雑なワークフローに対応できます。 デプロイメント ジョブでは、引き続き人間による承認が行われます。詳細については、 「MLflow 3 デプロイ ジョブ」を参照してください。
タグ
Unity Catalogでは、モデルまたはモデルバージョンに基づいてタグを作成します。
カタログ エクスプローラーでタグでモデルを検索するには、検索ボックスにキーまたは値を入力します。

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

Unity Catalog内のモデルには、ワークスペース モデル レジストリのモデル バージョン ページの [ アクティビティ] セクションに表示される情報に対応する場所がありません。 そのセクションにモデルバージョンとともに転送したい情報がある場合は、 Unity Catalogのモデルバージョンページの 「説明」 セクションにコピーします。
ステップ 5. すべてのワークロードとエンドポイントを更新します
モデルとモデル バージョンをUnity Catalogに移行した後、すべてのジョブ、ノートブック、およびモデルサービング エンドポイントを含むその他のワークロードを更新して、 Unity Catalogのバージョンを使用します。
ステップ 6. (オプション) デプロイメント ジョブを作成する
新しいモデル バージョンが作成されるたびにデプロイメント ジョブが自動的にトリガーされ、評価、承認、およびデプロイメント ワークフローが自動化されます。詳細については、 「MLflow 3 デプロイ ジョブ」を参照してください。
モデル バージョンの作成や承認などのイベントで通知をトリガーするように設定できます。「ジョブに通知を追加する」を参照してください。
Workspace Model Registry内のイベントに対して電子メール通知を設定していた場合は、次のように移行します。
- 新しいモデル バージョンが作成されました: 新しいモデル バージョンが作成されたときにトリガーされる展開ジョブと、ジョブがトリガーされたときに電子メール通知を設定します。
- ステージの移行リクエスト: ステージの移行リクエストは承認タスクに対応します。 承認タスクの成功または失敗を電子メールで通知するように設定します。
- ステージの移行: ステージの移行はジョブ タスクに対応します。 タスクの成功または失敗の電子メール通知を設定します。
- 新しいコメント: Unity Catalogではコメントはサポートされていません。
イベント用に Webhook を設定している場合は、それをモデルイベントジョブトリガーとして Unity Catalog に実装できます。モデル トリガーを使用すると、 Unity Catalogでの新しいモデル、モデル バージョン、またはモデル エイリアスの作成に基づいてLakeFlowジョブを自動化できます。 モデルトリガーはプライベートプレビュー段階です。詳細については、 Databricksの担当者にお問い合わせください。
詳細情報
以下のリンク先のページでは、Workspace Model Registry から Unity Catalog にワークフロー (モデルトレーニングおよびバッチ推論ジョブ) を移行する方法について説明しています。