Skema YAML komponen perintah CLI (v2)
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)
Skema JSON sumber dapat ditemukan di https://azuremlschemas.azureedge.net/latest/commandComponent.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 | Jenis | 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. |
||
type |
const | Jenis komponennya. | command |
command |
name |
string | Wajib diisi. Nama komponen. Harus dimulai dengan huruf kecil. Karakter yang diperbolehkan adalah huruf kecil, angka, dan garis bawah(_). Panjang maksimum adalah 255 karakter. | ||
version |
string | Versi komponen. Jika dihilangkan, Azure Machine Learning akan membuat versi secara otomatis. | ||
display_name |
string | Tampilkan nama komponen di UI studio. Dapat berupa tidak unik di dalam ruang kerja. | ||
description |
string | Deskripsi komponen. | ||
tags |
objek | Kamus tag untuk komponen. | ||
is_deterministic |
boolean | Opsi ini menentukan apakah komponen akan menghasilkan output yang sama untuk data input yang sama. Anda biasanya harus mengatur ini ke false untuk komponen yang memuat data dari sumber eksternal, seperti mengimpor data dari URL. Ini karena data di URL mungkin berubah dari waktu ke waktu. |
true |
|
command |
string | Wajib diisi. Perintah untuk menjalankan. | ||
code |
string | Jalur lokal ke direktori kode sumber yang akan diunggah dan digunakan untuk komponen. | ||
environment |
string atau objek | Wajib diisi. Lingkungan yang akan digunakan untuk komponen. Nilai ini dapat berupa referensi ke lingkungan versi yang ada di ruang kerja atau spesifikasi lingkungan inline. Untuk mereferensikan lingkungan yang sudah ada, gunakan sintaksis azureml:<environment-name>:<environment-version> . Untuk menentukan lingkungan sebaris, ikuti skema Lingkungan. Kecualikan name properti dan version karena tidak didukung untuk lingkungan sebaris. |
||
distribution |
objek | Konfigurasi distribusi untuk skenario pelatihan terdistribusi. Salah satu dari MpiConfiguration, PyTorchConfiguration, atau TensorFlowConfiguration. | ||
resources.instance_count |
bilangan bulat | Jumlah node yang akan digunakan untuk pekerjaan. | 1 |
|
inputs |
objek | Kamus input komponen. Kunci adalah nama untuk input dalam konteks komponen dan nilainya adalah definisi input komponen. Input dapat direferensikan dalam command menggunakan ekspresi ${{ inputs.<input_name> }} . |
||
inputs.<input_name> |
objek | Definisi input komponen. Lihat Input komponen untuk kumpulan properti yang dapat dikonfigurasi. | ||
outputs |
objek | Kamus output komponen. Kunci adalah nama untuk output dalam konteks komponen dan nilainya adalah definisi output komponen. Output dapat direferensikan dalam command menggunakan ekspresi ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
objek | Definisi output komponen. Lihat Output komponen untuk kumpulan properti yang dapat dikonfigurasi. |
Konfigurasi distribusi
MpiConfiguration
Kunci | Jenis | Deskripsi | Nilai yang diizinkan |
---|---|---|---|
type |
const | Wajib diisi. Jenis distribusi. | mpi |
process_count_per_instance |
bilangan bulat | Wajib diisi. Jumlah proses per node yang diluncurkan untuk pekerjaan. |
PyTorchConfiguration
Kunci | Jenis | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
const | Wajib diisi. Jenis distribusi. | pytorch |
|
process_count_per_instance |
bilangan bulat | Jumlah proses per node yang diluncurkan untuk pekerjaan. | 1 |
TensorFlowConfiguration
Kunci | Jenis | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
const | Wajib diisi. Jenis distribusi. | tensorflow |
|
worker_count |
bilangan bulat | Jumlah pekerja yang akan diluncurkan untuk pekerjaan. | Default ke resources.instance_count . |
|
parameter_server_count |
bilangan bulat | Jumlah server parameter yang akan diluncurkan untuk pekerjaan. | 0 |
Input komponen
Kunci | Jenis | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
string | Wajib diisi. Jenis input komponen. Pelajari selengkapnya tentang akses data | number , integer , boolean , string , uri_file , uri_folder , mltable , mlflow_model |
|
description |
string | Deskripsi input. | ||
default |
angka, bilangan bulat, boolean, atau string | Nilai default untuk input. | ||
optional |
boolean | Apakah input diperlukan. Jika diatur ke true , Anda perlu menggunakan perintah menyertakan input opsional dengan $[[]] |
false |
|
min |
bilangan bulat atau angka | Nilai minimum yang diterima untuk input. Bidang ini hanya dapat ditentukan jika bidang type adalah number atau integer . |
||
max |
bilangan bulat atau angka | Nilai maksimum yang diterima untuk input. Bidang ini hanya dapat ditentukan jika bidang type adalah number atau integer . |
||
enum |
array | Daftar nilai yang diizinkan untuk input. Hanya berlaku jika type bidang adalah string . |
Output komponen
Kunci | Jenis | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
string | Wajib diisi. Jenis output komponen. | uri_file , uri_folder , mltable , mlflow_model |
|
description |
string | Deskripsi output. |
Keterangan
az ml component
Perintah dapat digunakan untuk mengelola komponen Azure Machine Learning.
Contoh
Contoh komponen perintah tersedia di contoh repositori GitHub. Pilih contoh untuk ditunjukkan di bawah ini.
Contoh tersedia di contoh repositori GitHub. Beberapa ditunjukkan di bawah ini.
YAML: Komponen perintah Halo dunia
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command
name: hello_python_world
display_name: Hello_Python_World
version: 1
code: ./src
environment:
image: python
command: >-
python hello.py
YAML: Komponen dengan jenis input yang berbeda
$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_data_component_cli
display_name: train_data
description: A example train component
tags:
author: azureml-sdk-team
version: 9
type: command
inputs:
training_data:
type: uri_folder
max_epocs:
type: integer
optional: true
learning_rate:
type: number
default: 0.01
optional: true
learning_rate_schedule:
type: string
default: time-based
optional: true
outputs:
model_output:
type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
command: >-
python train.py
--training_data ${{inputs.training_data}}
$[[--max_epocs ${{inputs.max_epocs}}]]
$[[--learning_rate ${{inputs.learning_rate}}]]
$[[--learning_rate_schedule ${{inputs.learning_rate_schedule}}]]
--model_output ${{outputs.model_output}}
Menentukan input opsional dalam baris perintah
Ketika input diatur sebagai optional = true
, Anda perlu menggunakan $[[]]
untuk merangkul baris perintah dengan input. Contoh: $[[--input1 ${{inputs.input1}}]
. Baris perintah pada runtime mungkin memiliki input yang berbeda.
- Jika Anda hanya menggunakan tentukan parameter dan
model_output
yang diperlukantraining_data
, baris perintah akan terlihat seperti:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
Jika tidak ada nilai yang ditentukan saat runtime, learning_rate
dan learning_rate_schedule
akan menggunakan nilai default.
- Jika semua input/output memberikan nilai selama runtime, baris perintah akan terlihat seperti:
python train.py --training_data some_input_path --max_epocs 10 --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path
Kesalahan dan rekomendasi umum
Berikut ini adalah beberapa kesalahan umum dan saran yang direkomendasikan terkait saat Anda menentukan komponen.
Kunci | Kesalahan | Rekomendasi |
---|---|---|
perintah | 1. Hanya input opsional yang dapat masuk $[[]] 2. Menggunakan \ untuk membuat baris baru tidak didukung dalam perintah.3. Input atau output tidak ditemukan. |
1. Periksa apakah semua input atau output yang digunakan dalam perintah sudah ditentukan di inputs bagian dan outputs , dan gunakan format yang benar untuk input $[[]] opsional atau yang ${{}} diperlukan.2. Jangan gunakan \ untuk membuat baris baru. |
lingkungan | 1. Tidak ada definisi untuk versi {envVersion} lingkungan {envName} . 2. Tidak ada lingkungan untuk nama {envName} , versi {envVersion} .3. Tidak dapat menemukan aset dengan ID {envAssetId} . |
1. Pastikan nama dan versi lingkungan yang Anda lihat dalam definisi komponen ada. 2. Anda perlu menentukan versi jika Anda merujuk ke lingkungan terdaftar. |
input/output | 1. Nama input/output berkonflik dengan parameter yang dicadangkan sistem. 2. Nama duplikat input atau output. |
1. Jangan gunakan salah satu parameter yang dipesan ini sebagai nama input/output Anda: path , , ld_library_path , user logname , home , pwd , shell .2. Pastikan nama input dan output tidak diduplikasi. |