Skema YAML perintah pekerjaan CLI (v2)

Skema JSON sumber dapat ditemukan di https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.

Penting

Fitur ini sedang dalam pratinjau umum. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan, dan tidak disarankan untuk beban kerja produksi. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Sintaks YAML

Kunci Jenis 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 pekerjaan. command command
name string Nama pekerjaan. Harus unik di semua pekerjaan di ruang kerja. Jika dihilangkan, Azure ML akan 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 ML akan secara otomatis membuat pengidentifikasi kata sifat-benda yang dapat dibaca manusia untuk nama tampilan.
experiment_name string Nama eksperimen untuk mengatur pekerjaan di bawah. Setiap catatan eksekusi pekerjaan akan diatur di bawah eksperimen yang sesuai di tab "Eksperimen" studio. Jika dihilangkan, Azure ML akan default ke nama direktori kerja tempat pekerjaan dibuat.
description string Deskripsi pekerjaan.
tags objek Kamus tag untuk pekerjaan.
command string Diperlukan. Perintah untuk menjalankan.
code.local_path string Jalur lokal ke direktori kode sumber untuk diunggah dan digunakan untuk pekerjaan itu.
environment string atau objek Diperlukan. Lingkungan yang digunakan untuk pekerjaan. Ini bisa menjadi referensi ke lingkungan versi yang ada di ruang kerja atau spesifikasi lingkungan sebaris.

Untuk mereferensikan lingkungan yang ada, gunakan sintaks azureml:<environment_name>:<environment_version>.

Untuk menentukan lingkungan sebaris, silakan ikuti Skema lingkungan. Kecualikan properti name dan version karena tidak didukung untuk lingkungan sebaris.
environment_variables objek Kamus pasangan nilai nama variabel lingkungan untuk mengatur proses tempat perintah dijalankan.
distribution objek Konfigurasi distribusi untuk skenario pelatihan terdistribusi. Salah satu dari MpiConfiguration, PyTorchConfiguration, atau TensorFlowConfiguration.
compute string Nama target komputasi untuk menjalankan pekerjaan. Ini bisa berupa referensi ke komputasi yang ada di ruang kerja (menggunakan sintaks azureml:<compute_name>) atau local untuk menunjuk eksekusi lokal. local
resources.instance_count bilangan bulat Jumlah node yang digunakan untuk pekerjaan. 1
limits.timeout bilangan bulat Waktu maksimum dalam detik yang pekerjaan izinkan untuk dijalankan. Setelah batas ini tercapai, sistem akan membatalkan pekerjaan.
inputs objek 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 (berjenis angka, bilangan bulat, boolean, atau string), JobInputUri, atau JobInputDataset.
outputs objek 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> objek Anda dapat menentukan mode opsional atau membiarkan objek kosong. Untuk setiap output bernama yang ditentukan dalam kamus outputs, Azure ML akan membuat lokasi output secara otomatis.
outputs.<output_name>.mode string Mode bagaimana file output akan dikirim ke penyimpanan tujuan. Untuk mode pemasangan baca-tulis, direktori output akan menjadi direktori yang dipasang. Untuk mode unggah, file yang ditulis ke direktori output akan diunggah di akhir pekerjaan. rw_mount, upload rw_mount

Konfigurasi distribusi

MpiConfiguration

Kunci Jenis Deskripsi Nilai yang diizinkan
type const Diperlukan. Jenis distribusi. mpi
process_count_per_instance bilangan bulat Diperlukan. Jumlah proses per node yang diluncurkan untuk pekerjaan.

PyTorchConfiguration

Kunci Jenis Deskripsi Nilai yang diizinkan Nilai default
type const Diperlukan. Jenis distribusi. pytorch
process_count_per_instance bilangan bulat Jumlah proses per node yang diluncurkan untuk pekerjaan. 1

TensorFlowConfiguration

Kunci Jenis Deskripsi Nilai yang diizinkan Nilai default
type const Diperlukan. Jenis distribusi. tensorflow
worker_count bilangan bulat Jumlah pekerja yang akan diluncurkan untuk pekerjaan. Default ke resources.instance_count.
parameter_server_count bilangan bulat Jumlah server paramater yang diluncurkan untuk pekerjaan. 0

Input pekerjaan

JobInputUri

Kunci Jenis Deskripsi Nilai yang diizinkan Nilai default
file string URI ke satu file yang digunakan sebagai input. Jenis URI yang didukung adalah azureml, https, wasbs, abfss, adl. Lihat Core yaml syntax untuk informasi selengkapnya tentang cara menggunakan format URI azureml://. Salah satu dari file atau folder diperlukan.
folder string URI ke folder yang digunakan sebagai input. Jenis URI yang didukung adalah azureml, wasbs, abfss, adl. Lihat Core yaml syntax untuk informasi selengkapnya tentang cara menggunakan format URI azureml://. Salah satu dari file atau folder diperlukan.
mode string Mode bagaimana data harus dikirimkan ke target komputasi. Untuk pemasangan baca-saja dan pemasangan baca-tulis, data akan digunakan sebagai jalur pemasangan. Folder akan dipasang sebagai folder dan file akan dipasang sebagai file. Untuk mode unduh, data akan digunakan sebagai jalur yang diunduh. ro_mount, rw_mount, download ro_mount

JobInputDataset

Kunci Jenis Deskripsi Nilai yang diizinkan Nilai default
dataset string atau objek Diperlukan. Himpunan data yang akan digunakan sebagai input. Ini dapat berupa referensi ke himpunan data yang diberi versi yang ada di ruang kerja atau spesifikasi himpunan data sebaris.

Untuk mereferensikan himpunan data yang ada, gunakan sintaks azureml:<dataset_name>:<dataset_version>.

Untuk menentukan himpunan data sebaris, silakan ikuti Skema himpunan data. Kecualikan properti name dan version karena tidak didukung untuk himpunan data sebaris.
mode string Mode bagaimana himpunan data harus dikirimkan ke target komputasi. Untuk pemasangan baca-saja, himpunan data akan digunakan sebagai jalur pemasangan. Folder akan dipasang sebagai folder dan file akan dipasang sebagai folder induk. Untuk mode unduh, himpunan data akan digunakan sebagai jalur yang diunduh. ro_mount, download ro_mount

Keterangan

Perintah az ml job dapat digunakan untuk mengelola pekerjaan Azure Machine Learning.

Contoh

Contoh tersedia di contoh repositori GitHub. Beberapa ditunjukkan di bawah ini.

YAML: halo dunia

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: nama tampilan, nama eksperimen, deskripsi, dan tag

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: python:latest
compute: azureml:cpu-cluster
tags:
  hello: world
display_name: hello-world-example
experiment_name: hello-world-example
description: |
  # Azure Machine Learning "hello world" job

  This is a "hello world" job running in the cloud via Azure Machine Learning!

  ## Description

  Markdown is supported in the studio for job descriptions! You can edit the description there or via CLI.

YAML: variabel lingkungan

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo $hello_env_var
environment:
  image: python:latest
compute: azureml:cpu-cluster
environment_variables:
  hello_env_var: "hello world"

YAML: kode sumber

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code:
  local_path: src
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: input harfiah

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  echo ${{inputs.hello_string}}
  &&
  echo ${{inputs.hello_number}}
environment:
  image: python:latest
inputs:
  hello_string: "hello world"
  hello_number: 42
compute: azureml:cpu-cluster

YAML: tulis ke output default

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: tulis ke output data bernama

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ${{outputs.hello_output}}/helloworld.txt
outputs:
  hello_output:
environment:
  image: python
compute: azureml:cpu-cluster

YAML: input file URI datastore

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  echo "--iris-csv: ${{inputs.iris_csv}}"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.iris_csv}}
code:
  local_path: src
inputs:
  iris_csv: 
    file: azureml://datastores/workspaceblobstore/paths/example-data/iris.csv
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: input folder URI datastore

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  ls ${{inputs.data_dir}}
  &&
  echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.data_dir}}/iris.csv
code:
  local_path: src
inputs:
  data_dir: 
    folder: azureml://datastores/workspaceblobstore/paths/example-data/
    mode: rw_mount
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: input file URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  echo "--iris-csv: ${{inputs.iris_csv}}"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.iris_csv}}
code:
  local_path: src
inputs:
  iris_csv: 
    file: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: input folder URI

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  ls ${{inputs.data_dir}}
  &&
  echo "--iris-csv: ${{inputs.data_dir}}/iris.csv"
  &&
  pip install pandas
  &&
  python hello-iris.py
  --iris-csv ${{inputs.data_dir}}/iris.csv
code:
  local_path: src
inputs:
  data_dir: 
    folder: wasbs://datasets@azuremlexamples.blob.core.windows.net/
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: Notebook melalui papermill

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >-
  pip install ipykernel papermill
  &&
  papermill hello-notebook.ipynb outputs/out.ipynb -k python
code:
  local_path: src
environment:
  image: python:latest
compute: azureml:cpu-cluster

YAML: pelatihan model Python dasar

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: 
  local_path: src
command: >-
  python main.py 
  --iris-csv ${{inputs.iris_csv}}
  --C ${{inputs.C}}
  --kernel ${{inputs.kernel}}
  --coef0 ${{inputs.coef0}}
inputs:
  iris_csv: 
    file: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
  C: 0.8
  kernel: "rbf"
  coef0: 0.1
environment: azureml:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu:9
compute: azureml:cpu-cluster
display_name: sklearn-iris-example
experiment_name: sklearn-iris-example
description: Train a scikit-learn SVM on the Iris dataset.

YAML: pelatihan model R dasar dengan konteks bangun Docker lokal

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: >
  Rscript train.R 
  --data_folder ${{inputs.iris}}
code:
  local_path: src
inputs:
  iris: 
    file: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
  build:
    local_path: docker-context
compute: azureml:cpu-cluster
display_name: r-iris-example
experiment_name: r-iris-example
description: Train an R model on the Iris dataset.

YAML: PyTorch terdistribusi

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: 
  local_path: src
command: >-
  python train.py 
  --epochs ${{inputs.epochs}}
  --learning-rate ${{inputs.learning_rate}}
  --data-dir ${{inputs.cifar}}
inputs:
  epochs: 1
  learning_rate: 0.2
  cifar:
    dataset: azureml:cifar-10-example:1
environment: azureml:AzureML-pytorch-1.9-ubuntu18.04-py37-cuda11-gpu:6
compute: azureml:gpu-cluster
distribution:
  type: pytorch 
  process_count_per_instance: 2
resources:
  instance_count: 2
display_name: pytorch-cifar-distributed-example
experiment_name: pytorch-cifar-distributed-example
description: Train a basic convolutional neural network (CNN) with PyTorch on the CIFAR-10 dataset, distributed via PyTorch.

YAML: TensorFlow terdistribusi

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code:
  local_path: src
command: >-
  python train.py 
  --epochs ${{inputs.epochs}}
  --model-dir ${{inputs.model_dir}}
inputs:
  epochs: 1
  model_dir: outputs/keras-model
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:14
compute: azureml:gpu-cluster
resources:
  instance_count: 2
distribution:
  type: tensorflow
  worker_count: 2
  worker_count: 2
display_name: tensorflow-mnist-distributed-example
experiment_name: tensorflow-mnist-distributed-example
description: Train a basic neural network with TensorFlow on the MNIST dataset, distributed via TensorFlow.

YAML: MPI terdistribusi

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code:
  local_path: src
command: >-
  python train.py
  --epochs ${{inputs.epochs}}
inputs:
  epochs: 1
environment: azureml:AzureML-tensorflow-2.4-ubuntu18.04-py37-cuda11-gpu:14
compute: azureml:gpu-cluster
resources:
  instance_count: 2
distribution:
  type: mpi
  process_count_per_instance: 2
display_name: tensorflow-mnist-distributed-horovod-example
experiment_name: tensorflow-mnist-distributed-horovod-example
description: Train a basic neural network with TensorFlow on the MNIST dataset, distributed via Horovod.

Langkah berikutnya