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, ,qlognormalqnormal,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

Langkah berikutnya