ワークフローとモデルを 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()
を使用します。
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 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ではコメントはサポートされていません。
詳細情報
以下のリンク先のページでは、Workspace Model Registry から Unity Catalog にワークフロー (モデルトレーニングおよびバッチ推論ジョブ) を移行する方法について説明しています。