Skema YAML penyebaran batch CLI (v2)

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

Skema JSON sumber dapat ditemukan di https://azuremlschemas.azureedge.net/latest/batchDeployment.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

Tombol 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.
description string Deskripsi penyebaran.
tags object Kamus tag untuk penyebaran.
endpoint_name string Harus diisi. Nama titik akhir untuk membuat penyebaran di bawah ini.
type string Harus diisi. Jenis penyebaran mandi. Gunakan model untuk penyebaran model dan pipeline untuk penyebaran komponen alur.

Baru dalam versi 1.7.
model, pipeline model
settings object Konfigurasi penyebaran. Lihat referensi YAML tertentu untuk komponen model dan alur untuk nilai yang diizinkan.

Baru dalam versi 1.7.

Tip

type Kunci telah diperkenalkan dalam ekstensi CLI versi 1.7 ke atas. Untuk sepenuhnya mendukung kompatibilitas mundur, properti ini default ke model. Namun, jika tidak ditunjukkan secara eksplisit, kunci settings tidak diberlakukan dan semua properti untuk pengaturan penyebaran model harus ditunjukkan ke akar spesifikasi YAML.

Sintaks YAML untuk penyebaran model

Ketika type: model, sintaks berikut diberlakukan:

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
model string atau objek Harus diisi. 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>:<version>.

Untuk menentukan model sebaris, ikuti Skema model.

Sebagai praktik terbaik untuk skenario produksi, Anda harus membuat model secara terpisah dan mereferensikannya di sini.
code_configuration object Konfigurasi untuk logika kode penilaian.

Properti ini tidak diperlukan jika model Anda dalam format MLflow.
code_configuration.code string Direktori lokal yang berisi semua kode sumber Python untuk menilai model.
code_configuration.scoring_script string File Python di direktori di atas. Berkas ini harus memiliki fungsi init() dan fungsi run(). Gunakan fungsi init() untuk persiapan yang mahal atau umum (misalnya, memuat model dalam memori). init() hanya dipanggil sekali pada awal proses. Gunakan run(mini_batch) untuk menilai setiap entri; nilai mini_batch adalah daftar jalur file. Fungsi run() harus menampilkan pandas DataFrame atau array. Setiap elemen yang ditampilkan menunjukkan satu elemen input yang berhasil dijalankan di mini_batch. Untuk informasi lebih lanjut mengenai cara menulis skrip penilaian, lihat Memahami skrip penilaian.
environment string atau objek Lingkungan yang digunakan untuk penyebaran. Nilai ini dapat berupa referensi ke lingkungan berversi yang ada di ruang kerja atau spesifikasi lingkungan sebaris.

Properti ini tidak diperlukan jika model Anda dalam format MLflow.

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.
compute string Harus diisi. Nama target komputasi untuk menjalankan pekerjaan penilaian batch. Nilai ini harus menjadi referensi untuk komputasi yang ada di ruang kerja menggunakan sintaksis azureml:<compute-name>.
resources.instance_count Integer Jumlah node yang digunakan untuk setiap pekerjaan penilaian batch. 1
settings object Konfigurasi spesifik penyebaran model.

Diubah dalam versi 1.7.
settings.max_concurrency_per_instance Integer Jumlah maksimum paralel scoring_script eksekusi per instans. 1
settings.error_threshold Integer Jumlah kegagalan file yang harus diabaikan. Jika jumlah kesalahan untuk seluruh input berada di atas nilai ini, pekerjaan penilaian batch akan dihentikan. error_threshold adalah untuk seluruh input dan bukan untuk batch mini individu. Jika dihilangkan, sejumlah kegagalan file diizinkan tanpa mengakhiri pekerjaan. -1
settings.logging_level string Tingkat verbositas log. warning, , infodebug info
settings.mini_batch_size Integer Jumlah file yang dapat diproses code_configuration.scoring_script dalam satu panggilan run(). 10
settings.retry_settings object Coba lagi pengaturan untuk menilai setiap batch mini.
settings.retry_settings.max_retries Integer Jumlah maksimum coba lagi untuk batch mini yang gagal atau kehabisan waktu. 3
settings.retry_settings.timeout Integer Batas waktu dalam detik untuk menilai satu batch mini. Gunakan nilai yang lebih besar ketika ukuran mini-batch lebih besar atau model lebih mahal untuk dijalankan. 30
settings.output_action string Menunjukkan cara output harus diatur dalam file output. Gunakan summary_only jika Anda menghasilkan file output seperti yang ditunjukkan pada Kustomisasi output dalam penyebaran model. Gunakan append_row jika Anda mengembalikan prediksi sebagai bagian run() dari pernyataan fungsi return . append_row, summary_only append_row
settings.output_file_name string Nama file output penilaian batch. predictions.csv
settings.environment_variables object Kamus pasangan kunci-nilai variabel lingkungan yang akan diatur untuk setiap pekerjaan penilaian batch.

Sintaks YAML untuk penyebaran komponen alur

Ketika type: pipeline, sintaks berikut diberlakukan:

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
component string atau objek Harus diisi. Komponen alur yang digunakan untuk penyebaran. Nilai ini dapat menjadi referensi ke komponen alur versi yang ada di ruang kerja atau di registri, atau spesifikasi alur sebaris.

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

Untuk menentukan komponen alur sebaris, ikuti skema komponen Alur.

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

Baru dalam versi 1.7.
settings object Pengaturan default untuk pekerjaan alur. Lihat Atribut kunci pengaturan untuk kumpulan properti yang dapat dikonfigurasi.

Baru dalam versi 1.7.

Keterangan

az ml batch-deploymentPerintah dapat digunakan untuk mengelola penyebaran batch Azure Machine Learning.

Contoh

Contoh tersedia di contoh repositori GitHub. Beberapa di antaranya direferensikan di bawah ini:

YAML: Penyebaran model MLflow

Penyebaran model yang berisi model MLflow, yang tidak perlu menunjukkan code_configuration atau environment:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-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
  error_threshold: -1
  logging_level: info

YAML: Penyebaran model kustom dengan skrip penilaian

Penyebaran model yang menunjukkan skrip penilaian untuk digunakan dan lingkungan:

$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
name: mnist-torch-dpl
description: A deployment using Torch to solve the MNIST classification dataset.
endpoint_name: mnist-batch
type: model
model:
  name: mnist-classifier-torch
  path: model
code_configuration:
  code: code
  scoring_script: batch_driver.py
environment:
  name: batch-torch-py38
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
  conda_file: environment/conda.yaml
compute: azureml:batch-cluster
resources:
  instance_count: 1
settings:
  max_concurrency_per_instance: 2
  mini_batch_size: 10
  output_action: append_row
  output_file_name: predictions.csv
  retry_settings:
    max_retries: 3
    timeout: 30
  error_threshold: -1
  logging_level: info

YAML: Penyebaran model warisan

Jika atribut type tidak ditunjukkan dalam YAML, maka penyebaran model disimpulkan. Namun, kunci settings tidak akan tersedia dan properti harus ditempatkan di akar YAML seperti yang ditunjukkan dalam contoh ini. Sangat disarankan untuk selalu menentukan properti type.

$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
  instance_count: 2
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
error_threshold: -1
logging_level: info

YAML: Penyebaran komponen alur

Penyebaran komponen alur sederhana:

$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
name: hello-batch-dpl
endpoint_name: hello-pipeline-batch
type: pipeline
component: azureml:hello_batch@latest
settings:
    default_compute: batch-cluster

Langkah berikutnya