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 componentPerintah 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, userlogname, home, pwd, shell.
2. Pastikan nama input dan output tidak diduplikasi.

Langkah berikutnya