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 |
benang |
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 |
benang |
Nama pekerjaan. Harus unik di semua pekerjaan di ruang kerja. Jika dihilangkan, Azure Pembelajaran Mesin membuat GUID secara otomatis untuk nama tersebut. |
|
|
display_name |
benang |
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 |
benang |
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 |
benang |
Deskripsi pekerjaan. |
|
|
tags |
obyek |
Kamus tag untuk pekerjaan. |
|
|
sampling_algorithm |
obyek |
Harus diisi. Algoritma pengambilan sampel hiperparameter untuk digunakan di atas search_space. Salah satu dari RandomSamplingAlgorithm, GridSamplingAlgorithm, atau BayesianSamplingAlgorithm. |
|
|
search_space |
obyek |
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> |
obyek |
Kunjungi Ekspresi parameter untuk kumpulan kemungkinan ekspresi yang akan digunakan. |
|
|
objective.primary_metric |
benang |
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 |
benang |
Harus diisi. Tujuan optimasi dari objective.primary_metric. |
maximize, minimize |
|
early_termination |
obyek |
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 |
obyek |
Batas untuk pekerjaan pembersihan. Lihat Atribut limits kunci. |
|
|
compute |
benang |
Harus diisi. Nama target komputasi untuk menjalankan pekerjaan, dengan sintaks.azureml:<compute_name> |
|
|
trial |
obyek |
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 |
obyek |
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 |
obyek |
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> |
obyek |
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 |
obyek |
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 |
benang |
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 |
nomor/angka |
Rasio yang digunakan untuk menghitung jarak yang diizinkan dari percobaan berkinerja terbaik.
Salah satu dari slack_factor atau slack_amount diperlukan. |
|
|
slack_amount |
nomor/angka |
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 |
| 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 |
rangkaian |
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 |
nomor/angka |
Harus diisi. Rata-rata distribusi normal. |
|
sigma |
nomor/angka |
Harus diisi. Simpangan baku distribusi normal. |
|
q |
Integer |
Harus diisi. Faktor penghalusan. |
|
| Tombol |
Tipe |
Deskripsi |
Nilai yang diizinkan |
type |
const |
Harus diisi. Jenis ekspresi. |
qloguniform, quniform |
min_value |
nomor/angka |
Harus diisi. Nilai minimum dalam rentang (inklusif). |
|
max_value |
nomor/angka |
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 |
nomor/angka |
Harus diisi. Rata-rata distribusi normal. |
|
sigma |
nomor/angka |
Harus diisi. Simpangan baku distribusi normal. |
|
| Tombol |
Tipe |
Deskripsi |
Nilai yang diizinkan |
type |
const |
Harus diisi. Jenis ekspresi. |
loguniform |
min_value |
nomor/angka |
Harus diisi. Nilai minimum dalam rentang adalah exp(min_value) (inklusif). |
|
max_value |
nomor/angka |
Harus diisi. Nilai maksimum dalam rentang adalah exp(max_value) (inklusif). |
|
| Tombol |
Tipe |
Deskripsi |
Nilai yang diizinkan |
type |
const |
Harus diisi. Jenis ekspresi. |
uniform |
min_value |
nomor/angka |
Harus diisi. Nilai minimum dalam rentang (inklusif). |
|
max_value |
nomor/angka |
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 |
benang |
Harus diisi. Perintah untuk menjalankan. |
|
code |
benang |
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 |
obyek |
Kamus pasangan nilai nama variabel lingkungan untuk mengatur proses tempat perintah dijalankan. |
|
distribution |
obyek |
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 |
| Tombol |
Tipe |
Deskripsi |
Nilai yang diizinkan |
Nilai default |
type |
benang |
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 |
benang |
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 |
benang |
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 |
benang |
Jenis output pekerjaan. Untuk jenis default uri_folder , output sesuai dengan folder. |
uri_file, , uri_foldermltable,mlflow_model |
uri_folder |
mode |
benang |
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 |
Anda dapat menggunakan az ml job perintah untuk mengelola pekerjaan Azure Pembelajaran Mesin.
Contoh
Kunjungi contoh repositori GitHub misalnya. Beberapa ditunjukkan di sini:
YAML: halo sapuan
$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:AzureML-sklearn-1.5@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: halo menyapu menggunakan sobol dan nilai benih
$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
code: src
command: >-
python main.py
--iris-csv ${{inputs.iris_csv}}
--learning-rate ${{search_space.learning_rate}}
--boosting ${{search_space.boosting}}
environment: azureml:AzureML-lightgbm-3.3@latest
inputs:
iris_csv:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm:
type: random
rule: sobol
seed: 123
search_space:
learning_rate:
type: uniform
min_value: 0.01
max_value: 0.9
boosting:
type: choice
values: ["gbdt", "dart"]
objective:
goal: minimize
primary_metric: test-multi_logloss
limits:
max_total_trials: 20
max_concurrent_trials: 10
timeout: 7200
display_name: lightgbm-iris-sweep-example
experiment_name: lightgbm-iris-sweep-example
description: Run a hyperparameter sweep job for LightGBM on Iris dataset.
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:AzureML-sklearn-1.5@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