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 , , info debug |
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-deployment
Perintah 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