Mengelola siklus hidup model di Unity Catalog

Penting

Artikel ini menjelaskan cara menggunakan Model di Unity Catalog sebagai bagian dari alur kerja pembelajaran mesin Anda untuk mengelola siklus hidup penuh model ML. Databricks menyediakan versi MLflow Model Registry yang dihosting di Unity Catalog. Model di Unity Catalog memperluas manfaat Unity Catalog ke model ML, termasuk kontrol akses terpusat, audit, silsilah data, dan penemuan model di seluruh ruang kerja. Model di Unity Catalog kompatibel dengan klien MLflow Python sumber terbuka.

Fitur utama model di Unity Catalog meliputi:

  • Namespacing dan tata kelola untuk model, sehingga Anda dapat mengelompokkan dan mengatur model di tingkat lingkungan, proyek, atau tim ("Memberikan akses baca-saja kepada ilmuwan data ke model produksi").
  • Silsilah data model kronologis (yang dieksperimen dan dijalankan MLflow menghasilkan model pada waktu tertentu).
  • Penyajian Model.
  • Penerapan versi model.
  • Penyebaran model melalui alias. Misalnya, tandai versi "Juara" model dalam katalog Anda prod .

Jika katalog default ruang kerja Anda dikonfigurasi ke katalog di Unity Catalog, model yang terdaftar menggunakan API MLflow seperti mlflow.<model-type>.log_model(..., registered_model_name) atau mlflow.register_model(model_uri, name) didaftarkan ke Unity Catalog secara default.

Artikel ini menyertakan instruksi untuk Model di Unity Catalog UI dan API.

Untuk gambaran umum konsep Model Registry, lihat Manajemen siklus hidup ML menggunakan MLflow.

Persyaratan

  1. Katalog Unity harus diaktifkan di ruang kerja Anda. Lihat Mulai menggunakan Katalog Unity untuk membuat Metastore Katalog Unity, mengaktifkannya di ruang kerja, dan membuat katalog. Jika Unity Catalog tidak diaktifkan, Anda masih dapat menggunakan registri model ruang kerja klasik.

  2. Ruang kerja Anda harus dilampirkan ke metastore Unity Catalog yang mendukung pewarisan hak istimewa. Ini berlaku untuk semua metastores yang dibuat setelah 25 Agustus 2022. Jika berjalan di metastore yang lebih lama, ikuti dokumen untuk ditingkatkan.

  3. Anda harus memiliki akses untuk menjalankan perintah pada kluster dengan akses ke Unity Catalog.

  4. Untuk membuat model terdaftar baru, Anda memerlukan CREATE_MODEL hak istimewa pada skema, selain USE SCHEMA hak istimewa dan USE CATALOG pada skema dan katalog penutupnya. CREATE_MODEL adalah hak istimewa tingkat skema baru yang dapat Anda berikan menggunakan UI Catalog Explorer atau perintah SQL GRANT, seperti yang ditunjukkan di bawah ini.

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

Meningkatkan beban kerja pelatihan ke Unity Catalog

Bagian ini mencakup instruksi untuk meningkatkan beban kerja pelatihan yang ada ke Unity Catalog.

Menginstal klien MLflow Python

Anda juga dapat menggunakan model di Unity Catalog pada Databricks Runtime 11.3 LTS ke atas dengan menginstal versi terbaru klien MLflow Python di notebook Anda, menggunakan kode di bawah ini.

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

Mengonfigurasi klien MLflow untuk mengakses model di Unity Catalog

Secara default, klien MLflow Python membuat model di registri model ruang kerja Databricks. Untuk meningkatkan ke model di Unity Catalog, konfigurasikan klien MLflow:

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

Catatan

Jika katalog default ruang kerja Anda berada di Unity Catalog (bukan hive_metastore) dan Anda menjalankan kluster menggunakan Databricks Runtime 13.3 LTS atau lebih tinggi (Databricks Runtime 15.0 atau lebih tinggi di wilayah Azure Tiongkok), model secara otomatis dibuat dan dimuat dari katalog default, tanpa memerlukan konfigurasi. Tidak ada perubahan perilaku untuk versi Databricks Runtime lainnya. Sejumlah kecil ruang kerja di mana katalog default dikonfigurasi ke katalog di Katalog Unity sebelum Januari 2024 dan registri model ruang kerja digunakan sebelum Januari 2024 dikecualikan dari perilaku ini.

Melatih dan mendaftarkan model yang kompatibel dengan Katalog Unity

Izin yang diperlukan: Untuk membuat model terdaftar baru, Anda memerlukan CREATE_MODEL hak istimewa dan USE SCHEMA pada skema penutup, dan USE CATALOG hak istimewa pada katalog penutup. Untuk membuat versi model baru di bawah model terdaftar, Anda harus menjadi pemilik model terdaftar dan memiliki USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model.

Versi model ML dalam UC harus memiliki tanda tangan model. Jika Anda belum mencatat model MLflow dengan tanda tangan dalam beban kerja pelatihan model, Anda dapat:

  • Gunakan autologging Databricks, yang secara otomatis mencatat model dengan tanda tangan untuk banyak kerangka kerja ML populer. Lihat kerangka kerja yang didukung di dokumen MLflow.
  • Dengan MLflow 2.5.0 ke atas, Anda dapat menentukan contoh input dalam panggilan Anda mlflow.<flavor>.log_model , dan tanda tangan model secara otomatis disimpulkan. Untuk informasi lebih lanjut, lihat dokumentasi MLflow.

Kemudian, teruskan nama tiga tingkat model ke API MLflow, dalam bentuk <catalog>.<schema>.<model>.

Contoh di bagian ini membuat dan mengakses model dalam ml_team skema di prod bawah katalog.

Contoh pelatihan model di bagian ini membuat versi model baru dan mendaftarkannya di prod katalog. prod Menggunakan katalog tidak selalu berarti bahwa versi model melayani lalu lintas produksi. Katalog, skema, dan model terdaftar versi model mencerminkan lingkungannya (prod) dan aturan tata kelola terkait (misalnya, hak istimewa dapat disiapkan sehingga hanya admin yang dapat menghapus dari prod katalog), tetapi bukan status penyebarannya. Untuk mengelola status penyebaran, gunakan alias model.

Mendaftarkan model ke Unity Catalog menggunakan autologging

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

Mendaftarkan model ke Unity Catalog dengan tanda tangan yang disimpulkan secara otomatis

Dukungan untuk tanda tangan yang disimpulkan secara otomatis tersedia di MLflow versi 2.5.0 ke atas, dan didukung di Databricks Runtime 11.3 LTS ML ke atas. Untuk menggunakan tanda tangan yang disimpulkan secara otomatis, gunakan kode berikut untuk menginstal klien MLflow Python terbaru di buku catatan Anda:

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

Kode berikut menunjukkan contoh tanda tangan yang disimpulkan secara otomatis.

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

Melacak silsilah data model di Unity Catalog

Catatan

Dukungan untuk silsilah tabel ke model di Unity Catalog tersedia di MLflow 2.11.0 ke atas.

Saat Melatih model pada tabel di Unity Catalog, Anda dapat melacak silsilah model ke himpunan data hulu tempat model dilatih dan dievaluasi. Untuk melakukan ini, gunakan mlflow.log_input. Ini menyimpan informasi tabel input dengan eksekusi MLflow yang menghasilkan model. Silsilah data juga secara otomatis diambil untuk model yang dicatat menggunakan API penyimpanan fitur. Lihat Menampilkan silsilah penyimpanan fitur.

Saat Anda mendaftarkan model ke Katalog Unity, informasi silsilah data secara otomatis disimpan dan terlihat di tab Silsilahdari UI versi model di Catalog Explorer.

Kode berikut menunjukkan contoh.

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

Menampilkan model di UI

Izin yang diperlukan: Untuk melihat model terdaftar dan versi modelnya di UI, Anda memerlukan EXECUTE hak istimewa pada model terdaftar, plus USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model

Anda dapat melihat dan mengelola model terdaftar dan versi model di Unity Catalog menggunakan Catalog Explorer.

Mengontrol akses ke model

Untuk informasi tentang mengontrol akses ke model yang terdaftar di Unity Catalog, lihat Hak istimewa Katalog Unity dan objek yang dapat diamankan. Untuk praktik terbaik tentang mengatur model di seluruh katalog dan skema, lihat Mengatur data Anda.

Anda dapat mengonfigurasi izin model secara terprogram menggunakan Grants REST API. Saat mengonfigurasi izin model, atur securable_type ke "FUNCTION" dalam permintaan REST API. Misalnya, gunakan PATCH /api/2.1/unity-catalog/permissions/function/{full_name} untuk memperbarui izin model terdaftar.

Menyebarkan dan menata model dengan alias dan tag

Alias dan tag model membantu Anda mengatur dan mengelola model di Unity Catalog.

Alias model memungkinkan Anda menetapkan referensi bernama yang dapat diubah ke versi model terdaftar tertentu. Anda dapat menggunakan alias untuk menunjukkan status penyebaran versi model. Misalnya, Anda dapat mengalokasikan alias "Champion" ke versi model yang saat ini dalam produksi dan menargetkan alias ini dalam beban kerja yang menggunakan model produksi. Anda kemudian dapat memperbarui model produksi dengan menetapkan ulang alias "Juara" ke versi model yang berbeda.

Tag adalah pasangan kunci-nilai yang Anda kaitkan dengan model terdaftar dan versi model, memungkinkan Anda memberi label dan mengategorikannya berdasarkan fungsi atau status. Misalnya, Anda dapat menerapkan tag dengan kunci "task" dan nilai "question-answering" (ditampilkan di UI sebagai task:question-answering) ke model terdaftar yang ditujukan untuk tugas jawaban atas pertanyaan. Pada tingkat versi model, Anda dapat menandai versi yang menjalani validasi pra-penyebaran dengan validation_status:pending dan versi yang dihapus untuk penyebaran dengan validation_status:approved.

Lihat bagian berikut untuk cara menggunakan alias dan tag.

Mengatur dan menghapus alias pada model

Izin yang diperlukan: Pemilik model terdaftar, plus USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model.

Anda dapat mengatur, memperbarui, dan menghapus alias untuk model di Unity Catalog dengan menggunakan Catalog Explorer. Anda dapat mengelola alias di seluruh model terdaftar di halaman detail model dan mengonfigurasi alias untuk versi model tertentu di halaman detail versi model.

Untuk mengatur, memperbarui, dan menghapus alias menggunakan MLflow Client API, lihat contoh di bawah ini:

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

Mengatur dan menghapus tag pada model

Izin yang diperlukan: Pemilik atau memiliki APPLY_TAG hak istimewa pada model terdaftar, plus USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model.

Lihat Mengelola tag di Catalog Explorer tentang cara mengatur dan menghapus tag menggunakan UI.

Untuk mengatur dan menghapus tag menggunakan MLflow Client API, lihat contoh di bawah ini:

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

Tag versi model dan model terdaftar harus memenuhi batasan di seluruh platform.

Untuk detail selengkapnya tentang API klien alias dan tag, lihat dokumentasi API MLflow.

Memuat model untuk inferensi

Mengonsumsi versi model berdasarkan alias dalam beban kerja inferensi

Izin yang diperlukan: EXECUTE hak istimewa pada model terdaftar, plus USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model.

Anda dapat menulis beban kerja inferensi batch yang mereferensikan versi model berdasarkan alias. Misalnya, cuplikan di bawah ini memuat dan menerapkan versi model "Champion" untuk inferensi batch. Jika versi "Champion" diperbarui untuk mereferensikan versi model baru, beban kerja inferensi batch secara otomatis mengambilnya pada eksekusi berikutnya. Ini memungkinkan Anda untuk memisahkan penyebaran model dari beban kerja inferensi batch Anda.

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)

Anda juga dapat menulis alur kerja penyebaran untuk mendapatkan versi model berdasarkan alias dan memperbarui model yang melayani titik akhir untuk melayani versi tersebut, menggunakan model yang melayani 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(...)

Menggunakan versi model menurut nomor versi dalam beban kerja inferensi

Anda juga dapat memuat versi model berdasarkan nomor versi:

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)

Berbagi model di seluruh ruang kerja

Berbagi model dengan pengguna di wilayah yang sama

Selama Anda memiliki hak istimewa yang sesuai, Anda dapat mengakses model di Unity Catalog dari ruang kerja apa pun yang dilampirkan ke metastore yang berisi model. Misalnya, Anda dapat mengakses model dari prod katalog di ruang kerja dev, untuk memfasilitasi perbandingan model yang baru dikembangkan dengan garis besar produksi.

Untuk berkolaborasi dengan pengguna lain (berbagi hak istimewa tulis) pada model terdaftar yang Anda buat, Anda harus memberikan kepemilikan model ke grup yang berisi diri Anda sendiri dan pengguna yang ingin Anda gunakan untuk berkolaborasi. Kolaborator juga harus memiliki USE CATALOG hak istimewa dan USE SCHEMA pada katalog dan skema yang berisi model. Lihat Hak istimewa Katalog Unity dan objek yang dapat diamankan untuk detailnya.

Berbagi model dengan pengguna di wilayah atau akun lain

Untuk berbagi model dengan pengguna di wilayah atau akun lain, gunakan alur berbagi Delta Sharing Databricks-to-Databricks. Lihat Menambahkan model ke berbagi (untuk penyedia) dan Mendapatkan akses dalam model Databricks-ke-Databricks (untuk penerima). Sebagai penerima, setelah membuat katalog dari berbagi, Anda mengakses model dalam katalog bersama tersebut dengan cara yang sama seperti model lain di Unity Catalog.

Mempromosikan model di seluruh lingkungan

Databricks merekomendasikan agar Anda menyebarkan alur ML sebagai kode. Ini menghilangkan kebutuhan untuk mempromosikan model di seluruh lingkungan, karena semua model produksi dapat diproduksi melalui alur kerja pelatihan otomatis di lingkungan produksi.

Namun, dalam beberapa kasus, mungkin terlalu mahal untuk melatih kembali model di seluruh lingkungan. Sebagai gantinya, Anda dapat menyalin versi model di seluruh model terdaftar di Unity Catalog untuk mempromosikannya di seluruh lingkungan.

Anda memerlukan hak istimewa berikut untuk menjalankan kode contoh di bawah ini:

  • USE CATALOG pada staging katalog dan prod .
  • USE SCHEMA pada staging.ml_team skema dan prod.ml_team .
  • EXECUTE pada staging.ml_team.fraud_detection.

Selain itu, Anda harus menjadi pemilik model prod.ml_team.fraud_detectionterdaftar .

Cuplikan kode berikut menggunakan copy_model_versionMLflow Client API, tersedia di MLflow versi 2.8.0 ke atas.

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)

Setelah versi model berada di lingkungan produksi, Anda dapat melakukan validasi pra-penyebaran yang diperlukan. Kemudian, Anda dapat menandai versi model untuk penyebaran menggunakan alias.

client = mlflow.tracking.MlflowClient()
client.set_registered_model_alias(name="prod.ml_team.fraud_detection", alias="Champion", version=copied_model_version.version)

Dalam contoh di atas, hanya pengguna yang dapat membaca dari staging.ml_team.fraud_detection model terdaftar dan menulis ke prod.ml_team.fraud_detection model terdaftar yang dapat mempromosikan model penahapan ke lingkungan produksi. Pengguna yang sama juga dapat menggunakan alias untuk mengelola versi model mana yang disebarkan dalam lingkungan produksi. Anda tidak perlu mengonfigurasi aturan atau kebijakan lain untuk mengatur promosi dan penyebaran model.

Anda dapat menyesuaikan alur ini untuk mempromosikan versi model di beberapa lingkungan yang cocok dengan penyiapan Anda, seperti dev, qa, dan prod. Kontrol akses diberlakukan seperti yang dikonfigurasi di setiap lingkungan.

Anotasi model atau versi model

Izin yang diperlukan: Pemilik model terdaftar, plus USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model.

Anda dapat memberikan informasi tentang model atau versi model dengan anotasi. Misalnya, Anda mungkin ingin menyertakan gambaran umum tentang masalah atau informasi tentang metodologi dan algoritma yang digunakan.

Anotasi versi model atau model menggunakan antarmuka pengguna

Lihat Data dokumen di Catalog Explorer menggunakan komentar markdown.

Membuat anotasi model atau versi model menggunakan API

Untuk memperbarui deskripsi model terdaftar, gunakan metode MLflow Client API update_registered_model() :

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

Untuk memperbarui deskripsi versi model, gunakan metode MLflow Client API update_model_version() :

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

Mengganti nama model

Izin yang diperlukan: Pemilik model terdaftar, CREATE_MODEL hak istimewa pada skema yang berisi model terdaftar, dan USE SCHEMA hak USE CATALOG istimewa pada skema dan katalog yang berisi model.

Untuk mengganti nama model terdaftar, gunakan metode MLflow Client API rename_registered_model() :

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

Menghapus model atau versi model

Izin yang diperlukan: Pemilik model terdaftar, plus USE SCHEMA dan USE CATALOG hak istimewa pada skema dan katalog yang berisi model.

Anda dapat menghapus model terdaftar atau versi model dalam model terdaftar menggunakan UI Catalog Explorer atau API.

Menghapus versi model atau model menggunakan API

Peringatan

Anda tidak dapat membatalkan tindakan ini. Saat Anda menghapus model, semua artefak model yang disimpan oleh Unity Catalog dan semua metadata yang terkait dengan model terdaftar akan dihapus.

Menghapus versi model

Untuk menghapus versi model, gunakan metode 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)

Menghapus model

Untuk menghapus model, gunakan metode MLflow Client API delete_registered_model() :

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

Mencantumkan dan mencari model

Anda dapat mencantumkan model terdaftar di Unity Catalog dengan API Python search_registered_models() MLflow:

client=MlflowClient()
client.search_registered_models()

Anda juga dapat mencari nama model tertentu dan mencantumkan detail versinya menggunakan search_model_versions() metode :

from pprint import pprint

client=MlflowClient()
[pprint(mv) for mv in client.search_model_versions("name='<model-name>'")]

Catatan

Tidak semua bidang dan operator API pencarian didukung untuk model di Unity Catalog. Lihat Batasan untuk detailnya.

Mengunduh file model (kasus penggunaan tingkat lanjut)

Dalam kebanyakan kasus, untuk memuat model, Anda harus menggunakan API MLflow seperti mlflow.pyfunc.load_model atau mlflow.<flavor>.load_model (misalnya, mlflow.transformers.load_model untuk model HuggingFace).

Dalam beberapa kasus, Anda mungkin perlu mengunduh file model untuk men-debug perilaku model atau masalah pemuatan model. Anda dapat mengunduh file model menggunakan mlflow.artifacts.download_artifacts, sebagai berikut:

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)

Contoh

Contoh ini menggambarkan cara menggunakan Model di Unity Catalog untuk membangun aplikasi pembelajaran mesin.

Model dalam contoh Katalog Unity

Memigrasikan alur kerja dan model ke Unity Catalog

Databricks merekomendasikan penggunaan Model di Unity Catalog untuk meningkatkan tata kelola, berbagi yang mudah di seluruh ruang kerja dan lingkungan, dan alur kerja MLOps yang lebih fleksibel. Tabel membandingkan kemampuan Registri Model Ruang Kerja dan Katalog Unity.

Kemampuan Registri Model Ruang Kerja (warisan) Model di Unity Catalog (disarankan)
Mereferensikan versi model dengan alias bernama Tahap Registri Model: Memindahkan versi model ke dalam salah satu dari empat tahap tetap untuk mereferensikannya pada tahap tersebut. Tidak dapat mengganti nama atau menambahkan tahapan. Alias Registri Model: Buat hingga 10 referensi bernama kustom dan dapat ditetapkan kembali ke versi model untuk setiap model terdaftar.
Membuat lingkungan yang dikontrol akses untuk model TahapAn Registri Model: Gunakan tahapan dalam satu model terdaftar untuk menunjukkan lingkungan versi modelnya, dengan kontrol akses hanya untuk dua dari empat tahap tetap (Staging dan Production). Model Terdaftar: Buat model terdaftar untuk setiap lingkungan dalam alur kerja MLOps Anda, menggunakan namespace tiga tingkat dan izin Katalog Unity untuk mengekspresikan tata kelola.
Mempromosikan model di seluruh lingkungan (menyebarkan model) transition_model_version_stage() Gunakan MLflow Client API untuk memindahkan versi model ke tahap yang berbeda, yang berpotensi merusak alur kerja yang mereferensikan tahap sebelumnya. copy_model_version() Gunakan MLflow Client API untuk menyalin versi model dari satu model terdaftar ke model lain.
Mengakses dan berbagi model di seluruh ruang kerja Ekspor dan impor model secara manual di seluruh ruang kerja, atau konfigurasikan koneksi ke registri model jarak jauh menggunakan token akses pribadi dan cakupan rahasia ruang kerja. Akses di luar kotak ke model di seluruh ruang kerja di akun yang sama. Tidak memerlukan konfigurasi.
Mengonfigurasi izin Atur izin di tingkat ruang kerja. Atur izin di tingkat akun, yang menerapkan tata kelola yang konsisten di seluruh ruang kerja.
Mengakses model di markplace Databricks Tidak tersedia. Muat model dari marketplace Databricks ke metastore Unity Catalog Anda dan akses di seluruh ruang kerja.

Artikel yang ditautkan di bawah ini menjelaskan cara memigrasikan alur kerja (pelatihan model dan pekerjaan inferensi batch) dan model dari Registri Model Ruang Kerja ke Katalog Unity.

Batasan

  • Tahapan tidak didukung untuk model di Unity Catalog. Databricks merekomendasikan penggunaan namespace tiga tingkat di Unity Catalog untuk mengekspresikan lingkungan tempat model berada, dan menggunakan alias untuk mempromosikan model untuk penyebaran. Lihat Mempromosikan model di seluruh lingkungan untuk detailnya.
  • Webhook tidak didukung untuk model di Unity Catalog. Lihat alternatif yang disarankan dalam panduan peningkatan.
  • Beberapa bidang dan operator API pencarian tidak didukung untuk model di Unity Catalog. Ini dapat dimitigasi dengan memanggil API pencarian menggunakan filter yang didukung dan memindai hasilnya. Berikut ini adalah beberapa contoh:
    • Parameter order_by tidak didukung di API klien search_model_versions atau search_registered_models .
    • Filter berbasis tag (tags.mykey = 'myvalue') tidak didukung untuk search_model_versions atau search_registered_models.
    • Operator selain kesetaraan yang tepat (misalnya, , LIKE, ILIKE!=) tidak didukung untuk search_model_versions atau search_registered_models.
    • Mencari model terdaftar berdasarkan nama (misalnya, MlflowClient().search_registered_models(filter_string="name='main.default.mymodel'") tidak didukung. Untuk mengambil model terdaftar tertentu berdasarkan nama, gunakan get_registered_model.
  • Pemberitahuan email dan utas diskusi komentar pada model terdaftar dan versi model tidak didukung di Katalog Unity.
  • Log aktivitas tidak didukung untuk model di Unity Catalog. Namun, Anda dapat melacak aktivitas pada model di Unity Catalog menggunakan log audit.
  • search_registered_models mungkin mengembalikan hasil kedaluarsa untuk model yang dibagikan melalui Berbagi Delta. Untuk memastikan hasil terbaru, gunakan Databricks CLI atau SDK untuk mencantumkan model dalam skema.