Skema YAML tugas pembersihan CLI (v2)

BERLAKU UNTUK:ekstensi ml Azure CLI v2 (saat ini)

Skema JSON sumber dapat ditemukan di https://azuremlschemas.azureedge.net/latest/sweepJob.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 Azure Pembelajaran Mesin VS Code untuk menulis file YAML, Anda dapat memanggil skema dan penyelesaian sumber daya jika Anda menyertakan $schema di bagian atas file Anda.
type const Harus diisi. Jenis pekerjaan. sweep sweep
name string Nama pekerjaan. Harus unik di semua pekerjaan di ruang kerja. Jika dihilangkan, Azure Pembelajaran Mesin membuat GUID secara otomatis untuk nama tersebut.
display_name string Nama tampilan pekerjaan di antarmuka pengguna studio. Dapat berupa tidak unik di dalam ruang kerja. Jika dihilangkan, Azure Pembelajaran Mesin membuat pengidentifikasi kata benda kata sifat yang dapat dibaca manusia untuk nama tampilan.
experiment_name string Atur pekerjaan dengan nama eksperimen. Catatan eksekusi setiap pekerjaan diatur di bawah eksperimen yang sesuai di tab "Eksperimen" studio. Jika dihilangkan, Azure Pembelajaran Mesin default experiment_name ke nama direktori kerja tempat pekerjaan dibuat.
description string Deskripsi pekerjaan.
tags object Kamus tag untuk pekerjaan.
sampling_algorithm object Harus diisi. Algoritma pengambilan sampel hiperparameter untuk digunakan di atas search_space. Salah satu dari RandomSamplingAlgorithm, GridSamplingAlgorithm, atau BayesianSamplingAlgorithm.
search_space object Harus diisi. Kamus ruang pencarian hiperparameter. Nama hyperparameter adalah kuncinya, dan nilainya adalah ekspresi parameter.

Hyperparameter dapat direferensikan dalam trial.command dengan ${{ search_space.<hyperparameter> }} ekspresi.
search_space.<hyperparameter> object Kunjungi Ekspresi parameter untuk kumpulan kemungkinan ekspresi yang akan digunakan.
objective.primary_metric string Harus diisi. Nama metrik utama yang dilaporkan oleh setiap pekerjaan percobaan. Metrik harus dicatat dalam skrip pelatihan pengguna, menggunakan mlflow.log_metric() dengan nama metrik yang sesuai yang sama.
objective.goal string Harus diisi. Tujuan optimasi dari objective.primary_metric. maximize, minimize
early_termination object Kebijakan penghentian awal yang digunakan. Pekerjaan percobaan dibatalkan ketika kriteria kebijakan yang ditentukan terpenuhi. Jika dihilangkan, tidak ada kebijakan penghentian dini yang diterapkan. Salah satu dari BanditPolicy, MedianStoppingPolicy, atau TruncationSelectionPolicy.
limits object Batas untuk pekerjaan pembersihan. Lihat Atribut limits kunci.
compute string Harus diisi. Nama target komputasi untuk menjalankan pekerjaan, dengan sintaks.azureml:<compute_name>
trial object Harus diisi. Templat pekerjaan untuk setiap percobaan. Setiap pekerjaan uji coba disediakan dengan kombinasi nilai hiperparameter yang berbeda yang diambil sampel sistem dari search_space. Kunjungi Atribut trial kunci.
inputs object Kamus input ke pekerjaan. Kunci adalah nama untuk input dalam konteks pekerjaan dan nilai adalah nilai input.

Input dapat direferensikan dalam command menggunakan ekspresi ${{ inputs.<input_name> }}.
inputs.<input_name> angka, bilangan bulat, boolean, string, atau objek Salah satu nilai harfiah (dari nomor jenis, bilangan bulat, boolean, atau string) atau objek yang berisi spesifikasi data input pekerjaan.
outputs object Kamus konfigurasi output dari pekerjaan. Kunci adalah nama untuk output dalam konteks pekerjaan dan nilai adalah konfigurasi output.

Output dapat direferensikan dalam command menggunakan ekspresi ${{ outputs.<output_name> }}.
outputs.<output_name> object Anda dapat membiarkan objek kosong, dan dalam hal ini, secara default output berjenis uri_folder dan Azure Pembelajaran Mesin sistem menghasilkan lokasi output untuk output. Semua file ke direktori output ditulis melalui pemasangan baca-tulis. Untuk menentukan mode yang berbeda untuk output, berikan objek yang berisi spesifikasi output pekerjaan.
identity object Identitas digunakan untuk mengakses data. Ini dapat berupa Konfigurasi Identitas Pengguna, Konfigurasi Identitas Terkelola, atau Tidak Ada. Untuk UserIdentityConfiguration, identitas pengirim pekerjaan digunakan untuk mengakses data input dan menulis hasil ke folder output. Jika tidak, identitas terkelola dari target komputasi digunakan.

Algoritma pengambilan sampel

RandomSamplingAlgorithm

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
type const Harus diisi. Jenis algoritma pengambilan sampel. random
seed Integer Seed acak yang digunakan untuk menginisialisasi pembuatan angka acak. Jika dihilangkan, nilai seed default adalah null.
rule string Jenis pengambilan sampel acak yang digunakan. Defaultnya, random, menggunakan pengambilan sampel acak seragam sederhana, sambil sobol menggunakan urutan kuasi-acak Sobol. random, sobol random

GridSamplingAlgorithm

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis algoritma pengambilan sampel. grid

BayesianSamplingAlgorithm

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis algoritma pengambilan sampel. bayesian

Kebijakan penghentian dini

BanditPolicy

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
type const Harus diisi. Jenis kebijakan. bandit
slack_factor number Rasio yang digunakan untuk menghitung jarak yang diizinkan dari percobaan berkinerja terbaik. Salah satu dari slack_factor atau slack_amount diperlukan.
slack_amount number Jarak absolut yang diizinkan dari percobaan berkinerja terbaik. Salah satu dari slack_factor atau slack_amount diperlukan.
evaluation_interval Integer Frekuensi untuk menerapkan kebijakan. 1
delay_evaluation Integer Jumlah interval untuk menunda evaluasi kebijakan pertama. Jika ditentukan, kebijakan berlaku pada setiap kelipatan evaluation_interval yang lebih besar dari atau sama dengan delay_evaluation. 0

MedianStoppingPolicy

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
type const Harus diisi. Jenis kebijakan. median_stopping
evaluation_interval Integer Frekuensi untuk menerapkan kebijakan. 1
delay_evaluation Integer Jumlah interval untuk menunda evaluasi kebijakan pertama. Jika ditentukan, kebijakan berlaku pada setiap kelipatan evaluation_interval yang lebih besar dari atau sama dengan delay_evaluation. 0

TruncationSelectionPolicy

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
type const Harus diisi. Jenis kebijakan. truncation_selection
truncation_percentage Integer Harus diisi. Persentase pekerjaan percobaan yang dibatalkan pada setiap interval evaluasi.
evaluation_interval Integer Frekuensi untuk menerapkan kebijakan. 1
delay_evaluation Integer Jumlah interval untuk menunda evaluasi kebijakan pertama. Jika ditentukan, kebijakan berlaku pada setiap kelipatan evaluation_interval yang lebih besar dari atau sama dengan delay_evaluation. 0

Ekspresi parameter

Pilihan

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis ekspresi. choice
values array Harus diisi. Daftar nilai diskrit yang akan dipilih.

Randint

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis ekspresi. randint
upper Integer Harus diisi. Batas atas eksklusif untuk rentang bilangan bulat.

Qlognormal, qnormal

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis ekspresi. qlognormal, qnormal
mu number Harus diisi. Rata-rata distribusi normal.
sigma number Harus diisi. Simpangan baku distribusi normal.
q Integer Harus diisi. Faktor penghalusan.

Qloguniform, quniform

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis ekspresi. qloguniform, quniform
min_value number Harus diisi. Nilai minimum dalam rentang (inklusif).
max_value number Harus diisi. Nilai maksimum dalam rentang (inklusif).
q Integer Harus diisi. Faktor penghalusan.

Lognormal, normal

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis ekspresi. lognormal, normal
mu number Harus diisi. Rata-rata distribusi normal.
sigma number Harus diisi. Simpangan baku distribusi normal.

Loguniform

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis ekspresi. loguniform
min_value number Harus diisi. Nilai minimum dalam rentang adalah exp(min_value) (inklusif).
max_value number Harus diisi. Nilai maksimum dalam rentang adalah exp(max_value) (inklusif).

Seragam

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis ekspresi. uniform
min_value number Harus diisi. Nilai minimum dalam rentang (inklusif).
max_value number Harus diisi. Nilai maksimum dalam rentang (inklusif).

Atribut kunci limits

Tombol Tipe Deskripsi Nilai default
max_total_trials Integer Jumlah maksimum pekerjaan percobaan. 1000
max_concurrent_trials Integer Jumlah maksimum pekerjaan uji coba yang dapat berjalan secara bersamaan. Default ke max_total_trials.
timeout Integer Waktu maksimum dalam detik, bahwa seluruh pekerjaan pembersihan diizinkan untuk dijalankan. Setelah batas ini tercapai, sistem membatalkan pekerjaan pembersihan, termasuk semua uji cobanya. 5184000
trial_timeout Integer Waktu maksimum dalam detik yang pekerjaan percobaan izinkan untuk dijalankan. Setelah batas ini tercapai, sistem membatalkan uji coba.

Atribut kunci trial

Tombol Tipe Deskripsi Nilai default
command string Harus diisi. Perintah untuk menjalankan.
code string Jalur lokal ke direktori kode sumber untuk diunggah dan digunakan untuk pekerjaan itu.
environment string atau objek Harus diisi. Lingkungan yang digunakan untuk pekerjaan. Nilai ini dapat berupa referensi ke lingkungan berversi yang ada di ruang kerja atau spesifikasi lingkungan sebaris.

Untuk mereferensikan lingkungan yang ada, gunakan sintaks azureml:<environment-name>:<environment-version>.

Untuk menentukan lingkungan inline, ikuti skema Lingkungan. Kecualikan name properti dan version karena lingkungan sebaris tidak mendukungnya.
environment_variables object Kamus pasangan nilai nama variabel lingkungan untuk mengatur proses tempat perintah dijalankan.
distribution object Konfigurasi distribusi untuk skenario pelatihan terdistribusi. Salah satu Konfigurasi Mpi, Konfigurasi PyTorch, atau Konfigurasi TensorFlow.
resources.instance_count Integer Jumlah node yang digunakan untuk pekerjaan. 1

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 pekerjaan

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
type string Jenis input pekerjaan. Tentukan uri_file untuk data yang mengarah ke satu sumber file, atau uri_folder untuk data yang mengarah ke sumber folder. Untuk informasi selengkapnya, kunjungi Pelajari selengkapnya tentang akses data. uri_file, , uri_foldermltable,mlflow_model uri_folder
path string Jalur ke data yang akan digunakan sebagai input. Nilai ini dapat ditentukan dalam beberapa cara:

- Jalur lokal ke file atau folder sumber data, misalnya path: ./iris.csv. Data diunggah selama pengiriman pekerjaan.

- URI jalur cloud ke file atau folder untuk digunakan sebagai input. Jenis URI yang didukung adalah azureml, https, wasbs, abfss, adl. Untuk informasi selengkapnya tentang penggunaan azureml:// format URI, kunjungi Sintaks yaml Core.

- Aset data Azure Pembelajaran Mesin terdaftar yang ada untuk digunakan sebagai input. Untuk mereferensikan aset data terdaftar, gunakan azureml:<data_name>:<data_version> sintaks atau azureml:<data_name>@latest (untuk mereferensikan versi terbaru aset data tersebut) - misalnya, path: azureml:cifar10-data:1 atau path: azureml:cifar10-data@latest.
mode string Mode bagaimana data harus dikirimkan ke target komputasi.

Untuk pemasangan baca-saja (ro_mount), data digunakan sebagai jalur pemasangan. Folder dipasang sebagai folder dan file dipasang sebagai file. Azure Pembelajaran Mesin menyelesaikan input ke jalur pemasangan.

Untuk download mode, data diunduh ke target komputasi. Azure Pembelajaran Mesin menyelesaikan input ke jalur yang diunduh.

Hanya untuk URL lokasi penyimpanan artefak atau artefak data, alih-alih memasang atau mengunduh data itu sendiri, gunakan direct mode . Ini melewati URL lokasi penyimpanan sebagai input pekerjaan. Dalam hal ini, Anda bertanggung jawab penuh untuk menangani informasi masuk untuk mengakses penyimpanan.
ro_mount, , downloaddirect ro_mount

Output pekerjaan

Tombol Tipe Deskripsi Nilai yang diizinkan Nilai default
type string Jenis output pekerjaan. Untuk jenis default uri_folder , output sesuai dengan folder. uri_file, , uri_foldermltable,mlflow_model uri_folder
mode string Mode pengiriman file atau file output ke penyimpanan tujuan. Untuk mode pemasangan baca-tulis (rw_mount), direktori output adalah direktori yang dipasang. Untuk mode pengunggahan, semua file yang ditulis diunggah di akhir pekerjaan. rw_mount, upload rw_mount

Konfigurasi identitas

UserIdentityConfiguration

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis identitas. user_identity

ManagedIdentityConfiguration

Tombol Tipe Deskripsi Nilai yang diizinkan
type const Harus diisi. Jenis identitas. managed atau managed_identity

Keterangan

Anda dapat menggunakan az ml job perintah untuk mengelola pekerjaan Azure Pembelajaran Mesin.

Contoh

Kunjungi contoh repositori GitHub misalnya. Beberapa ditunjukkan di sini:

YAML: hello sweep

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  command: >-
    python hello-sweep.py
    --A ${{inputs.A}}
    --B ${{search_space.B}}
    --C ${{search_space.C}}
  code: src
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  A: 0.5
sampling_algorithm: random
search_space:
  B:
    type: choice
    values: ["hello", "world", "hello_world"]
  C:
    type: uniform
    min_value: 0.1
    max_value: 1.0
objective:
  goal: minimize
  primary_metric: random_metric
limits:
  max_total_trials: 4
  max_concurrent_trials: 2
  timeout: 3600
display_name: hello-sweep-example
experiment_name: hello-sweep-example
description: Hello sweep job example.

YAML: penyetelan hiperparameter model Python dasar

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py 
    --iris-csv ${{inputs.iris_csv}}
    --C ${{search_space.C}}
    --kernel ${{search_space.kernel}}
    --coef0 ${{search_space.coef0}}
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  C:
    type: uniform
    min_value: 0.5
    max_value: 0.9
  kernel:
    type: choice
    values: ["rbf", "linear", "poly"]
  coef0:
    type: uniform
    min_value: 0.1
    max_value: 1
objective:
  goal: minimize
  primary_metric: training_f1_score
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: sklearn-iris-sweep-example
experiment_name: sklearn-iris-sweep-example
description: Sweep hyperparemeters for training a scikit-learn SVM on the Iris dataset.

Langkah berikutnya