Bagikan melalui


Titik akhir online skala otomatis di Azure Pembelajaran Mesin

BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)

Dalam artikel ini, Anda belajar mengelola penggunaan sumber daya dalam penyebaran dengan mengonfigurasi penskalaan otomatis berdasarkan metrik dan jadwal. Proses skala otomatis memungkinkan Anda secara otomatis menjalankan jumlah sumber daya yang tepat untuk menangani beban pada aplikasi Anda. Titik akhir online di Azure Pembelajaran Mesin mendukung autoscaling melalui integrasi dengan fitur skala otomatis di Azure Monitor.

Skala otomatis Azure Monitor memungkinkan Anda mengatur aturan yang memicu satu atau beberapa tindakan skala otomatis saat kondisi aturan terpenuhi. Anda dapat mengonfigurasi penskalaan berbasis metrik (seperti pemanfaatan CPU lebih besar dari 70%), penskalaan berbasis jadwal (seperti aturan penskalaan untuk jam kerja puncak), atau kombinasi keduanya. Untuk informasi selengkapnya, lihat Gambaran umum skala otomatis di Microsoft Azure.

Diagram yang menunjukkan cara skala otomatis menambahkan dan menghapus instans sesuai kebutuhan.

Saat ini Anda dapat mengelola penskalakan otomatis dengan menggunakan Azure CLI, REST API, Azure Resource Manager, Python SDK, atau portal Azure berbasis browser.

Prasyarat

  • Titik akhir yang disebarkan. Untuk informasi selengkapnya, lihat Menyebarkan dan menilai model pembelajaran mesin dengan menggunakan titik akhir online.

  • Untuk menggunakan skala otomatis, peran microsoft.insights/autoscalesettings/write harus ditetapkan ke identitas yang mengelola skala otomatis. Anda dapat menggunakan peran bawaan atau kustom apa pun yang memungkinkan tindakan ini. Untuk panduan umum tentang mengelola peran untuk Azure Pembelajaran Mesin, lihat Mengelola pengguna dan peran. Untuk informasi selengkapnya tentang pengaturan skala otomatis dari Azure Monitor, lihat Penskalaan otomatis Microsoft.Insights.

  • Untuk menggunakan Python SDK untuk mengelola layanan Azure Monitor, instal azure-mgmt-monitor paket dengan perintah berikut:

    pip install azure-mgmt-monitor
    

Menentukan profil skala otomatis

Untuk mengaktifkan skala otomatis untuk titik akhir online, Anda terlebih dahulu menentukan profil skala otomatis. Profil menentukan kapasitas set skala default, minimum, dan maksimum. Contoh berikut menunjukkan cara mengatur jumlah instans komputer virtual (VM) untuk kapasitas skala default, minimum, dan maksimum.

BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)

Jika belum mengatur default untuk Azure CLI, simpan pengaturan default Anda. Untuk menghindari melewati nilai untuk langganan, ruang kerja, dan grup sumber daya Anda beberapa kali, jalankan kode ini:

az account set --subscription <subscription ID>
az configure --defaults workspace=<Azure Machine Learning workspace name> group=<resource group>
  1. Atur titik akhir dan nama penyebaran:

    # set your existing endpoint name
    ENDPOINT_NAME=your-endpoint-name
    DEPLOYMENT_NAME=blue
    
  2. Dapatkan ID Azure Resource Manager dari penyebaran dan titik akhir:

    # ARM id of the deployment
    DEPLOYMENT_RESOURCE_ID=$(az ml online-deployment show -e $ENDPOINT_NAME -n $DEPLOYMENT_NAME -o tsv --query "id")
    # ARM id of the deployment. todo: change to --query "id"
    ENDPOINT_RESOURCE_ID=$(az ml online-endpoint show -n $ENDPOINT_NAME -o tsv --query "properties.\"azureml.onlineendpointid\"")
    # set a unique name for autoscale settings for this deployment. The below will append a random number to make the name unique.
    AUTOSCALE_SETTINGS_NAME=autoscale-$ENDPOINT_NAME-$DEPLOYMENT_NAME-`echo $RANDOM`
    
  3. Buat profil skala otomatis:

    az monitor autoscale create \
      --name $AUTOSCALE_SETTINGS_NAME \
      --resource $DEPLOYMENT_RESOURCE_ID \
      --min-count 2 --max-count 5 --count 2
    

Catatan

Untuk informasi selengkapnya, lihat referensi skala otomatis monitor az.

Membuat aturan peluasan skala berdasarkan metrik penyebaran

Aturan peluasan skala umum adalah meningkatkan jumlah instans VM ketika beban CPU rata-rata tinggi. Contoh berikut menunjukkan cara mengalokasikan dua simpul lagi (hingga maksimum) jika beban rata-rata CPU lebih besar dari 70% selama 5 menit:

BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)

az monitor autoscale rule create \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --condition "CpuUtilizationPercentage > 70 avg 5m" \
  --scale out 2

Aturan adalah bagian my-scale-settings dari profil, di mana autoscale-name cocok dengan name bagian profil. Nilai argumen aturan condition menunjukkan aturan memicu ketika "Konsumsi CPU rata-rata di antara instans VM melebihi 70% selama 5 menit." Ketika kondisi terpenuhi, dua instans VM lagi dialokasikan.

Catatan

Untuk informasi selengkapnya, lihat referensi sintaks Azure CLI skala otomatis az monitor.

Membuat aturan penyempurnaan berdasarkan metrik penyebaran

Ketika beban CPU rata-rata ringan, aturan penyempurnaan skala dapat mengurangi jumlah instans VM. Contoh berikut menunjukkan cara merilis satu node hingga minimal dua, jika beban CPU kurang dari 30% selama 5 menit.

BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)

az monitor autoscale rule create \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --condition "CpuUtilizationPercentage < 25 avg 5m" \
  --scale in 1

Membuat aturan skala berdasarkan metrik titik akhir

Di bagian sebelumnya, Anda membuat aturan untuk menskalakan masuk atau keluar berdasarkan metrik penyebaran. Anda juga dapat membuat aturan yang berlaku untuk titik akhir penyebaran. Di bagian ini, Anda mempelajari cara mengalokasikan simpul lain ketika latensi permintaan lebih besar dari rata-rata 70 milidetik selama 5 menit.

BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)

az monitor autoscale rule create \
 --autoscale-name $AUTOSCALE_SETTINGS_NAME \
 --condition "RequestLatency > 70 avg 5m" \
 --scale out 1 \
 --resource $ENDPOINT_RESOURCE_ID

Menemukan ID untuk metrik yang didukung

Jika Anda ingin menggunakan metrik lain dalam kode untuk menyiapkan aturan skala otomatis dengan menggunakan Azure CLI atau SDK, lihat tabel dalam Metrik yang tersedia.

Membuat aturan skala berdasarkan jadwal

Anda juga dapat membuat aturan yang hanya berlaku pada hari-hari tertentu atau pada waktu-waktu tertentu. Di bagian ini, Anda membuat aturan yang menetapkan jumlah simpul menjadi 2 pada akhir pekan.

BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)

az monitor autoscale profile create \
  --name weekend-profile \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --min-count 2 --count 2 --max-count 2 \
  --recurrence week sat sun --timezone "Pacific Standard Time"

Mengaktifkan atau menonaktifkan skala otomatis

Anda dapat mengaktifkan atau menonaktifkan profil skala otomatis tertentu.

BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)

az monitor autoscale update \
  --autoscale-name $AUTOSCALE_SETTINGS_NAME \
  --enabled false

Menghapus sumber daya

Jika Anda tidak akan menggunakan penyebaran, hapus sumber daya dengan langkah-langkah berikut.

BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)

# delete the autoscaling profile
az monitor autoscale delete -n "$AUTOSCALE_SETTINGS_NAME"

# delete the endpoint
az ml online-endpoint delete --name $ENDPOINT_NAME --yes --no-wait