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
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. |
||
type |
const | Jenis komponennya. | command |
command |
name |
string | Harus 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 Pembelajaran Mesin 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 |
object | 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 | Harus diisi. Perintah untuk menjalankan. | ||
code |
string | Jalur lokal ke direktori kode sumber yang akan diunggah dan digunakan untuk komponen. | ||
environment |
string atau objek | Harus diisi. Lingkungan yang akan digunakan untuk komponen. Nilai ini dapat berupa referensi ke lingkungan berversi yang ada di ruang kerja atau spesifikasi lingkungan sebaris. Untuk mereferensikan lingkungan kustom yang ada, gunakan sintaks. azureml:<environment-name>:<environment-version> Untuk mereferensikan lingkungan yang dikumpulkan, gunakan azureml://registries/azureml/environment/<curated-environment-name>/versions/<version-number> sintaks. Untuk informasi selengkapnya tentang cara mereferensikan lingkungan lihat Cara Mengelola Lingkungan Untuk menentukan lingkungan inline, ikuti skema Lingkungan. Kecualikan name properti dan version karena tidak didukung untuk lingkungan sebaris. |
||
distribution |
object | Konfigurasi distribusi untuk skenario pelatihan terdistribusi. Salah satu dari MpiConfiguration, PyTorchConfiguration, atau TensorFlowConfiguration. | ||
resources.instance_count |
Integer | Jumlah node yang digunakan untuk pekerjaan. | 1 |
|
inputs |
object | 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> |
object | Definisi input komponen. Lihat Input komponen untuk kumpulan properti yang dapat dikonfigurasi. | ||
outputs |
object | 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> |
object | Definisi output komponen. Lihat Output komponen untuk kumpulan properti yang dapat dikonfigurasi. |
Konfigurasi distribusi
MpiConfiguration
Tombol | Tipe | Deskripsi | Nilai yang diizinkan |
---|---|---|---|
type |
const | Harus diisi. Jenis distribusi. | mpi |
process_count_per_instance |
Integer | Harus diisi. Jumlah proses per node yang diluncurkan untuk pekerjaan. |
PyTorchConfiguration
Tombol | Tipe | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
const | Harus diisi. Jenis distribusi. | pytorch |
|
process_count_per_instance |
Integer | Jumlah proses per node yang diluncurkan untuk pekerjaan. | 1 |
TensorFlowConfiguration
Tombol | Tipe | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
const | Harus diisi. Jenis distribusi. | tensorflow |
|
worker_count |
Integer | Jumlah pekerja yang akan diluncurkan untuk pekerjaan. | Default ke resources.instance_count . |
|
parameter_server_count |
Integer | Jumlah server paramater yang diluncurkan untuk pekerjaan. | 0 |
Input komponen
Tombol | Tipe | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
string | Harus diisi. Jenis input komponen. Pelajari selengkapnya tentang akses data | number , , boolean integer , 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
Tombol | Tipe | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
string | Harus 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: Halo komponen perintah 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
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.5/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 pada 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 yang sesuai saat Anda menentukan komponen.
Tombol | Kesalahan | Rekomendasi |
---|---|---|
command | 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 input atau output yang diduplikasi. |
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. |