Skema YAML penyebaran online yang dikelola CLI (v2)

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

Skema JSON sumber dapat ditemukan di https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json.

Catatan

Sintaks YAML yang dirinci dalam dokumen ini didasarkan pada skema JSON untuk versi terbaru ekstensi CLI v2 ML. Sintaks ini dijamin hanya berfungsi dengan versi terbaru ekstensi CLI v2 ML. Anda dapat menemukan skema untuk versi ekstensi yang lebih lama di https://azuremlschemasprod.azureedge.net/.

Sintaks YAML

Kunci Tipe Deskripsi Nilai yang diizinkan Nilai default
$schema string Skema YAML. Jika Anda menggunakan ekstensi Visual Studio Code Azure Machine Learning untuk menulis file YAML, termasuk $schema di bagian atas file, Anda akan dapat meminta skema dan penyelesaian sumber daya.
name string Harus diisi. Nama penyebaran.

Aturan penamaan ditentukan di sini.
description string Deskripsi penyebaran.
tags object Kamus tag untuk penyebaran.
endpoint_name string Harus diisi. Nama titik akhir untuk membuat penyebaran di bawah ini.
model string atau objek Model yang digunakan untuk penyebaran. Nilai ini dapat berupa referensi ke model berversi yang ada di ruang kerja atau spesifikasi model sebaris.

Untuk mereferensikan model yang ada, gunakan sintaks azureml:<model-name>:<model-version>.

Untuk menentukan model sebaris, ikuti Skema model.

Sebagai praktik terbaik untuk skenario produksi, Anda harus membuat model secara terpisah dan mereferensikannya di sini.

Bidang ini opsional untuk skenario penyebaran kontainer kustom.
model_mount_path string Jalur untuk memasang model dalam kontainer khusus. Hanya berlaku untuk skenario penyebaran kontainer kustom. Jika bidang model ditentukan, bidang ini dipasang di jalur ini dalam kontainer.
code_configuration object Konfigurasi untuk logika kode penilaian.

Bidang ini opsional untuk skenario penyebaran kontainer kustom.
code_configuration.code string Jalur lokal ke direktori kode sumber untuk menilai model.
code_configuration.scoring_script string Jalur relatif ke file penilaian di direktori kode sumber.
environment_variables object Kamus pasangan kunci-nilai variabel lingkungan yang akan diatur dalam kontainer penyebaran. Anda dapat mengakses variabel lingkungan ini dari skrip penilaian Anda.
environment string atau objek Harus diisi. Lingkungan yang digunakan untuk penyebaran. Nilai ini dapat berupa referensi ke lingkungan berversi yang ada di ruang kerja atau spesifikasi lingkungan sebaris.

Untuk mereferensikan lingkungan yang ada, gunakan sintaks azureml:<environment-name>:<environment-version>.

Untuk menentukan lingkungan inline, ikuti skema Lingkungan.

Sebagai praktik terbaik untuk skenario produksi, Anda harus membuat lingkungan secara terpisah dan mereferensikannya di sini.
instance_type string Harus diisi. Ukuran VM untuk digunakan untuk penyebaran. Untuk daftar ukuran yang didukung, lihat Daftar SKU titik akhir online terkelola.
instance_count Integer Harus diisi. Jumlah instans yang digunakan untuk penyebaran. Tentukan nilai berdasarkan beban kerja yang Anda harapkan. Untuk ketersediaan tinggi, Microsoft menyarankan Anda mengaturnya setidaknya ke 3.

instance_count dapat diperbarui setelah pembuatan penyebaran menggunakan perintah az ml online-deployment update.

Kami mencadangkan kuota tambahan sebesar 20% untuk melakukan peningkatan. Untuk informasi selengkapnya, lihat alokasi kuota komputer virtual untuk penyebaran.
app_insights_enabled Boolean Apakah akan mengaktifkan integrasi dengan instans Azure Application Insights yang terkait dengan ruang kerja Anda. false
scale_settings object Pengaturan skala untuk penyebaran. Saat ini hanya jenis skala yang default didukung, jadi Anda tidak perlu menentukan properti ini.

Dengan jenis skala default ini, Anda dapat meningkatkan dan menurunkan jumlah instans secara manual setelah pembuatan penyebaran dengan memperbarui properti instance_count atau membuat kebijakan penskalaan otomatis.
scale_settings.type string Jenis skala. default default
data_collector object Pengaturan pengumpulan data untuk penyebaran. Lihat DataCollector untuk kumpulan properti yang dapat dikonfigurasi.
request_settings object Pengaturan permintaan penilaian untuk penyebaran. Lihat RequestSettings untuk kumpulan properti yang dapat dikonfigurasi.
liveness_probe object Pengaturan Liveness probe untuk memantau kesehatan kontainer secara teratur. Lihat ProbeSettings untuk kumpulan properti yang dapat dikonfigurasi.
readiness_probe object Kesiapan probe pengaturan untuk memvalidasi jika kontainer siap untuk melayani lalu lintas. Lihat ProbeSettings untuk kumpulan properti yang dapat dikonfigurasi.
egress_public_network_access string Catatan: Kunci ini berlaku saat Anda menggunakan metode isolasi jaringan warisan untuk mengamankan komunikasi keluar untuk penyebaran. Kami sangat menyarankan Agar Anda mengamankan komunikasi keluar untuk penyebaran menggunakan VNet yang dikelola ruang kerja sebagai gantinya.

Bendera ini mengamankan penyebaran dengan membatasi komunikasi antara penyebaran dan sumber daya Azure yang digunakan penyebaran tersebut. Atur ke disabled untuk memastikan bahwa pengunduhan model, kode, serta gambar yang diperlukan oleh penyebaran Anda diamankan dengan titik akhir privat. Bendera ini hanya berlaku untuk titik akhir online terkelola.
enabled, disabled enabled

RequestSettings

Kunci Tipe Deskripsi Nilai default
request_timeout_ms Integer Jangka waktu penilaian dalam milidetik. Perhatikan bahwa nilai maksimum yang diizinkan adalah 180000 milidetik. Lihat batasan untuk titik akhir online untuk informasi selengkapnya. 5000
max_concurrent_requests_per_instance Integer Jumlah maksimum permintaan bersamaan per instans yang diizinkan untuk penyebaran.

Catatan: Jika Anda menggunakan Azure Pembelajaran Mesin Inference Server atau Azure Pembelajaran Mesin Inference Images, model Anda harus dikonfigurasi untuk menangani permintaan bersamaan. Untuk melakukannya, teruskan WORKER_COUNT: <int> sebagai variabel lingkungan. Untuk informasi selengkapnya tentang WORKER_COUNT, lihat Parameter Server Inferensi Azure Pembelajaran Mesin

Catatan: Atur ke jumlah permintaan yang dapat diproses model Anda secara bersamaan pada satu simpul. Menetapkan nilai ini lebih tinggi dari konkurensi aktual model Anda dapat menyebabkan latensi yang lebih tinggi. Mengatur nilai ini terlalu rendah dapat menyebabkan di bawah simpul yang digunakan. Pengaturan terlalu rendah mungkin juga mengakibatkan permintaan ditolak dengan kode status HTTP 429, karena sistem akan memilih untuk gagal dengan cepat. Untuk informasi selengkapnya, lihat Pemecahan masalah titik akhir online: Kode status HTTP.
1
max_queue_wait_ms Integer (Tidak digunakan lagi) Jumlah waktu maksimum dalam milidetik permintaan akan tetap dalam antrean. (Sekarang tingkatkan request_timeout_ms untuk memperhitungkan keterlambatan jaringan/antrean) 500

ProbeSettings

Kunci Tipe Deskripsi Nilai default
initial_delay Integer Jumlah detik setelah wadah dimulai sebelum pemeriksaan dimulai. Nilai minimum adalah 1. 10
period Integer Seberapa sering (dalam hitungan detik) untuk melakukan probe. 10
timeout Integer Jumlah detik setelah waktu probe habis. Nilai minimum adalah 1. 2
success_threshold Integer Keberhasilan minimum berturut-turut untuk penyelidikan dianggap berhasil setelah gagal. Nilai minimum adalah 1 untuk pemeriksaan kesiapan. Nilai untuk pemeriksaan keaktifan diperbaiki sebagai 1. 1
failure_threshold Integer Ketika probe gagal, sistem akan mencoba failure_threshold kali sebelum menyerah. Menyerah dalam kasus probe keaktifan berarti kontainer akan dihidupkan ulang. Dalam kasus probe kesiapan kontainer akan ditandai Belum siap. Nilai minimum adalah 1. 30

DataCollector

Kunci Tipe Deskripsi Nilai default
sampling_rate float Persentase, dinyatakan sebagai tingkat desimal, data yang akan dikumpulkan. Misalnya, nilai 1,0 mewakili pengumpulan 100% data. 1.0
rolling_rate string Tingkat untuk mempartisi data dalam penyimpanan. Nilainya bisa: Menit, Jam, Hari, Bulan, Tahun. Hour
collections object Set masing-masing collection_namedan pengaturan masing-masing untuk penyebaran ini.
collections.<collection_name> object Pengelompokan logis data inferensi produksi untuk dikumpulkan (misalnya: model_inputs). Ada dua nama yang dipesan: request dan response, yang masing-masing sesuai dengan permintaan HTTP dan pengumpulan data payload respons. Semua nama lain segan-segan dan dapat ditentukan oleh pengguna.

Catatan: Masing-masing collection_name harus sesuai dengan nama objek yang Collector digunakan dalam penyebaran score.py untuk mengumpulkan data inferensi produksi. Untuk informasi selengkapnya tentang pengumpulan data payload dan pengumpulan data dengan Python SDK yang disediakan, lihat Mengumpulkan data dari model dalam produksi.
collections.<collection_name>.enabled Boolean Apakah akan mengaktifkan pengumpulan collection_namedata untuk . 'False''
collections.<collection_name>.data.name string Nama aset data untuk mendaftar dengan data yang dikumpulkan. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path string Jalur datastore azure Pembelajaran Mesin lengkap tempat data yang dikumpulkan harus didaftarkan sebagai aset data. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version Integer Versi aset data yang akan didaftarkan dengan data yang dikumpulkan dalam penyimpanan Blob. 1

Keterangan

Perintah az ml online-deployment dapat digunakan untuk mengelola penyebaran online terkelola Pembelajaran Mesin Azure.

Contoh

Contoh tersedia di contoh repositori GitHub. Beberapa ditunjukkan di bawah ini.

YAML: dasar

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
  path: ../../model-2/model/
code_configuration:
  code: ../../model-2/onlinescoring/
  scoring_script: score.py
environment:
  conda_file: ../../model-2/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

YAML: identitas yang ditetapkan sistem

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment:
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"

YAML: identitas yang ditetapkan pengguna

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment: 
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"
  UAI_CLIENT_ID: "uai_client_id_place_holder"

YAML: data_collector

$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint 
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
       model_inputs:
           enabled: 'True' 
       model_outputs:
           enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
     request: 
         enabled: 'True'
         data: 
           name: my_request_data_asset 
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request 
           version: 1 
     response:
         enabled: 'True' 
         data: 
           name: my_response_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
           version: 1 
     model_inputs:
         enabled: 'True'
         data: 
           name: my_model_inputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
           version: 1 
     model_outputs:
         enabled: 'True'
         data: 
           name: my_model_outputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
           version: 1

Langkah berikutnya