Menggunakan VM berprioritas rendah dalam penyebaran batch

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

Azure Batch Deployments mendukung VM berprioritas rendah untuk mengurangi biaya beban kerja inferensi batch. VM berprioritas rendah memungkinkan sejumlah besar daya komputasi digunakan dengan biaya rendah. VM berprioritas rendah memanfaatkan kapasitas surplus di Azure. Saat Anda menentukan VM berprioritas rendah di kumpulan Anda, Azure dapat menggunakan surplus ini, jika tersedia.

Tradeoff untuk menggunakannya adalah bahwa VM tersebut mungkin tidak selalu tersedia untuk dialokasikan, atau dapat didahului kapan saja, tergantung pada kapasitas yang tersedia. Untuk alasan ini, mereka paling cocok untuk beban kerja pemrosesan batch dan asinkron di mana waktu penyelesaian pekerjaan fleksibel dan pekerjaan didistribusikan di banyak VM.

VM berprioritas rendah ditawarkan dengan harga yang jauh lebih rendah dibandingkan dengan VM khusus. Untuk detail harga, lihat Harga Azure Machine Learning.

Cara kerja penyebaran batch dengan VM berprioritas rendah

Penyebaran Batch Azure Machine Learning menyediakan beberapa kemampuan yang memudahkan penggunaan dan manfaat dari VM berprioritas rendah:

  • Pekerjaan penyebaran batch menggunakan VM berprioritas rendah dengan berjalan pada kluster komputasi Azure Machine Learning yang dibuat dengan VM berprioritas rendah. Setelah penyebaran dikaitkan dengan kluster VM berprioritas rendah, semua pekerjaan yang dihasilkan oleh penyebaran tersebut akan menggunakan VM berprioritas rendah. Konfigurasi per pekerjaan tidak dimungkinkan.
  • Pekerjaan penyebaran batch secara otomatis mencari jumlah target VM di kluster komputasi yang tersedia berdasarkan jumlah tugas yang akan dikirimkan. Jika VM didahulukan atau tidak tersedia, pekerjaan penyebaran batch mencoba mengganti kapasitas yang hilang dengan mengantre tugas yang gagal ke kluster.
  • VM berprioritas rendah memiliki kuota vCPU terpisah yang berbeda dari VM khusus. Inti berprioritas rendah per wilayah memiliki batas default 100 hingga 3.000, tergantung pada jenis penawaran langganan Anda. Jumlah inti berprioritas rendah per langganan dapat ditingkatkan dan merupakan nilai tunggal di seluruh keluarga VM. Lihat Kuota komputasi Azure Machine Learning.

Pertimbangan dan kasus penggunaan

Banyak beban kerja batch cocok untuk VM berprioritas rendah. Meskipun ini dapat memperkenalkan penundaan eksekusi lebih lanjut ketika pembatalan alokasi VM terjadi, potensi penurunan kapasitas dapat ditoleransi dengan biaya berjalan dengan biaya yang lebih rendah jika ada fleksibilitas dalam pekerjaan waktu harus diselesaikan.

Saat menyebarkan model di bawah titik akhir batch, penjadwalan ulang dapat dilakukan pada tingkat batch mini. Itu memiliki manfaat tambahan bahwa dealokasi hanya berdampak pada batch mini yang saat ini sedang diproses dan belum selesai pada simpul yang terpengaruh. Setiap kemajuan yang selesai disimpan.

Membuat penyebaran batch dengan VM berprioritas rendah

Pekerjaan penyebaran batch menggunakan VM berprioritas rendah dengan berjalan pada kluster komputasi Azure Machine Learning yang dibuat dengan VM berprioritas rendah.

Catatan

Setelah penyebaran dikaitkan dengan kluster VM berprioritas rendah, semua pekerjaan yang dihasilkan oleh penyebaran tersebut akan menggunakan VM berprioritas rendah. Konfigurasi per pekerjaan tidak dimungkinkan.

Anda dapat membuat kluster komputasi Azure Machine Learning berprioritas rendah sebagai berikut:

Buat definisi YAML komputasi seperti berikut ini:

low-pri-cluster.yml

$schema: https://azuremlschemas.azureedge.net/latest/amlCompute.schema.json 
name: low-pri-cluster
type: amlcompute
size: STANDARD_DS3_v2
min_instances: 0
max_instances: 2
idle_time_before_scale_down: 120
tier: low_priority

Buat komputasi menggunakan perintah berikut:

az ml compute create -f low-pri-cluster.yml

Setelah komputasi baru dibuat, Anda dapat membuat atau memperbarui penyebaran untuk menggunakan kluster baru:

Untuk membuat atau memperbarui penyebaran di bawah kluster komputasi baru, buat YAML konfigurasi seperti berikut ini:

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier@latest
compute: azureml:low-pri-cluster
resources:
  instance_count: 2
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 2
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 300

Kemudian, buat penyebaran dengan perintah berikut:

az ml batch-endpoint create -f endpoint.yml

Melihat dan memantau dealokasi simpul

Metrik baru tersedia di portal Azure untuk VM berprioritas rendah untuk memantau VM berprioritas rendah. Metrik ini adalah:

  • Simpul yang didahulukan
  • Inti yang didahului

Untuk melihat metrik ini di portal Microsoft Azure

  1. Navigasi ke ruang kerja Azure Machine Learning Anda di portal Azure.
  2. Pilih Metrik dari bagian Pemantauan.
  3. Pilih metrik yang Anda inginkan dari daftar Metrik.

Cuplikan layar bagian metrik di bilah pemantauan sumber daya memperlihatkan metrik yang relevan untuk VM berprioritas rendah.

Batasan

  • Setelah penyebaran dikaitkan dengan kluster VM berprioritas rendah, semua pekerjaan yang dihasilkan oleh penyebaran tersebut akan menggunakan VM berprioritas rendah. Konfigurasi per pekerjaan tidak dimungkinkan.
  • Penjadwalan ulang dilakukan pada tingkat batch mini, terlepas dari kemajuannya. Tidak ada kemampuan titik pemeriksaan yang disediakan.

Peringatan

Dalam kasus di mana seluruh kluster didahului (atau berjalan pada kluster simpul tunggal), pekerjaan akan dibatalkan karena tidak ada kapasitas yang tersedia untuk dijalankan. Pengiriman ulang akan diperlukan dalam kasus ini.