Menyebarkan model ke Azure Container Instances dengan CLI (v1)
Penting
Artikel ini memperlihatkan cara menggunakan CLI dan SDK v1 untuk menyebarkan model. Untuk pendekatan yang direkomendasikan untuk v2, lihat Menyebarkan dan menilai model pembelajaran mesin dengan menggunakan titik akhir online.
Pelajari cara menggunakan Azure Machine Learning untuk menyebarkan model sebagai layanan web di Azure Container Instances (ACI). Gunakan Azure Container Instances jika Anda:
- lebih memilih untuk tidak mengelola kluster Kubernetes Anda sendiri
- tidak ada masalah dengan hanya memiliki satu replika layanan Anda, yang dapat berdampak pada waktu aktif
Untuk informasi tentang kuota dan ketersediaan wilayah untuk ACI, lihat Kuota dan ketersediaan wilayah untuk artikel Azure Container Instances.
Penting
Sangat disarankan untuk melakukan debug secara lokal sebelum menyebarkan ke layanan web, untuk informasi lebih lanjut lihat Debug Lokal
Anda juga bisa merujuk ke Azure Machine Learning - Menyebarkan ke Local Notebook
Prasyarat
Ruang kerja Azure Machine Learning. Untuk informasi selengkapnya, lihat Membuat ruang kerja Azure Machine Learning.
Model pembelajaran mesin yang terdaftar di ruang kerja Anda. Jika Anda tidak memiliki model terdaftar, lihat Cara dan tempat untuk menyebarkan model.
Ekstensi Azure CLI (v1) untuk layanan Azure Machine Learning, SDK Python Azure Machine Learning, atau Ekstensi Visual Studio Code Azure Machine Learning.
Penting
Beberapa perintah Azure CLI dalam artikel ini menggunakan ekstensi
azure-cli-ml
, atau v1, untuk Azure Machine Learning. Dukungan untuk ekstensi v1 akan berakhir pada 30 September 2025. Anda dapat memasang dan menggunakan ekstensi v1 hingga tanggal tersebut.Kami menyarankan agar Anda beralih ke ekstensi
ml
, atau v2 sebelum 30 September 2025. Untuk informasi selengkapnya mengenai ekstensi v2, lihat Ekstensi Azure ML CLI dan Python SDK v2.Cuplikan kode Python dalam artikel ini mengasumsikan bahwa variabel berikut diatur:
ws
- Atur ke ruang kerja Anda.model
- Atur ke model terdaftar Anda.inference_config
- Atur ke konfigurasi inferensi untuk model.
Untuk informasi selengkapnya tentang pengaturan variabel ini, lihat Cara dan tempat untuk menyebarkan model.
Cuplikan CLI dalam artikel ini mengasumsikan bahwa Anda telah membuat dokumen
inferenceconfig.json
. Untuk informasi selengkapnya tentang membuat dokumen ini, lihat Cara dan tempat untuk menyebarkan model.
Batasan
Saat ruang kerja Azure Machine Learning Anda dikonfigurasi dengan titik akhir privat, penyebaran ke Azure Container Instances di VNet tidak didukung. Sebagai gantinya, pertimbangkan untuk menggunakan Titik akhir online terkelola dengan isolasi jaringan.
Sebarkan ke ACI
Untuk menyebarkan model ke Azure Container Instances, buat konfigurasi penyebaran yang menjelaskan sumber daya komputasi yang diperlukan. Misalnya, jumlah inti dan memori. Anda juga memerlukan konfigurasi inferensi, yang menjelaskan lingkungan yang diperlukan untuk melakukan host model dan layanan web. Untuk informasi selengkapnya tentang membuat konfigurasi inferensi, lihat Cara dan tempat untuk menyebarkan model.
Catatan
- ACI hanya cocok untuk model kecil yang berukuran di bawah 1 GB.
- Sebaiknya gunakan AKS single-node untuk menguji model yang lebih besar.
- Jumlah model yang akan digunakan dibatasi hingga 1.000 model per penyebaran (per kontainer).
Menggunakan SDK
BERLAKU UNTUK:Python SDK azureml v1
from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
service = Model.deploy(ws, "aciservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)
Untuk informasi selengkapnya tentang kelas, metode, dan parameter yang digunakan dalam contoh ini, lihat dokumen referensi berikut:
Menggunakan Azure CLI
BERLAKU UNTUK:Ekstensi ml Azure CLI v1
Untuk menyebarkan dengan CLI, gunakan perintah berikut. Ganti mymodel:1
dengan nama dan versi model yang terdaftar. Ganti myservice
dengan nama untuk memberikan layanan ini:
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json
Entri dalam deploymentconfig.json
peta dokumen ke parameter untuk AciWebservice.deploy_configuration. Tabel berikut menjelaskan pemetaan antara entitas dalam dokumen JSON dan parameter untuk metode:
Entitas JSON | Parameter metode | Deskripsi |
---|---|---|
computeType |
NA | Target komputasi. Untuk ACI, nilainya harus ACI . |
containerResourceRequirements |
NA | Kontainer untuk entitas CPU dan memori. |
cpu |
cpu_cores |
Jumlah inti CPU yang akan dia alokasikan. Default, 0.1 |
memoryInGB |
memory_gb |
Jumlah memori (dalam GB) yang akan dialokasikan untuk layanan web ini. Default, 0.5 |
location |
location |
Wilayah Azure untuk menggunakan Layanan Web ini. Jika tidak ditentukan, lokasi Ruang Kerja akan digunakan. Rincian lebih lanjut tentang wilayah yang tersedia dapat ditemukan di sini: Wilayah ACI |
authEnabled |
auth_enabled |
Apakah akan memfungsikan auth untuk Layanan Web ini. Default ke False |
sslEnabled |
ssl_enabled |
Apakah akan mengaktifkan SSL untuk Layanan Web ini. Default ke False. |
appInsightsEnabled |
enable_app_insights |
Apakah mengaktifkan AppInsights untuk Webservice ini. Default ke False |
sslCertificate |
ssl_cert_pem_file |
File sertifikasi diperlukan jika SSL diaktifkan |
sslKey |
ssl_key_pem_file |
File kunci yang diperlukan jika SSL diaktifkan |
cname |
ssl_cname |
Nama c untuk jika SSL diaktifkan |
dnsNameLabel |
dns_name_label |
Label nama dns untuk titik akhir penilaian. Jika tidak ditentukan label nama dns unik akan dihasilkan untuk titik akhir penilaian. |
JSON berikut adalah contoh konfigurasi penyebaran untuk digunakan dengan CLI:
{
"computeType": "aci",
"containerResourceRequirements":
{
"cpu": 0.5,
"memoryInGB": 1.0
},
"authEnabled": true,
"sslEnabled": false,
"appInsightsEnabled": false
}
Untuk informasi selengkapnya, lihat referensi penyebaran model az ml.
Menggunakan Visual Studio Code
Lihat cara mengelola sumber daya di VS Code.
Penting
Anda tidak perlu membuat kontainer ACI untuk menguji terlebih dahulu. Kontainer ACI dibuat sesuai kebutuhan.
Penting
Kami menambahkan id ruang kerja hashed ke semua sumber daya ACI yang mendasarinya yang dibuat, semua nama ACI dari ruang kerja yang sama akan memiliki akhiran yang sama. Nama layanan Azure Machine Learning masih akan menjadi pelanggan yang sama dengan "service_name" dan semua pengguna yang menghadapi Azure Machine Learning SDK API tidak memerlukan perubahan apa pun. Kami tidak memberikan jaminan pada nama-nama sumber daya yang mendasarinya yang dibuat.
Langkah berikutnya
- Cara menyebarkan model menggunakan gambar Docker kustom
- Pemecahan masalah penyebaran
- Memperbarui layanan web
- Menggunakan TLS untuk mengamankan layanan web melalui Azure Machine Learning
- Menggunakan model ML yang disebarkan sebagai layanan web
- Memantau model Azure Machine Learning Anda dengan Application Insights
- Mengumpulkan data untuk model dalam produksi