Skema YAML pekerjaan klasifikasi gambar ML otomatis CLI (v2)
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)
Skema JSON sumber dapat ditemukan di https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLImageClassificationJob.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 pengguna menggunakan ekstensi Visual Studio Code Azure Machine Learning untuk menulis file YAML, termasuk $schema di bagian atas file memungkinkan pengguna untuk memanggil skema dan penyelesaian sumber daya. |
||
type |
const | Wajib diisi. Jenis pekerjaan. | automl |
automl |
task |
const | Wajib diisi. Jenis tugas AutoML. | image_classification |
image_classification |
name |
string | Nama pekerjaan. Harus unik di semua pekerjaan di ruang kerja. Jika dihilangkan, Azure Machine Learning akan membuat GUID secara otomatis untuk namanya. | ||
display_name |
string | Nama tampilan pekerjaan di antarmuka pengguna studio. Dapat berupa tidak unik di dalam ruang kerja. Jika dihilangkan, Azure Machine Learning akan secara otomatis menghasilkan pengidentifikasi kata sifat yang dapat dibaca manusia untuk nama tampilan. | ||
experiment_name |
string | Nama eksperimen untuk mengatur pekerjaan di bawah. Setiap rekaman eksekusi pekerjaan akan diatur di bawah eksperimen yang sesuai di tab "Eksperimen" studio. Jika dihilangkan, Azure Machine Learning akan default ke nama direktori kerja tempat pekerjaan dibuat. | ||
description |
string | Deskripsi pekerjaan. | ||
tags |
objek | Kamus tag untuk pekerjaan. | ||
compute |
string | Nama target komputasi untuk menjalankan pekerjaan. Komputasi ini dapat menjadi referensi ke komputasi yang ada di ruang kerja (menggunakan azureml:<compute_name> sintaks) atau local untuk menunjuk eksekusi lokal. Untuk informasi selengkapnya tentang komputasi untuk pekerjaan gambar AutoML, lihat Bagian komputasi untuk menjalankan eksperimen .Catatan: pekerjaan dalam alur tidak mendukung local sebagai compute . * |
local |
|
log_verbosity |
nomor | Tingkat verbositas log yang berbeda. | not_set , debug , info , warning , error , critical |
info |
primary_metric |
string | Metrik yang akan dioptimalkan AutoML untuk pemilihan model. | accuracy |
accuracy |
target_column_name |
string | Wajib diisi. Nama kolom yang akan ditargetkan untuk prediksi. Ini harus selalu ditentukan. Parameter ini berlaku untuk training_data dan validation_data . |
||
training_data |
objek | Wajib diisi. Data yang akan digunakan dalam pekerjaan. Ini harus berisi kolom fitur pelatihan dan kolom target. Parameter training_data harus selalu disediakan. Untuk informasi selengkapnya tentang kunci dan deskripsinya, lihat bagian Data pelatihan atau validasi . Misalnya, lihat bagian Mengonsumsi data . | ||
validation_data |
objek | Data validasi yang akan digunakan dalam pekerjaan. Data tersebut harus berisi fitur pelatihan dan kolom label (opsional untuk kolom bobot sampel). Jika validation_data ditentukan, parameter training_data dan target_column_name harus ditentukan. Untuk informasi selengkapnya tentang kunci dan deskripsinya, lihat bagian Data pelatihan atau validasi . Misalnya, lihat bagian Mengonsumsi data |
||
validation_data_size |
float | Pecahan data apa yang harus disimpan untuk validasi saat data validasi pengguna tidak ditentukan. | Nilai dalam rentang (0,0, 1,0) | |
limits |
objek | Kamus konfigurasi batas pekerjaan. Kuncinya adalah nama untuk batas dalam konteks pekerjaan dan nilainya adalah nilai batas. Untuk informasi selengkapnya, lihat bagian Mengonfigurasi pengaturan eksperimen Anda . | ||
training_parameters |
objek | Kamus yang berisi parameter pelatihan untuk pekerjaan tersebut. Berikan objek yang memiliki kunci seperti yang tercantum di bagian berikut. - Hiperparameter agnostik model - Klasifikasi gambar (hiperparameter khusus multi-kelas dan multi-label). Misalnya, lihat Bagian arsitektur model yang didukung . |
||
sweep |
objek | Kamus yang berisi parameter pembersihan untuk pekerjaan tersebut. Ini memiliki dua kunci - sampling_algorithm (diperlukan) dan early_termination . Untuk informasi selengkapnya dan contohnya, lihat Metode pengambilan sampel untuk bagian pembersihan, Kebijakan penghentian dini . |
||
search_space |
objek | Kamus ruang pencarian hiperparameter. Kuncinya adalah nama hiperparameter dan nilainya adalah ekspresi parameter. Pengguna dapat menemukan kemungkinan hiperparameter dari parameter yang ditentukan untuk training_parameters kunci. Misalnya, lihat Menyapu hiperparameter untuk bagian model Anda . |
||
search_space.<hyperparameter> |
objek | Ada dua jenis hyperparameter: - Hyperparameter diskrit: Hiperparameter diskrit ditentukan sebagai choice di antara nilai diskrit. choice dapat berupa satu atau beberapa nilai yang dipisahkan koma, range objek, atau objek arbitrer list apa pun. Hiperparameter diskrit tingkat lanjut juga dapat ditentukan menggunakan distribusi - randint , ,qlognormal qnormal ,qloguniform , . quniform Untuk informasi selengkapnya, lihat bagian ini. - Hiperparameter berkelanjutan: Hiperparameter berkelanjutan ditentukan sebagai distribusi melalui rentang nilai berkelanjutan. Distribusi yang saat ini didukung adalah - lognormal , , normal , loguniform . uniform Untuk informasi selengkapnya, lihat bagian ini. Lihat Ekspresi parameter untuk serangkaian kemungkinan ekspresi yang akan digunakan. |
||
outputs |
objek | Kamus konfigurasi output dari pekerjaan. Kunci adalah nama untuk output dalam konteks pekerjaan dan nilai adalah konfigurasi output. | ||
outputs.best_model |
objek | Kamus konfigurasi output untuk model terbaik. Untuk informasi selengkapnya, lihat Konfigurasi output model terbaik. |
Data pelatihan atau validasi
Kunci | Jenis | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
description |
string | Informasi terperinci yang menjelaskan data input ini. | ||
path |
string | Jalur dapat berupa file jalur, jalur, folder atau pattern untuk jalur. pattern menentukan pola pencarian untuk memungkinkan globbing(* dan ** ) file dan folder yang berisi data. Jenis URI yang didukung adalah azureml , https , wasbs , abfss , dan adl . Untuk informasi selengkapnya tentang cara menggunakan format URI azureml:// , lihat Sintaks yaml inti. URI lokasi file artefak. Jika URI ini tidak memiliki skema (misalnya, http:, azureml: dll.), maka URI ini dianggap sebagai referensi lokal dan file yang ditujukan untuk diunggah ke penyimpanan blob ruang kerja default saat entitas dibuat. |
||
mode |
string | Mekanisme pengiriman himpunan data. | direct |
direct |
type |
const | Untuk menghasilkan model visi komputer, pengguna perlu membawa data gambar berlabel sebagai input untuk pelatihan model dalam bentuk MLTable. | mltable | mltable |
Konfigurasi output model terbaik
Kunci | Jenis | Deskripsi | Nilai yang diizinkan | Nilai default |
---|---|---|---|---|
type |
string | Wajib diisi. Jenis model terbaik. AutoML hanya memungkinkan model mlflow. | mlflow_model |
mlflow_model |
path |
string | Wajib diisi. URI lokasi tempat file artefak model disimpan. Jika URI ini tidak memiliki skema (misalnya, http:, azureml: dll.), maka URI ini dianggap sebagai referensi lokal dan file yang ditujukan untuk diunggah ke penyimpanan blob ruang kerja default saat entitas dibuat. | ||
storage_uri |
string | The HTTP URL of the Model. Gunakan URL ini dengan az storage copy -s THIS_URL -d DESTINATION_PATH --recursive untuk mengunduh data. |
Keterangan
Perintah az ml job
dapat digunakan untuk mengelola pekerjaan Azure Machine Learning.
Contoh
Contoh tersedia di contoh repositori GitHub. Contoh yang relevan dengan pekerjaan klasifikasi gambar ditautkan di bawah ini.
YAML: Pekerjaan klasifikasi gambar AutoML
$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl
experiment_name: dpv2-cli-automl-image-classification-experiment
description: A multi-class Image classification job using fridge items dataset
compute: azureml:gpu-cluster
task: image_classification
log_verbosity: debug
primary_metric: accuracy
target_column_name: label
training_data:
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/training-mltable-folder
type: mltable
validation_data:
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/validation-mltable-folder
type: mltable
limits:
timeout_minutes: 60
max_trials: 10
max_concurrent_trials: 2
training_parameters:
early_stopping: True
evaluation_frequency: 1
sweep:
sampling_algorithm: random
early_termination:
type: bandit
evaluation_interval: 2
slack_factor: 0.2
delay_evaluation: 6
search_space:
- model_name:
type: choice
values: [vitb16r224, vits16r224]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
number_of_epochs:
type: choice
values: [15, 30]
- model_name:
type: choice
values: [seresnext, resnet50]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
layers_to_freeze:
type: choice
values: [0, 2]
YAML: Pekerjaan alur klasifikasi gambar AutoML
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Image Multiclass Classification task
display_name: pipeline-with-image-classification
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:gpu-cluster
inputs:
image_multiclass_classification_training_data:
type: mltable
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/training-mltable-folder
image_multiclass_classification_validation_data:
type: mltable
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/validation-mltable-folder
jobs:
image_multiclass_classification_node:
type: automl
task: image_classification
log_verbosity: info
primary_metric: accuracy
limits:
timeout_minutes: 180
max_trials: 10
max_concurrent_trials: 2
target_column_name: label
training_data: ${{parent.inputs.image_multiclass_classification_training_data}}
validation_data: ${{parent.inputs.image_multiclass_classification_validation_data}}
sweep:
sampling_algorithm: random
early_termination:
type: bandit
evaluation_interval: 2
slack_factor: 0.2
delay_evaluation: 6
search_space:
- model_name:
type: choice
values: [vitb16r224, vits16r224]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
number_of_epochs:
type: choice
values: [15, 30]
- model_name:
type: choice
values: [seresnext, resnet50]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
layers_to_freeze:
type: choice
values: [0, 2]
training_parameters:
early_stopping: True
evaluation_frequency: 1
# currently need to specify outputs "mlflow_model" explicitly to reference it in following nodes
outputs:
best_model:
type: mlflow_model
register_model_node:
type: command
component: file:./components/component_register_model.yaml
inputs:
model_input_path: ${{parent.jobs.image_multiclass_classification_node.outputs.best_model}}
model_base_name: fridge_items_multiclass_classification_model