إدارة دورة حياة النموذج في كتالوج Unity

هام

توضح هذه المقالة كيفية استخدام النماذج في كتالوج Unity كجزء من سير عمل التعلم الآلي لإدارة دورة الحياة الكاملة لنماذج التعلم الآلي. يوفر Databricks إصدارا مستضافا من سجل نموذج MLflow في كتالوج Unity. توسع النماذج في كتالوج Unity فوائد كتالوج Unity لتشمل نماذج التعلم الآلي، بما في ذلك التحكم المركزي في الوصول والتدقيق والنسل واكتشاف النموذج عبر مساحات العمل. تتوافق النماذج في كتالوج Unity مع عميل MLflow Python مفتوح المصدر.

تتضمن الميزات الرئيسية للنماذج في كتالوج Unity ما يلي:

  • مسار الأسماء والحوكمة للنماذج، بحيث يمكنك تجميع النماذج والتحكم فيها على مستوى البيئة أو المشروع أو الفريق ("منح علماء البيانات حق الوصول للقراءة فقط إلى نماذج الإنتاج").
  • دورة حياة النموذج الزمني (التي أنتجت تجربة MLflow وتشغيلها النموذج في وقت معين).
  • خدمة النموذج.
  • تعيين إصدار النموذج.
  • توزيع النموذج عبر الأسماء المستعارة. على سبيل المثال، ضع علامة على إصدار "البطل" لنموذج داخل الكتالوج الخاص بك prod .

إذا تم تكوين الكتالوج الافتراضي لمساحة العمل إلى كتالوج في كتالوج Unity، فإن النماذج المسجلة باستخدام واجهات برمجة تطبيقات MLflow مثل mlflow.<model-type>.log_model(..., registered_model_name) أو mlflow.register_model(model_uri, name) مسجلة في كتالوج Unity بشكل افتراضي.

تتضمن هذه المقالة إرشادات لكل من النماذج في واجهة مستخدم كتالوج Unity وواجهة برمجة التطبيقات.

للحصول على نظرة عامة على مفاهيم Model Registry، راجع إدارة دورة حياة التعلم الآلي باستخدام MLflow.

المتطلبات

  1. يجب تمكين كتالوج Unity في مساحة العمل الخاصة بك. راجع بدء استخدام كتالوج Unity لإنشاء Metastore كتالوج Unity وتمكينه في مساحة عمل وإنشاء كتالوج. إذا لم يتم تمكين كتالوج Unity، فلا يزال بإمكانك استخدام سجل نموذج مساحة العمل الكلاسيكي.

  2. يجب إرفاق مساحة العمل الخاصة بك بمخزن بيانات تعريف كتالوج Unity الذي يدعم توريث الامتيازات. ينطبق هذا على جميع المخازن الوصفية التي تم إنشاؤها بعد 25 أغسطس 2022. إذا كان يعمل على metastore أقدم، فاتبع المستندات للترقية.

  3. يجب أن يكون لديك حق الوصول لتشغيل الأوامر على نظام مجموعة مع الوصول إلى كتالوج Unity.

  4. لإنشاء نماذج مسجلة جديدة، تحتاج إلى الامتياز CREATE_MODEL على مخطط، بالإضافة إلى USE SCHEMA الامتيازات و USE CATALOG على المخطط والكتالوج المرفق الخاص به. CREATE_MODEL هو امتياز جديد على مستوى المخطط يمكنك منحه باستخدام واجهة مستخدم مستكشف الكتالوج أو الأمر منحة SQL، كما هو موضح أدناه.

    GRANT CREATE_MODEL ON SCHEMA <schema-name> TO <principal>
    

ترقية أحمال عمل التدريب إلى كتالوج Unity

يتضمن هذا القسم إرشادات لترقية أحمال عمل التدريب الحالية إلى كتالوج Unity.

تثبيت عميل MLflow Python

يمكنك أيضا استخدام النماذج في كتالوج Unity على Databricks Runtime 11.3 LTS وما فوق عن طريق تثبيت أحدث إصدار من عميل MLflow Python في دفتر الملاحظات الخاص بك، باستخدام التعليمات البرمجية أدناه.

%pip install --upgrade "mlflow-skinny[databricks]"
dbutils.library.restartPython()

تكوين عميل MLflow للوصول إلى النماذج في كتالوج Unity

بشكل افتراضي، ينشئ عميل MLflow Python نماذج في سجل نموذج مساحة عمل Databricks. للترقية إلى النماذج في كتالوج Unity، قم بتكوين عميل MLflow:

import mlflow
mlflow.set_registry_uri("databricks-uc")

إشعار

إذا كان الكتالوج الافتراضي لمساحة العمل في كتالوج Unity (بدلا من hive_metastore) وكنت تقوم بتشغيل مجموعة باستخدام Databricks Runtime 13.3 LTS أو أعلى (Databricks Runtime 15.0 أو أعلى في مناطق Azure China)، يتم إنشاء النماذج تلقائيا وتحميلها من الكتالوج الافتراضي، دون الحاجة إلى تكوين. لا يوجد تغيير في السلوك لإصدارات وقت تشغيل Databricks الأخرى. يتم إعفاء عدد صغير من مساحات العمل حيث تم تكوين كل من الكتالوج الافتراضي إلى كتالوج في كتالوج Unity قبل يناير 2024 وسجل نموذج مساحة العمل قبل يناير 2024 من هذا السلوك.

تدريب وتسجيل النماذج المتوافقة مع كتالوج Unity

الأذونات المطلوبة: لإنشاء نموذج مسجل جديد، تحتاج إلى CREATE_MODEL الامتيازات و USE SCHEMA على المخطط المرفق، والامتياز USE CATALOG على الكتالوج المرفق. لإنشاء إصدارات نموذج جديدة ضمن نموذج مسجل، يجب أن تكون مالك النموذج المسجل وأن يكون لديك USE SCHEMA وامتيازات USE CATALOG على المخطط والكتالوج الذي يحتوي على النموذج.

يجب أن يكون لإصدارات نموذج التعلم الآلي في UC توقيع نموذج. إذا لم تكن تقوم بالفعل بتسجيل نماذج MLflow بالتوقيعات في أحمال عمل تدريب النموذج، يمكنك إما:

  • استخدم التسجيل التلقائي ل Databricks، الذي يسجل النماذج تلقائيا بالتوقيعات للعديد من أطر عمل التعلم الآلي الشائعة. راجع أطر العمل المدعومة في مستندات MLflow.
  • باستخدام MLflow 2.5.0 وما فوق، يمكنك تحديد مثال إدخال في مكالمتك mlflow.<flavor>.log_model ، ويتم استنتاج توقيع النموذج تلقائيا. لمزيد من المعلومات، راجع وثائق MLflow.

بعد ذلك، مرر اسم النموذج ثلاثي المستويات إلى واجهات برمجة تطبيقات MLflow، في النموذج <catalog>.<schema>.<model>.

تقوم الأمثلة في هذا القسم بإنشاء نماذج والوصول إليها في ml_team المخطط ضمن الكتالوج prod .

تنشئ أمثلة تدريب النموذج في هذا القسم إصدار نموذج جديد وتسجله في الكتالوج prod . لا يعني استخدام الكتالوج prod بالضرورة أن إصدار النموذج يخدم حركة مرور الإنتاج. يعكس الكتالوج والمخطط والنموذج المسجل لإصدار النموذج بيئته (prod) وقواعد الحوكمة المقترنة به (على سبيل المثال، يمكن إعداد الامتيازات بحيث يمكن للمسؤولين فقط الحذف من الكتالوج prod )، ولكن ليس حالة النشر الخاصة به. لإدارة حالة النشر، استخدم الأسماء المستعارة للنموذج.

تسجيل نموذج في كتالوج Unity باستخدام التسجيل التلقائي

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 بالتوقيع المستنتج تلقائيا

يتوفر دعم التواقيع المستنتجة تلقائيا في 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

إشعار

يتوفر دعم الجدول إلى دورة حياة النموذج في كتالوج Unity في MLflow 2.11.0 والإصدارات الأحدث.

عند تدريب نموذج على جدول في كتالوج Unity، يمكنك تتبع دورة حياة النموذج إلى مجموعة (مجموعات) البيانات الأولية التي تم تدريبها وتقييمها عليها. للقيام بذلك، استخدم mlflow.log_input. يؤدي هذا إلى حفظ معلومات جدول الإدخال مع تشغيل MLflow الذي أنشأ النموذج. يتم أيضا التقاط دورة حياة البيانات تلقائيا للنماذج التي تم تسجيلها باستخدام واجهات برمجة تطبيقات مخزن الميزات. راجع عرض دورة حياة مخزن الميزات.

عند تسجيل النموذج في كتالوج Unity، يتم حفظ معلومات دورة الحياة تلقائيا وتكون مرئية في علامة تبويب دورة الحياة لواجهة مستخدم إصدار النموذج في مستكشف الكتالوج.

يبين الرمز التالي مثالاً.

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")

عرض النماذج في واجهة المستخدم

الأذونات المطلوبة: لعرض نموذج مسجل وإصدارات نموذجه في واجهة المستخدم، تحتاج إلى EXECUTE امتياز على النموذج المسجل، بالإضافة إلى USE SCHEMAUSE CATALOG امتيازات على المخطط والكتالوج الذي يحتوي على النموذج

يمكنك عرض وإدارة النماذج المسجلة وإصدارات النموذج في كتالوج Unity باستخدام مستكشف الكتالوج.

التحكم في الوصول إلى النماذج

للحصول على معلومات حول التحكم في الوصول إلى النماذج المسجلة في كتالوج Unity، راجع امتيازات كتالوج Unity والكائنات القابلة للتأمين. للحصول على أفضل الممارسات حول تنظيم النماذج عبر الكتالوجات والمخططات، راجع تنظيم بياناتك.

يمكنك تكوين أذونات النموذج برمجيا باستخدام واجهة برمجة تطبيقات Rest للمنح. عند تكوين أذونات النموذج، قم بتعيين securable_type إلى "FUNCTION" في طلبات واجهة برمجة تطبيقات REST. على سبيل المثال، استخدم PATCH /api/2.1/unity-catalog/permissions/function/{full_name} لتحديث أذونات النموذج المسجل.

نشر النماذج وتنظيمها باستخدام الأسماء المستعارة والعلامات

تساعدك الأسماء المستعارة والعلامات النموذجية على تنظيم النماذج وإدارتها في كتالوج Unity.

تسمح لك الأسماء المستعارة للنموذج بتعيين مرجع مسمى قابل للتغيير إلى إصدار معين من نموذج مسجل. يمكنك استخدام الأسماء المستعارة للإشارة إلى حالة نشر إصدار نموذج. على سبيل المثال، يمكنك تخصيص اسم مستعار "بطل" لإصدار النموذج قيد الإنتاج حاليا واستهداف هذا الاسم المستعار في أحمال العمل التي تستخدم نموذج الإنتاج. يمكنك بعد ذلك تحديث نموذج الإنتاج عن طريق إعادة تعيين الاسم المستعار "البطل" إلى إصدار نموذج مختلف.

العلامات هي أزواج قيم المفاتيح التي تقوم بإقرانها بالنماذج المسجلة وإصدارات النموذج، ما يسمح لك بتسمية وتصنيفها حسب الوظيفة أو الحالة. على سبيل المثال، يمكنك تطبيق علامة ذات مفتاح "task" وقيمة "question-answering" (معروضة في واجهة المستخدم ك task:question-answering) على النماذج المسجلة المخصصة لمهام الإجابة على الأسئلة. على مستوى إصدار النموذج، يمكنك وضع علامة على الإصدارات التي تخضع للتحقق من صحة ما قبل التوزيع مع validation_status:pending وتلك التي تم مسحها للتوزيع باستخدام validation_status:approved.

راجع الأقسام التالية لمعرفة كيفية استخدام الأسماء المستعارة والعلامات.

تعيين الأسماء المستعارة وحذفها على النماذج

الأذونات المطلوبة: مالك النموذج المسجل، بالإضافة إلى USE SCHEMA والامتيازات USE CATALOG على المخطط والكتالوج الذي يحتوي على النموذج.

يمكنك تعيين الأسماء المستعارة وتحديثها وإزالتها للنماذج في كتالوج Unity باستخدام مستكشف الكتالوج. يمكنك إدارة الأسماء المستعارة عبر نموذج مسجل في صفحة تفاصيل النموذج وتكوين الأسماء المستعارة لإصدار نموذج معين في صفحة تفاصيل إصدار النموذج.

لتعيين الأسماء المستعارة وتحديثها وحذفها باستخدام واجهة برمجة تطبيقات عميل MLflow، راجع الأمثلة أدناه:

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 على المخطط والكتالوج الذي يحتوي على النموذج.

راجع إدارة العلامات في مستكشف الكتالوج حول كيفية تعيين العلامات وحذفها باستخدام واجهة المستخدم.

لتعيين العلامات وحذفها باستخدام واجهة برمجة تطبيقات عميل MLflow، راجع الأمثلة أدناه:

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")

يجب أن تفي كل من علامات إصدار النموذج والنموذج المسجلة بالقيود على مستوى النظام الأساسي.

لمزيد من التفاصيل حول الأسماء المستعارة وعلامات واجهات برمجة تطبيقات العميل، راجع وثائق 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:

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(...)

استهلاك إصدارات النموذج حسب رقم الإصدار في أحمال عمل الاستدلال

يمكنك أيضا تحميل إصدارات النموذج حسب رقم الإصدار:

import mlflow.pyfunc
# Load version 1 of the model "prod.ml_team.iris_model"
model_version_uri = "models:/prod.ml_team.iris_model/1"
first_version = mlflow.pyfunc.load_model(model_version_uri)
first_version.predict(test_x)

مشاركة النماذج عبر مساحات العمل

مشاركة النماذج مع المستخدمين في نفس المنطقة

طالما أن لديك الامتيازات المناسبة، يمكنك الوصول إلى النماذج في كتالوج Unity من أي مساحة عمل مرفقة بمخزن metastore الذي يحتوي على النموذج. على سبيل المثال، يمكنك الوصول إلى النماذج من الكتالوج prod في مساحة عمل التطوير، لتسهيل مقارنة النماذج المطورة حديثا بخط أساس الإنتاج.

للتعاون مع مستخدمين آخرين (مشاركة امتيازات الكتابة) على نموذج مسجل قمت بإنشائه، يجب منح ملكية النموذج لمجموعة تحتوي على نفسك والمستخدمين الذين ترغب في التعاون معهم. يجب أن يكون لدى USE CATALOG المتعاونين أيضا امتيازات و USE SCHEMA على الكتالوج والمخطط الذي يحتوي على النموذج. راجع امتيازات كتالوج Unity والكائنات القابلة للتأمين للحصول على التفاصيل.

مشاركة النماذج مع مستخدمين في منطقة أو حساب آخر

لمشاركة النماذج مع المستخدمين في مناطق أو حسابات أخرى، استخدم تدفق مشاركة Databricks-to-Databricks دلتا. راجع إضافة نماذج إلى مشاركة (للموفرين) والحصول على حق الوصول في نموذج Databricks-to-Databricks (للمستلمين). كمستلم، بعد إنشاء كتالوج من مشاركة، يمكنك الوصول إلى النماذج في هذا الكتالوج المشترك بنفس الطريقة مثل أي نموذج آخر في كتالوج Unity.

إضافة تعليق توضيحي إلى نموذج أو إصدار نموذج

الأذونات المطلوبة: مالك النموذج المسجل، بالإضافة إلى USE SCHEMA والامتيازات USE CATALOG على المخطط والكتالوج الذي يحتوي على النموذج.

يمكنك توفير معلومات حول نموذج أو إصدار نموذج عن طريق إضافة تعليق توضيحي له. على سبيل المثال، قد تحتاج إلى تضمين نظرة عامة على المشكلة أو معلومات حول المنهجية والخوارزمية المستخدمة.

إضافة تعليق توضيحي إلى نموذج أو إصدار نموذج باستخدام واجهة المستخدم

راجع بيانات المستند في مستكشف الكتالوج باستخدام تعليقات markdown.

إضافة تعليق توضيحي إلى نموذج أو إصدار نموذج باستخدام واجهة برمجة التطبيقات

لتحديث وصف نموذج مسجل، استخدم أسلوب MLflow Client API update_registered_model() :

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

لتحديث وصف إصدار نموذج، استخدم أسلوب MLflow Client API update_model_version() :

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

إعادة تسمية نموذج (API فقط)

الأذونات المطلوبة: مالك النموذج المسجل، CREATE_MODEL والامتياز على المخطط الذي يحتوي على النموذج المسجل، والامتيازات USE SCHEMAUSE CATALOG على المخطط والكتالوج الذي يحتوي على النموذج.

لإعادة تسمية نموذج مسجل، استخدم أسلوب MLflow Client API rename_registered_model() :

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

حذف نموذج أو إصدار نموذج

الأذونات المطلوبة: مالك النموذج المسجل، بالإضافة إلى USE SCHEMA والامتيازات USE CATALOG على المخطط والكتالوج الذي يحتوي على النموذج.

يمكنك حذف نموذج مسجل أو إصدار نموذج داخل نموذج مسجل باستخدام واجهة مستخدم مستكشف الكتالوج أو واجهة برمجة التطبيقات.

حذف إصدار نموذج أو نموذج باستخدام واجهة برمجة التطبيقات

تحذير

لا يمكنك التراجع عن هذا الإجراء. عند حذف نموذج، يتم حذف جميع البيانات الاصطناعية للنموذج المخزنة بواسطة كتالوج Unity وجميع بيانات التعريف المقترنة بالنموذج المسجل.

حذف إصدار نموذج

لحذف إصدار نموذج، استخدم أسلوب MLflow Client API delete_model_version() :

# 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)

حذف نموذج

لحذف نموذج، استخدم أسلوب MLflow Client API delete_registered_model() :

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

نماذج القوائم والبحث

يمكنك سرد النماذج المسجلة في كتالوج Unity باستخدام واجهة برمجة تطبيقات Python search_registered_models() الخاصة ب MLflow:

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 لإنشاء تطبيق التعلم الآلي.

نماذج في مثال كتالوج Unity

ترحيل مهام سير العمل والنماذج إلى كتالوج Unity

توصي Databricks باستخدام النماذج في كتالوج Unity لتحسين الحوكمة، والمشاركة السهلة عبر مساحات العمل والبيئات، وسير عمل MLOps أكثر مرونة. يقارن الجدول قدرات Workspace Model Registry وUnity Catalog.

الإمكانية سجل نموذج مساحة العمل (قديم) النماذج في كتالوج Unity (مستحسن)
إصدارات النموذج المرجعي حسب الأسماء المستعارة المسماة Model Registry Stages: انقل إصدارات النموذج إلى واحدة من أربع مراحل ثابتة للإشارة إليها حسب تلك المرحلة. يتعذر إعادة تسمية المراحل أو إضافتها. الأسماء المستعارة لسجل النموذج: إنشاء ما يصل إلى 10 مراجع مسماة مخصصة وقابلة لإعادة التعيين إلى إصدارات النموذج لكل نموذج مسجل.
إنشاء بيئات خاضعة للتحكم بالوصول للنماذج Model Registry Stages: استخدم المراحل داخل نموذج مسجل واحد للإشارة إلى بيئة إصدارات النموذج الخاصة به، مع عناصر التحكم في الوصول لمرحلتين فقط من المراحل الثابتة الأربع (Staging و Production). النماذج المسجلة: إنشاء نموذج مسجل لكل بيئة في سير عمل MLOps الخاص بك، باستخدام مساحات أسماء ثلاثية المستوى وأذونات كتالوج Unity للتعبير عن الحوكمة.
ترقية النماذج عبر البيئات (توزيع النموذج) transition_model_version_stage() استخدم واجهة برمجة تطبيقات عميل MLflow لنقل إصدار نموذج إلى مرحلة مختلفة، مما قد يؤدي إلى قطع مهام سير العمل التي تشير إلى المرحلة السابقة. copy_model_version() استخدم واجهة برمجة تطبيقات عميل MLflow لنسخ إصدار نموذج من نموذج مسجل إلى آخر.
الوصول إلى النماذج ومشاركتها عبر مساحات العمل تصدير النماذج واستيرادها يدويا عبر مساحات العمل، أو تكوين الاتصالات بسجلات النماذج البعيدة باستخدام رموز الوصول الشخصية والنطاقات السرية لمساحة العمل. الوصول خارج الصندوق إلى النماذج عبر مساحات العمل في نفس الحساب. لا يلزم وجود التكوين.
تكوين الأذونات تعيين الأذونات على مستوى مساحة العمل. تعيين الأذونات على مستوى الحساب، والذي يطبق حوكمة متسقة عبر مساحات العمل.
الوصول إلى النماذج في Databricks markplace متوفر. تحميل النماذج من سوق Databricks إلى مخزن بيانات تعريف كتالوج Unity والوصول إليها عبر مساحات العمل.

تصف المقالات المرتبطة أدناه كيفية ترحيل مهام سير العمل (تدريب النموذج ووظائف الاستدلال الدفعي) والنماذج من سجل نموذج مساحة العمل إلى كتالوج Unity.

القيود المفروضة على دعم كتالوج Unity

  • المراحل غير مدعومة للنماذج في كتالوج Unity. توصي Databricks باستخدام مساحة الاسم ثلاثية المستويات في كتالوج Unity للتعبير عن البيئة التي يوجد بها النموذج، واستخدام الأسماء المستعارة لتعزيز النماذج للتوزيع. راجع دليل الترقية للحصول على التفاصيل.
  • خطافات الويب غير مدعومة للنماذج في كتالوج Unity. راجع البدائل المقترحة في دليل الترقية.
  • بعض حقول وعوامل تشغيل واجهة برمجة تطبيقات البحث غير مدعومة للنماذج في كتالوج Unity. يمكن التخفيف من هذا عن طريق استدعاء واجهات برمجة تطبيقات البحث باستخدام عوامل التصفية المدعومة ومسح النتائج ضوئيا. فيما يلي بعض الأمثلة:
    • order_by المعلمة غير معتمدة في واجهات برمجة تطبيقات العميل search_model_versions أو search_registered_models.
    • عوامل التصفية المستندة إلى العلامة (tags.mykey = 'myvalue') غير مدعومة ل search_model_versions أو search_registered_models.
    • عوامل التشغيل الأخرى غير المساواة الدقيقة (على سبيل المثال، LIKE، ، !=ILIKE) غير مدعومة ل search_model_versions أو search_registered_models.
    • البحث عن النماذج المسجلة حسب الاسم (على سبيل المثال، MlflowClient().search_registered_models(filter_string="name='main.default.mymodel'") غير معتمد. لإحضار نموذج مسجل معين بالاسم، استخدم get_registered_model.
  • لا يتم دعم إعلامات البريد الإلكتروني ومؤشرات ترابط مناقشة التعليقات على النماذج المسجلة وإصدارات النموذج في كتالوج Unity.
  • سجل النشاط غير مدعوم للنماذج في كتالوج Unity. ومع ذلك، يمكنك تعقب النشاط على النماذج في كتالوج Unity باستخدام سجلات التدقيق.
  • search_registered_models قد ترجع نتائج قديمة للنماذج المشتركة من خلال Delta Sharing. لضمان أحدث النتائج، استخدم Databricks CLI أو SDK لسرد النماذج في مخطط.