Unity Catalogでモデルのライフサイクルを管理する
重要
この記事では、モデルの管理とデプロイに Databricks が推奨する Unity Catalog のモデルについて説明します。 ワークスペースで Unity Catalog が有効になっていない場合、このページの機能は使用できません。 代わりに、 「 Workspace Model Registry (レガシー) を使用してモデルのライフサイクルを管理する」を参照してください。 Workspace Model RegistryからUnity Catalogにアップグレードする方法については、 「ワークフローとモデルをUnity Catalogに移行する」を参照してください。
Unity Catalog のモデルは、AWS GovCloud リージョンでは使用できません。
この記事では、機械学習ワークフローの一環としてUnity Catalogのモデルを使用し、MLモデルのライフサイクル全体を管理する方法について説明します。Databricksは、Unity CatalogでMLflow Model Registryのホストされたバージョンを提供しています。Unity Catalogのモデルを使用すると、ワークスペース間での一元的なアクセス制御、監査、リネージ、モデルディスカバリーなど、Unity Catalogの利点をMLモデルに拡張できます。Unity Catalogのモデルは、オープンソースのMLflow Pythonクライアントと互換性があります。
Unity Catalogのモデルの主な機能は以下のとおりです。
モデルの名前空間とガバナンスにより、環境、プロジェクト、またはチームレベルでモデルをグループ化して管理できます (「データサイエンティストに本番モデルへの読み取り専用アクセスを許可する」)。
時系列のモデルリネージ(どのMLflowのエクスペリメントとランによって、ある時点のモデルが生成されたか)。
モデルのバージョン管理。
エイリアスを使用したモデルのデプロイ。たとえば、
prod
カタログ内のモデルの「チャンピオン」バージョンをマークします。
ワークスペースの デフォルト カタログ が Unity Catalog のカタログに構成されている場合、mlflow.<model-type>.log_model(..., registered_model_name)
や mlflow.register_model(model_uri, name)
などの MLflow APIs を使用して登録されたモデルは、デフォルトで Unity Catalog に登録されます。
この記事には、Unity CatalogのUIとAPIの両方のモデルに関する手順が含まれています。
Model Registry概念の概要については、「MLflow を使用した機械学習ライフサイクル管理」を参照してください。
要件
ワークスペースでUnity Catalog を有効にする必要があります。「 Unity Catalogを使用して Unity Catalog メタストアを作成し、ワークスペースで有効にして、カタログを作成する」を参照してください。Unity Catalog が有効になっていない場合でも、クラシック ワークスペース モデルレジストリを使用できます。
ワークスペースが、権限の継承をサポートするUnity Catalogメタストアにアタッチされている必要があります。2022年8月25日以降に作成されたすべてのメタストアは、これを満たしています。古いメタストアで実行している場合は、こちらのドキュメントに従ってアップグレードしてください。
Unity Catalog にアクセスできるクラスターでコマンドを実行するには、アクセス権が必要です。
新しい登録済みモデルを作成するには、スキーマとその囲みカタログに対する
USE SCHEMA
およびUSE CATALOG
権限に加えて、スキーマに対するCREATE_MODEL
権限が必要です。CREATE_MODEL
は、次に示すように、カタログ エクスプローラー UI または SQL GRANT コマンドを使用して付与できる新しいスキーマ レベルの特権です。GRANT CREATE_MODEL ON SCHEMA <schema-name> TO <principal>
トレーニングワークロードをUnity Catalogにアップグレードする
このセクションには、既存のトレーニングワークロードをUnity Catalogにアップグレードする手順が含まれています。
MLflow Pythonクライアントをインストールする
Databricks Runtime 13.2 ML以降には、Unity Catalogのモデルのサポートが含まれています。
以下のコードを使用して最新バージョンのMLflow Pythonクライアントをノートブックにインストールすることで、Databricks Runtime 11.3 LTS以降でUnity Catalogのモデルを使用することもできます。
%pip install --upgrade "mlflow-skinny[databricks]"
dbutils.library.restartPython()
Unity Catalog内のモデルにアクセスできるようにMLflowクライアントを構成する
デフォルトでは、MLflow PythonクライアントはDatabricksワークスペースのモデルレジストリにモデルを作成します。Unity Catalogのモデルにアップグレードするには、MLflowクライアントを以下のように構成します。
import mlflow
mlflow.set_registry_uri("databricks-uc")
注
ワークスペースの デフォルト カタログ が ( hive_metastore
ではなく) Unity Catalog にあり、Databricks Runtime 13.3 LTS 以降を使用してクラスターを実行している場合、モデルはデフォルト カタログに自動的に作成され、既定のカタログから読み込まれるため、構成は必要ありません。 他の Databricks Runtime バージョンの動作に変更はありません。 デフォルト カタログが 2024 年 1 月より前に Unity Catalog のカタログに構成され、ワークスペース モデル レジストリが 2024 年 1 月より前に使用されていた少数のワークスペースは、この動作から除外されます。
Unity Catalog互換モデルのトレーニングと登録
必要な権限:新しい登録済みモデルを作成するには、それを含むスキーマに対するCREATE_MODEL
権限とUSE SCHEMA
権限、それを含むカタログに対するUSE CATALOG
権限が必要です。登録済みモデルの下に新しいモデルバージョンを作成するには、登録済みモデルの所有者である必要があり、モデルを含むスキーマとカタログに対するUSE SCHEMA
権限とUSE CATALOG
権限が必要です。
UCのMLモデルバージョンにはモデル署名が必要です。モデルトレーニングワークロードで署名付きのMLflowモデルをまだロギングしていない場合は、以下のいずれかを行うことができます。
Databricks の自動ログ記録を使用すると、多くの一般的な機械学習フレームワークの署名を使用して自動的に記録済みモデルが作成されます。サポートされているフレームワークについては、 MLflow のドキュメントを参照してください。
MLflow 2.5.0以降では、
mlflow.<flavor>.log_model
コールで入力例を指定でき、モデル署名が自動的に推論されます。詳細については、 MLflowドキュメントを参照してください。
次に、モデルの 3 レベル名を <catalog>.<schema>.<model>
の形式で MLflow APIsに渡します。
このセクションの例では、 prod
カタログの下の ml_team
スキーマでモデルを作成し、アクセスします。
本節のモデル学習例では、新しいモデルバージョンを作成し、 prod
カタログに登録します。 prod
カタログを使用しても、必ずしもモデル バージョンが本番運用トラフィックを処理するとは限りません。モデル バージョンを囲むカタログ、スキーマ、および登録済みモデルには、その環境 (prod
) と関連するガバナンス ルール (たとえば、管理者のみが prod
カタログから削除できるように特権を設定できます) が反映されますが、デプロイ ステータスは反映されません。 デプロイの状態を管理するには、 モデル エイリアスを使用します。
自動ロギングを使用してモデルをUnity Catalogに登録する
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
# Train a sklearn model on the iris dataset
X, y = datasets.load_iris(return_X_y=True, as_frame=True)
clf = RandomForestClassifier(max_depth=7)
clf.fit(X, y)
# Note that the UC model name follows the pattern
# <catalog_name>.<schema_name>.<model_name>, corresponding to
# the catalog, schema, and registered model name
# in Unity Catalog under which to create the version
# The registered model will be created if it doesn't already exist
autolog_run = mlflow.last_active_run()
model_uri = "runs:/{}/model".format(autolog_run.info.run_id)
mlflow.register_model(model_uri, "prod.ml_team.iris_model")
自動的に推論された署名を使用してモデルをUnity Catalogに登録する
自動的に推論された署名のサポートは、MLflowバージョン2.5.0以降で使用でき、 Databricks Runtime 11.3 LTS ML以降でサポートされています。自動的に推論された署名を使用するには、以下のコードを使用して、最新のMLflow Pythonクライアントをノートブックにインストールします。
%pip install --upgrade "mlflow-skinny[databricks]"
dbutils.library.restartPython()
以下のコードは、自動的に推論される署名の例を示しています。
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
with mlflow.start_run():
# Train a sklearn model on the iris dataset
X, y = datasets.load_iris(return_X_y=True, as_frame=True)
clf = RandomForestClassifier(max_depth=7)
clf.fit(X, y)
# Take the first row of the training dataset as the model input example.
input_example = X.iloc[[0]]
# Log the model and register it as a new version in UC.
mlflow.sklearn.log_model(
sk_model=clf,
artifact_path="model",
# The signature is automatically inferred from the input example and its predicted output.
input_example=input_example,
registered_model_name="prod.ml_team.iris_model",
)
Unity Catalog内のモデルのデータリネージを追跡する
注
Unity Catalogでのテーブルからモデルへのリネージのサポートは、MLflow 2.11.0 以降で利用できます。
Unity Catalogのテーブルでモデルをトレーニングする場合、モデルがトレーニングおよび評価された上流のデータセットへのモデルのリネージを追跡できます。 これを行うには、 mlflow.log_input を使用します。 これにより、モデルを生成した MLflow 実行とともに入力テーブル情報が保存されます。 データ リネージはFeature Store APIsを使用してログに記録されたモデルについても自動的にキャプチャされます。 Feature Storeリネージの表示」を参照してください。
モデルをUnity Catalog に登録すると、リネージ情報が自動的に保存され、 カタログ エクスプローラーのモデル バージョン UI の リネージタブ に表示されます。
次のコードは、その例を示しています。
import mlflow
import pandas as pd
import pyspark.pandas as ps
from sklearn.datasets import load_iris
from sklearn.ensemble import RandomForestRegressor
# Write a table to Unity Catalog
iris = load_iris()
iris_df = pd.DataFrame(iris.data, columns=iris.feature_names)
iris_df.rename(
columns = {
'sepal length (cm)':'sepal_length',
'sepal width (cm)':'sepal_width',
'petal length (cm)':'petal_length',
'petal width (cm)':'petal_width'},
inplace = True
)
iris_df['species'] = iris.target
ps.from_pandas(iris_df).to_table("prod.ml_team.iris", mode="overwrite")
# Load a Unity Catalog table, train a model, and log the input table
dataset = mlflow.data.load_delta(table_name="prod.ml_team.iris", version="0")
pd_df = dataset.df.toPandas()
X = pd_df.drop("species", axis=1)
y = pd_df["species"]
with mlflow.start_run():
clf = RandomForestRegressor(n_estimators=100)
clf.fit(X, y)
mlflow.log_input(dataset, "training")
UIでモデルを表示する
必要な権限:登録されたモデルとそのモデルのバージョンをUIで表示するには、登録されたモデルに対するEXECUTE
権限と、そのモデルを含むスキーマとカタログに対するUSE SCHEMA
権限とUSE CATALOG
権限が必要です。
カタログ エクスプローラーを使用して、Unity Catalog で登録済みのモデルとモデル バージョンを表示および管理できます。
モデルへのアクセスを制御する
Unity Catalogに登録されているモデルへのアクセスの制御に関する情報については、「 Unity Catalog 権限とセキュリティ保護可能なオブジェクト」を参照してください。カタログとスキーマ間でモデルを整理するためのベスト プラクティスについては、「 データの整理」をご参照ください。
モデルのアクセス許可は、 付与 REST API を使用してプログラムで構成できます。 モデルのアクセス許可を構成する場合は、REST API 要求で securable_type
を "FUNCTION"
に設定します。 たとえば、 PATCH /api/2.1/unity-catalog/permissions/function/{full_name}
を使用して、登録されているモデルのアクセス許可を更新します。
エイリアスとタグ を使用したモデルのデプロイと整理
モデル エイリアスとタグは、 Unity Catalogでモデルを整理および管理するのに役立ちます。
モデル エイリアスを使用すると、登録済みモデルの特定のバージョンに変更可能な名前付き参照を割り当てることができます。 エイリアスを使用して、モデルバージョンのデプロイステータスを示すことができます。 たとえば、現在本番運用にあるモデルバージョンに「チャンピオン」エイリアスを割り当て、本番運用モデルを使用するワークロードでこのエイリアスをターゲットにすることができます。 その後、"Champion" エイリアスを別のモデル バージョンに再割り当てすることで、本番運用モデルを更新できます。
タグ は、登録済みモデルおよびモデルバージョンに関連付けるキーと値のペアであり、機能またはステータス別にラベル付けおよび分類できます。 たとえば、キー "task"
と値 "question-answering"
(UI では task:question-answering
と表示される) を含むタグを、質問応答タスク用の登録済みモデルに適用できます。 モデル バージョン レベルでは、 validation_status:pending
を使用して配置前の検証を受けているバージョンと、 validation_status:approved
を使用して配置がクリアされたバージョンにタグを付けることができます。
エイリアスとタグの使用方法については、以下のセクションを参照してください。
モデルの エイリアスの設定と削除
必要な権限:登録されたモデルの所有者である必要があり、そのモデルを含むスキーマとカタログに対するUSE SCHEMA
権限とUSE CATALOG
権限が必要です。
Unity Catalog のモデルのエイリアスは、 カタログ エクスプローラーを使用して設定、更新、削除できます。 モデルの詳細ページで登録済みモデル全体のエイリアスを管理し、モデルバージョンの詳細ページで特定のモデルバージョンのエイリアスを設定できます。
MLflow クライアント API を使用してエイリアスを設定、更新、削除するには、以下の例を参照してください。
from mlflow import MlflowClient
client = MlflowClient()
# create "Champion" alias for version 1 of model "prod.ml_team.iris_model"
client.set_registered_model_alias("prod.ml_team.iris_model", "Champion", 1)
# reassign the "Champion" alias to version 2
client.set_registered_model_alias("prod.ml_team.iris_model", "Champion", 2)
# get a model version by alias
client.get_model_version_by_alias("prod.ml_team.iris_model", "Champion")
# delete the alias
client.delete_registered_model_alias("prod.ml_team.iris_model", "Champion")
モデルの タグの設定と削除
必要な権限: 登録済みモデルの所有者であるか、登録済みモデルに対する APPLY_TAG
権限に加えて、モデルを含むスキーマおよびカタログに対する USE SCHEMA
および USE CATALOG
権限を持っている。
UIを使用してタグを設定および削除する方法については、「 カタログエクスプローラでのタグの管理 」を参照してください。
MLflow クライアント API を使用してタグを設定および削除するには、以下の例を参照してください。
from mlflow import MlflowClient
client = MlflowClient()
# Set registered model tag
client.set_registered_model_tag("prod.ml_team.iris_model", "task", "classification")
# Delete registered model tag
client.delete_registered_model_tag("prod.ml_team.iris_model", "task")
# Set model version tag
client.set_model_version_tag("prod.ml_team.iris_model", "1", "validation_status", "approved")
# Delete model version tag
client.delete_model_version_tag("prod.ml_team.iris_model", "1", "validation_status")
登録済みのモデルタグとモデルバージョンタグの両方 が、プラットフォーム全体の制約を満たす必要があります。
エイリアスとタグ クライアント APIsの詳細については、 MLflow API のドキュメントを参照してください。
推論用のモデルを読み込む
推論ワークロードでエイリアスを指定してモデルバージョンを使用する
必要な権限: 登録済みモデルに対する EXECUTE
権限に加えて、モデルを含むスキーマおよびカタログに対する USE SCHEMA
および USE CATALOG
権限。
エイリアスでモデルバージョンを参照するバッチ推論ワークロードを作成できます。たとえば、以下のスニペットは、バッチ推論用の「チャンピオン」モデルバージョンを読み込んで適用します。「チャンピオン」バージョンが新しいモデルバージョンを参照するように更新された場合、バッチ推論ワークロードでは次回の実行時に自動的にそれが選択されます。これにより、モデルのデプロイをバッチ推論ワークロードから切り離すことができます。
import mlflow.pyfunc
model_version_uri = "models:/prod.ml_team.iris_model@Champion"
champion_version = mlflow.pyfunc.load_model(model_version_uri)
champion_version.predict(test_x)
また、モデル サービング REST API を使用して、エイリアス別にモデル バージョンを取得し、そのバージョンを提供するようにモデル サービス エンドポイントを更新するデプロイ ワークフローを記述することもできます。
import mlflow
import requests
client = mlflow.tracking.MlflowClient()
champion_version = client.get_model_version_by_alias("prod.ml_team.iris_model", "Champion")
# Invoke the model serving REST API to update endpoint to serve the current "Champion" version
model_name = champion_version.name
model_version = champion_version.version
requests.request(...)
環境間でのモデルの昇格
Databricks 、機械学習パイプラインをコードとしてデプロイすることをお勧めします。 これにより、すべての本番運用モデルを本番運用環境で自動化されたトレーニング ワークフローを通じて生成できるため、環境間でモデルをプロモートする必要がなくなります。
ただし、場合によっては、環境間でモデルを再トレーニングするにはコストがかかりすぎることがあります。 代わりに、Unity Catalog に登録されているモデル間でモデルバージョンをコピーして、環境間で昇格させることができます。
以下のコード例を実行するには、次の権限が必要です。
USE CATALOG
staging
カタログとprod
カタログ。USE SCHEMA
staging.ml_team
スキーマとprod.ml_team
スキーマ。EXECUTE
staging.ml_team.fraud_detection
.
また、登録済みのモデル prod.ml_team.fraud_detection
の所有者である必要があります。
次のコード スニペットは、MLflow バージョン 2.8.0 以降で使用可能なcopy_model_version
MLflow クライアント APIを使用します。
import mlflow
mlflow.set_registry_uri("databricks-uc")
client = mlflow.tracking.MlflowClient()
src_model_name = "staging.ml_team.fraud_detection"
src_model_version = "1"
src_model_uri = f"models:/{src_model_name}/{src_model_version}"
dst_model_name = "prod.ml_team.fraud_detection"
copied_model_version = client.copy_model_version(src_model_uri, dst_model_name)
モデル バージョンが本番運用環境に導入された後、必要なデプロイ前検証を実行できます。 その後、 エイリアスを使用して、デプロイするモデル バージョンをマークできます。
client = mlflow.tracking.MlflowClient()
client.set_registered_model_alias(name="prod.ml_team.fraud_detection", alias="Champion", version=copied_model_version.version)
上記の例では、 staging.ml_team.fraud_detection
登録モデルからの読み取りとprod.ml_team.fraud_detection
登録モデルへの書き込みが可能なユーザーのみが、ステージング モデルを本番運用環境に昇格できます。 同じユーザーは、エイリアスを使用して、本番運用環境内にどのモデル バージョンがデプロイされているかを管理することもできます。 モデルのプロモーションとデプロイメントを管理するために、他のルールやポリシーを構成する必要はありません。
このフローをカスタマイズして、 dev
、 qa
、 prod
など、設定に一致する複数の環境間でモデルバージョンを昇格させることができます。 アクセス制御は、各環境で構成されているとおりに適用されます。
モデルまたはモデルバージョンにアノテーションを付ける
必要な権限:登録されたモデルの所有者である必要があり、そのモデルを含むスキーマとカタログに対するUSE SCHEMA
権限とUSE CATALOG
権限が必要です。
アノテーションによって、モデルまたはモデルのバージョンに関する情報を提供できます。たとえば、問題の概要や、使用された方法論およびアルゴリズムに関する情報を含めることができます。
UIを使用してモデルまたはモデルバージョンにアノテーションを付ける
「カタログエクスプローラでマークダウンコメントを使用してデータをドキュメント化する」を参照してください。
APIを使用してモデルまたはモデルバージョンにアノテーションを付ける
登録されたモデルの説明を更新するには、MLflowクライアントAPIのupdate_registered_model()
メソッドを使用します。
client = MlflowClient()
client.update_registered_model(
name="<model-name>",
description="<description>"
)
モデルバージョンの説明を更新するには、MLflowクライアントAPIのupdate_model_version()
メソッドを使用します。
client = MlflowClient()
client.update_model_version(
name="<model-name>",
version=<model-version>,
description="<description>"
)
モデルの名前を変更する
権限が必要:登録されたモデルの所有者である必要があり、登録されたモデルを含むスキーマのCREATE_MODEL
権限、モデルを含むスキーマとカタログのUSE SCHEMA
権限とUSE CATALOG
権限が必要です。
登録済みモデルの名前を変更するには、Databricks SDK ( RegisteredModelsAPI.update ) または Databricks REST API ( 登録済みモデルの更新) を使用する必要があります。
モデルまたはモデルバージョンを削除する
必要な権限:登録されたモデルの所有者である必要があり、そのモデルを含むスキーマとカタログに対するUSE SCHEMA
権限とUSE CATALOG
権限が必要です。
登録済みモデルまたは登録済みモデル内のモデルバージョンは、 カタログエクスプローラ UI または API を使用して削除できます。
APIを使用してモデルバージョンまたはモデルを削除する
警告
この操作は元に戻せません。モデルを削除すると、Unity Catalogによって保存されたすべてのモデルアーティファクトと、登録されたモデルに関連付けられているすべてのメタデータが削除されます。
モデルの一覧表示と検索
MLflowのsearch_registered_models() Python APIを使用すると、Unity Catalogに登録されているモデルを一覧表示できます。
client=MlflowClient()
client.search_registered_models()
search_model_versions()
メソッドを使用して、特定のモデル名を検索し、そのバージョンの詳細を一覧表示することもできます。
from pprint import pprint
client=MlflowClient()
[pprint(mv) for mv in client.search_model_versions("name='<model-name>'")]
注
Unity Catalog のモデルでは、すべての検索 API フィールドと演算子がサポートされているわけではありません。 詳細については、「 制限事項 」を参照してください。
モデルファイルのダウンロード(高度なユースケース)
ほとんどの場合、モデルを読み込むには、mlflow.pyfunc.load_model
や mlflow.<flavor>.load_model
(たとえば、HuggingFace モデルの場合は mlflow.transformers.load_model
) などのMLflow APIsを使用する必要があります。
場合によっては、モデルの動作やモデルの読み込みの問題をデバッグするために、モデル ファイルをダウンロードする必要があります。 モデルファイルは、次のように mlflow.artifacts.download_artifacts
を使用してダウンロードできます。
import mlflow
mlflow.set_registry_uri("databricks-uc")
model_uri = f"models:/{model_name}/{version}" # reference model by version or alias
destination_path = "/local_disk0/model"
mlflow.artifacts.download_artifacts(artifact_uri=model_uri, dst_path=destination_path)
ワークフローとモデルをUnity Catalogに移行する
Databricks では、ガバナンスの向上、ワークスペースや環境間での簡単な共有、より柔軟な MLOps ワークフローのために、Unity Catalog のモデルを使用することを推奨しています。 この表は、 Workspace Model Registry と Unity Catalog の機能を比較したものです。
力 |
Workspace Model Registry (レガシー) |
Unity Catalog のモデル (推奨) |
---|---|---|
名前付きエイリアスによるモデルバージョンの参照 |
Model Registry ステージ: モデル バージョンを 4 つの固定ステージのいずれかに移動して、そのステージで参照します。 ステージの名前変更や追加はできません。 |
Model Registry エイリアス: 登録されたモデルごとに、モデル バージョンへのカスタムおよび再割り当て可能な名前付き参照を最大 10 個作成します。 |
モデルのアクセス制御された環境を作成する |
Model Registry ステージ: 1 つの登録済みモデル内のステージを使用して、そのモデル バージョンの環境を示し、4 つの固定ステージ ( |
登録済みモデル: MLOps ワークフローの環境ごとに登録済みモデルを作成し、Unity Catalog の 3 レベルの名前空間とアクセス許可を利用してガバナンスを表現します。 |
環境間でのモデルの昇格 (モデルのデプロイ) |
|
|
ワークスペース間でのモデルへのアクセスと共有 |
ワークスペース間でモデルを手動でエクスポートおよびインポートするか、personal アクセストークンとワークスペース シークレットスコープを使用してリモート モデル レジストリへの接続を構成します。 |
同じアカウント内のワークスペース間でモデルにすぐにアクセスできます。 設定は必要ありません。 |
アクセス許可の構成 |
ワークスペース レベルでアクセス許可を設定します。 |
アカウント レベルでアクセス許可を設定し、ワークスペース全体に一貫したガバナンスを適用します。 |
Databricks マークプレースでモデルにアクセスする |
使用禁止。 |
Databricks Marketplace から Unity Catalog メタストアにモデルを読み込み、ワークスペース間でアクセスします。 |
以下にリンクされている記事では、ワークフロー (モデル トレーニングとバッチ推論ジョブ) とモデルを Workspace Model Registry から Unity Catalog に移行する方法について説明します。
制限事項
Unity Catalog内のモデルではステージはサポートされていません。 Databricks では、Unity Catalog の 3 レベルの名前空間を使用してモデルが存在する環境を表現し、エイリアスを使用してモデルを展開用に昇格することを推奨しています。 詳細については、「 環境間でのモデルの昇格 」を参照してください。
Webhook は Unity Catalog のモデルではサポートされていません。 アップグレードガイドで推奨される代替案を参照してください。
Unity Catalog のモデルでは、一部の検索 API フィールドと演算子がサポートされていません。これは、サポートされているフィルタを使用して検索 API を呼び出し、結果をスキャンすることで軽減できます。以下にいくつかの例を示します。
search_model_versions または search_registered_models クライアント API では、
order_by
パラメーターがサポートされていません。search_model_versions
またはsearch_registered_models
では、タグベースのフィルター(tags.mykey = 'myvalue'
)がサポートされていません。search_model_versions
またはsearch_registered_models
では、完全等価以外の演算子(例:LIKE
、ILIKE
、!=
)がサポートされていません。名前による登録済みモデルの検索(例:
MlflowClient().search_registered_models(filter_string="name='main.default.mymodel'")
)はサポートされていません。特定の登録済みモデルを名前で取得するには、get_registered_model を使用します。
Unity Catalog では、登録されているモデルおよびモデルバージョンに関する E メール通知とコメントディスカッションスレッドがサポートされていません。
アクティビティ ログは、Unity Catalog 内のモデルではサポートされていません。 ただし、 監査ログを使用して Unity Catalog 内のモデルのアクティビティを追跡することはできます。
search_registered_models
Delta Sharingを通じて共有されたモデルに対して古い結果が返される可能性があります。 最新の結果を確認するには、Databricks CLI またはSDKを使用してスキーマ内のモデルを一覧表示します。