Bagikan melalui


Menggunakan pustaka Python kustom dengan Model Serving

Dalam artikel ini, Anda mempelajari cara menyertakan pustaka atau pustaka kustom dari server cermin privat saat mencatat model, sehingga Anda dapat menggunakannya dengan penyebaran model Model Serving . Anda harus menyelesaikan langkah-langkah yang dirinci dalam panduan ini setelah Anda memiliki model ML terlatih yang siap disebarkan tetapi sebelum Anda membuat titik akhir Penyajian Model Azure Databricks.

Pengembangan model sering memerlukan penggunaan pustaka Python kustom yang berisi fungsi untuk pra-atau pasca-pemrosesan, definisi model kustom, dan utilitas bersama lainnya. Selain itu, banyak tim keamanan perusahaan mendorong penggunaan cermin PyPi privat, seperti Nexus atau Artifactory, untuk mengurangi risiko serangan rantai pasokan. Azure Databricks menawarkan dukungan asli untuk penginstalan pustaka dan pustaka kustom dari cermin privat di ruang kerja Azure Databricks.

Persyaratan

  • MLflow 1.29 atau lebih tinggi

Langkah 1: Unggah file dependensi

Databricks merekomendasikan agar Anda mengunggah file dependensi ke volume Unity Catalog. Atau, Anda dapat mengunggahnya ke Databricks File System (DBFS) menggunakan UI Azure Databricks.

Untuk memastikan pustaka Anda tersedia untuk buku catatan Anda, Anda perlu menginstalnya menggunakan %pip%. Menggunakan %pip penginstalan pustaka di notebook saat ini dan mengunduh dependensi ke kluster.

Langkah 2: Catat model dengan pustaka kustom

Penting

Panduan di bagian ini tidak diperlukan jika Anda menginstal pustaka privat dengan menunjuk ke cermin PyPi kustom.

Setelah Anda menginstal pustaka dan mengunggah file roda Python ke volume Katalog Unity atau DBFS, sertakan kode berikut dalam skrip Anda. extra_pip_requirements Dalam tentukan jalur file dependensi Anda.

mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])

Untuk DBFS, gunakan hal berikut:

mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])

Jika Anda memiliki pustaka kustom, Anda harus menentukan semua pustaka Python kustom yang terkait dengan model Anda saat mengonfigurasi pengelogan. Anda dapat melakukannya dengan extra_pip_requirements parameter atau conda_env di log_model().

Penting

Jika menggunakan DBFS, pastikan untuk menyertakan garis miring, /, sebelum jalur Anda dbfs saat pengelogan extra_pip_requirements. Pelajari selengkapnya tentang jalur DBFS di Bekerja dengan file di Azure Databricks.

from mlflow.utils.environment import _mlflow_conda_env
conda_env =  _mlflow_conda_env(
            additional_conda_deps= None,
            additional_pip_deps= ["/volumes/path/to/dependency"],
            additional_conda_channels=None,
)
mlflow.pyfunc.log_model(..., conda_env = conda_env)

Langkah 3: Perbarui model MLflow dengan file roda Python

MLflow menyediakan utilitas add_libraries_to_model() untuk mencatat model Anda dengan semua dependensinya yang telah dikemas sebelumnya sebagai file roda Python. Ini mengemas pustaka kustom Anda bersama model selain semua pustaka lain yang ditentukan sebagai dependensi model Anda. Ini menjamin bahwa pustaka yang digunakan oleh model Anda adalah pustaka yang dapat diakses dari lingkungan pelatihan Anda.

Dalam contoh berikut, model_uri mereferensikan registri model menggunakan sintaks models:/<model-name>/<model-version>.

Saat Anda menggunakan URI registri model, utilitas ini menghasilkan versi baru di bawah model terdaftar yang ada.

import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)

Langkah 4: Layani model Anda

Saat versi model baru dengan paket yang disertakan tersedia dalam registri model, Anda dapat menambahkan versi model ini ke titik akhir dengan Model Serving.