Bagikan melalui


Meningkatkan alur kerja ML ke model target di Unity Catalog

Artikel ini menjelaskan cara memigrasikan dan meningkatkan alur kerja ML ke model target di Unity Catalog.

Persyaratan

Sebelum memulai, pastikan untuk memenuhi persyaratan dalam Persyaratan. Secara khusus, pastikan bahwa pengguna atau prinsipal yang digunakan untuk menjalankan pelatihan model, penyebaran, dan alur kerja inferensi Anda memiliki hak istimewa yang diperlukan pada model terdaftar di Unity Catalog:

  • Pelatihan: Kepemilikan model terdaftar (diperlukan untuk membuat versi model baru), plus USE CATALOG dan USE SCHEMA hak istimewa pada katalog dan skema penutup.
  • Penyebaran: Kepemilikan model terdaftar (diperlukan untuk mengatur alias pada model), plus USE CATALOG dan USE SCHEMA hak istimewa pada katalog dan skema penutup.
  • Inferensi: EXECUTE hak istimewa pada model terdaftar (diperlukan untuk membaca dan melakukan inferensi dengan versi model), ditambah USE CATALOG dan 'GUNAKAN hak istimewa SKEMA pada katalog dan skema penutup.

Membuat pelatihan, penyebaran, dan alur kerja paralel

Untuk meningkatkan alur kerja pelatihan dan inferensi model ke Unity Catalog, Databricks merekomendasikan pendekatan bertahap di mana Anda membuat alur pelatihan, penyebaran, dan inferensi paralel yang memanfaatkan model di Unity Catalog. Saat Anda nyaman dengan hasilnya menggunakan Unity Catalog, Anda dapat mengalihkan konsumen hilir untuk membaca output inferensi batch, atau meningkatkan lalu lintas yang dirutekan ke model di Unity Catalog dalam melayani titik akhir.

Alur kerja pelatihan model

Kloning alur kerja pelatihan model Anda. Kemudian, pastikan bahwa:

  1. Kluster alur kerja memiliki akses ke Unity Catalog dan memenuhi persyaratan yang dijelaskan dalam Persyaratan.
  2. Prinsipal yang menjalankan alur kerja memiliki izin yang diperlukan pada model terdaftar di Unity Catalog.

Selanjutnya, ubah kode pelatihan model dalam alur kerja kloning. Anda mungkin perlu mengkloning notebook yang dijalankan oleh alur kerja, atau membuat dan menargetkan cabang git baru di alur kerja kloning. Ikuti langkah-langkah ini untuk menginstal versi MLflow yang diperlukan, konfigurasikan klien untuk menargetkan Katalog Unity dalam kode pelatihan Anda, dan perbarui kode pelatihan model untuk mendaftarkan model ke Unity Catalog.

Alur kerja penyebaran model

Kloning alur kerja penyebaran model Anda, mengikuti langkah-langkah serupa seperti dalam alur kerja pelatihan Model untuk memperbarui konfigurasi komputasinya untuk mengaktifkan akses ke Unity Catalog.

Pastikan prinsipal yang memiliki alur kerja kloning memiliki izin yang diperlukan. Jika Anda memiliki logika validasi model dalam alur kerja penyebaran Anda, perbarui untuk memuat versi model dari UC. Gunakan alias untuk mengelola peluncuran model produksi.

Alur kerja inferensi model

Alur kerja inferensi batch

Ikuti langkah serupa seperti dalam alur kerja pelatihan Model untuk mengkloning alur kerja inferensi batch dan memperbarui konfigurasi komputasinya untuk mengaktifkan akses ke Unity Catalog. Pastikan prinsipal yang menjalankan pekerjaan inferensi batch kloning memiliki izin yang diperlukan untuk memuat model untuk inferensi.

Model yang melayani alur kerja

Jika Anda menggunakan Mosaic AI Model Serving, Anda tidak perlu mengkloning titik akhir yang ada. Sebagai gantinya , Anda dapat memanfaatkan fitur pemisahan lalu lintas untuk merutekan sebagian kecil lalu lintas ke model di Unity Catalog.

Pertama, pastikan prinsipal yang memiliki model yang melayani titik akhir memiliki izin yang diperlukan untuk memuat model untuk inferensi. Kemudian, perbarui alur kerja penyebaran model kloning Anda untuk menetapkan persentase kecil lalu lintas ke versi model 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_version MLflow 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.

Menggunakan webhook pekerjaan untuk persetujuan manual untuk penyebaran model

Databricks merekomendasikan agar Anda mengotomatiskan penyebaran model jika memungkinkan, menggunakan pemeriksaan dan pengujian yang sesuai selama proses penyebaran model. Namun, jika Anda perlu melakukan persetujuan manual untuk menyebarkan model produksi, Anda dapat menggunakan webhook pekerjaan untuk memanggil sistem CI/CD eksternal untuk meminta persetujuan manual untuk menyebarkan model, setelah pekerjaan pelatihan model Anda berhasil diselesaikan. Setelah persetujuan manual diberikan, sistem CI/CD Anda kemudian dapat menyebarkan versi model untuk melayani lalu lintas, misalnya dengan mengatur alias "Champion" di atasnya.