Bagikan melalui


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, , booleaninteger, 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_foldermltable,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: 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, lognamehome, pwd, . shell
2. Pastikan nama input dan output tidak diduplikasi.

Langkah berikutnya