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

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:1dengan 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.jsonpeta 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