Menyebarkan paket model ke titik akhir online (pratinjau)
Paket model adalah kemampuan di Azure Pembelajaran Mesin yang memungkinkan Anda mengumpulkan semua dependensi yang diperlukan untuk menyebarkan model pembelajaran mesin ke platform penyajian. Membuat paket sebelum menyebarkan model menyediakan penyebaran yang kuat dan andal dan alur kerja MLOps yang lebih efisien. Paket dapat dipindahkan di seluruh ruang kerja dan bahkan di luar Azure Pembelajaran Mesin. Pelajari selengkapnya tentang paket Model (pratinjau)
Penting
Fitur ini masih dalam pratinjau umum. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas.
Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.
Dalam artikel ini, Anda mempelajari cara mengemas model dan menyebarkannya ke titik akhir online di Azure Pembelajaran Mesin.
Prasyarat
Sebelum mengikuti langkah-langkah dalam artikel ini, pastikan Anda memiliki prasyarat berikut:
Langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai. Coba versi gratis atau berbayar Azure Machine Learning.
Ruang kerja Azure Machine Learning. Jika Anda tidak memilikinya, gunakan langkah-langkah dalam artikel Cara mengelola ruangkerja untuk membuatnya.
Kontrol akses berbasis peran Azure (Azure RBAC) digunakan untuk memberikan akses ke operasi di Azure Machine Learning. Untuk melakukan langkah-langkah dalam artikel ini, akun pengguna Anda harus diberi peran pemilik atau kontributor untuk ruang kerja Azure Pembelajaran Mesin, atau peran kustom. Untuk informasi selengkapnya, lihat Mengelola akses ke ruang kerja Azure Machine Learning.
Tentang contoh ini
Dalam contoh ini, Anda mengemas model jenis kustom dan menyebarkannya ke titik akhir online untuk inferensi online.
Contoh dalam artikel ini didasarkan pada sampel kode yang terkandung dalam repositori azureml-examples . Untuk menjalankan perintah secara lokal tanpa harus menyalin/menempelkan YAML dan file lainnya, pertama-tama kloning repositori lalu ubah direktori ke folder:
git clone https://github.com/Azure/azureml-examples --depth 1
cd azureml-examples/cli
Bagian ini menggunakan contoh di titik akhir folder /online/deploy-packages/custom-model.
Menyambungkan ke ruang kerja Anda
Koneksi ke ruang kerja Azure Pembelajaran Mesin tempat Anda akan melakukan pekerjaan Anda.
az account set --subscription <subscription>
az configure --defaults workspace=<workspace> group=<resource-group> location=<location>
Mengemas model
Anda dapat membuat paket model secara eksplisit untuk memungkinkan Anda mengontrol bagaimana operasi pengemasan dilakukan. Anda dapat membuat paket model dengan menentukan:
- Model ke paket: Setiap paket model hanya dapat berisi satu model. Azure Pembelajaran Mesin tidak mendukung pengemasan beberapa model di bawah paket model yang sama.
- Lingkungan dasar: Lingkungan digunakan untuk menunjukkan gambar dasar, dan dalam paket Python bergantung pada kebutuhan model Anda. Untuk model MLflow, Azure Pembelajaran Mesin secara otomatis menghasilkan lingkungan dasar. Untuk model kustom, Anda perlu menentukannya.
- Teknologi penyajian: Tumpukan inferensi yang digunakan untuk menjalankan model.
Tip
Jika model Anda adalah MLflow, Anda tidak perlu membuat paket model secara manual. Kita dapat secara otomatis mengemas sebelum penyebaran. Lihat Menyebarkan model MLflow ke titik akhir online.
Paket model mengharuskan model didaftarkan di ruang kerja Anda atau di registri Azure Pembelajaran Mesin. Dalam contoh ini, Anda sudah memiliki salinan lokal model di repositori, jadi Anda hanya perlu menerbitkan model ke registri di ruang kerja. Anda dapat melewati bagian ini jika model yang coba Anda sebarkan sudah terdaftar.
Model kami memerlukan paket berikut untuk dijalankan dan kami memilikinya yang ditentukan dalam file conda:
conda.yaml
name: model-env channels: - conda-forge dependencies: - python=3.9 - numpy=1.23.5 - pip=23.0.1 - scikit-learn=1.2.2 - scipy=1.10.1 - xgboost==1.3.3
Catatan
Perhatikan bagaimana hanya persyaratan model yang ditunjukkan dalam YAML conda. Paket apa pun yang diperlukan untuk server inferensi akan disertakan oleh operasi paket.
Tip
Jika model Anda memerlukan paket yang dihosting di umpan privat, Anda dapat mengonfigurasi paket Anda untuk menyertakannya. Baca Paket model yang memiliki dependensi dalam umpan Python privat.
Buat lingkungan dasar yang berisi persyaratan model dan gambar dasar. Hanya dependensi yang diperlukan oleh model Anda yang ditunjukkan di lingkungan dasar. Untuk model MLflow, lingkungan dasar bersifat opsional dalam hal ini Azure Pembelajaran Mesin membuatnya secara otomatis untuk Anda.
Buat definisi lingkungan dasar:
sklearn-regression-env.yml
$schema: https://azuremlschemas.azureedge.net/latest/environment.schema.json name: sklearn-regression-env image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu22.04 conda_file: conda.yaml description: An environment for models built with XGBoost and Scikit-learn.
Kemudian buat lingkungan sebagai berikut:
az ml environment create -f environment/sklearn-regression-env.yml
Buat spesifikasi paket:
package-moe.yml
$schema: http://azureml/sdk-2-0/ModelVersionPackage.json base_environment_source: type: environment_asset resource_id: azureml:sklearn-regression-env:1 target_environment: sklearn-regression-online-pkg inferencing_server: type: azureml_online code_configuration: code: src scoring_script: score.py
Mulai operasi paket model:
Hasil dari operasi paket adalah lingkungan.
Menyebarkan paket model
Paket model dapat disebarkan langsung ke titik akhir online di Azure Pembelajaran Mesin. Ikuti langkah-langkah ini untuk menyebarkan paket ke titik akhir online:
Pilih nama untuk titik akhir untuk menghosting penyebaran paket dan membuatnya:
Buat penyebaran, menggunakan paket . Perhatikan cara
environment
dikonfigurasi dengan paket yang telah Anda buat.deployment.yml
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json name: with-package endpoint_name: hello-packages environment: azureml:sklearn-regression-online-pkg@latest instance_type: Standard_DS3_v2 instance_count: 1
Tip
Perhatikan bahwa Anda tidak menentukan model atau skrip penilaian dalam contoh ini; mereka semua bagian dari paket.
Mulai penyebaran:
Pada titik ini, penyebaran siap dikonsumsi. Anda dapat menguji cara kerjanya dengan membuat file permintaan sampel:
sample-request.json
{ "data": [ [1,2,3,4,5,6,7,8,9,10], [10,9,8,7,6,5,4,3,2,1] ] }
Mengirim permintaan ke titik akhir