Skema YAML perintah pekerjaan CLI (v2)
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
Skema JSON sumber dapat ditemukan di https://azuremlschemas.azureedge.net/latest/commandJob.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 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 Pembelajaran Mesin membuat GUID secara otomatis untuk nama tersebut. | ||
display_name |
string | Nama tampilan pekerjaan di antarmuka pengguna studio. Dapat berupa nonunique dalam ruang kerja. Jika dihilangkan, Azure Pembelajaran Mesin membuat pengidentifikasi kata benda kata sifat yang dapat dibaca manusia untuk nama tampilan. | ||
experiment_name |
string | Nama eksperimen untuk mengatur pekerjaan di bawah. Setiap rekaman eksekusi pekerjaan diatur di bawah eksperimen yang sesuai di tab "Eksperimen" studio. Jika dihilangkan, Azure Pembelajaran Mesin default ke nama direktori kerja tempat pekerjaan dibuat. | ||
description |
string | Deskripsi pekerjaan. | ||
tags |
object | Kamus tag untuk pekerjaan. | ||
command |
string | Diperlukan (jika tidak menggunakan bidang component ). Perintah untuk menjalankan. |
||
code |
string | Jalur lokal ke direktori kode sumber untuk diunggah dan digunakan untuk pekerjaan itu. | ||
environment |
string atau objek | Diperlukan (jika tidak menggunakan bidang component ). Lingkungan yang digunakan untuk pekerjaan. Dapat berupa referensi ke lingkungan versi yang ada di ruang kerja atau spesifikasi lingkungan sebaris. Untuk mereferensikan lingkungan yang ada, gunakan azureml:<environment_name>:<environment_version> sintaks atau azureml:<environment_name>@latest (untuk mereferensikan versi terbaru lingkungan). Untuk menentukan lingkungan inline, ikuti skema Lingkungan. Kecualikan name properti dan version karena tidak didukung untuk lingkungan sebaris. |
||
environment_variables |
object | Kamus pasangan kunci-nilai variabel lingkungan untuk mengatur proses tempat perintah dijalankan. | ||
distribution |
object | Konfigurasi distribusi untuk skenario pelatihan terdistribusi. Salah satu dari MpiConfiguration, PyTorchConfiguration, atau TensorFlowConfiguration. | ||
compute |
string | Nama target komputasi untuk menjalankan pekerjaan. Dapat berupa referensi ke komputasi yang ada di ruang kerja (menggunakan azureml:<compute_name> sintaks) atau local untuk menunjuk eksekusi lokal. Catatan: pekerjaan dalam alur tidak mendukung local sebagai compute |
local |
|
resources.instance_count |
Integer | Jumlah node yang digunakan untuk pekerjaan. | 1 |
|
resources.instance_type |
string | Jenis instans yang digunakan untuk pekerjaan tersebut. Berlaku untuk pekerjaan yang berjalan pada komputasi Kubernetes yang mendukung Azure Arc (di mana target komputasi yang ditentukan di bidang compute adalah dari type: kubernentes ). Jika dihilangkan, default ke jenis instans default untuk kluster Kubernetes. Untuk informasi selengkapnya, lihat Membuat dan memilih jenis instans Kubernetes. |
||
resources.shm_size |
string | Ukuran blok memori bersama kontainer docker. Harus dalam format <number><unit> di mana angka harus lebih besar dari 0 dan unit bisa menjadi salah satu dari b (byte), k (kilobyte), m (megabyte), atau g (gigabyte). |
2g |
|
limits.timeout |
Integer | Waktu maksimum dalam detik yang pekerjaan izinkan untuk dijalankan. Ketika batas ini tercapai, sistem membatalkan pekerjaan. | ||
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 literal (dari nomor jenis, integer, 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, dalam hal ini secara default output berjenis uri_folder dan Azure Pembelajaran Mesin menghasilkan lokasi output untuk output. File ke direktori output ditulis melalui pemasangan baca-tulis. Jika Anda ingin menentukan mode yang berbeda untuk output, berikan objek yang berisi spesifikasi output pekerjaan. |
||
identity |
object | Identitas digunakan untuk mengakses data. Ini bisa userIdentityConfiguration, ManagedIdentityConfiguration, atau None. Jika UserIdentityConfiguration, identitas pengirim pekerjaan digunakan untuk mengakses, memasukkan data, dan menulis hasil ke folder output, jika tidak, identitas terkelola dari target komputasi digunakan. |
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. |
uri_file , , uri_folder mlflow_model ,custom_model |
uri_folder |
path |
string | Jalur ke data yang akan digunakan sebagai input. Dapat ditentukan dalam beberapa cara: - Jalur lokal ke file atau folder sumber data, misalnya path: ./iris.csv . Data akan 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 . Lihat Core yaml syntax untuk informasi selengkapnya tentang cara menggunakan format URI azureml:// . - Aset data Azure Pembelajaran Mesin terdaftar yang ada untuk digunakan sebagai input. Untuk mereferensikan aset data terdaftar, gunakan sintaks azureml:<data_name>:<data_version> atau azureml:<data_name>@latest (untuk mereferensikan versi terbaru dari 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. Jika Anda hanya menginginkan URL lokasi penyimpanan artefak data daripada memasang atau mengunduh data itu sendiri, Anda dapat menggunakan mode . direct Mode ini melewati URL lokasi penyimpanan sebagai input pekerjaan. Dalam hal ini, Anda bertanggung jawab penuh untuk menangani informasi masuk untuk mengakses penyimpanan. eval_mount Mode dan eval_download unik untuk MLTable, dan memasang data sebagai jalur atau mengunduh data ke target komputasi. Untuk informasi selengkapnya tentang mode, lihat Mengakses data dalam pekerjaan |
ro_mount , , download direct , , eval_download ,eval_mount |
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_folder , , mlflow_model custom_model |
uri_folder |
mode |
string | Mode cara file output dikirimkan ke penyimpanan tujuan. Untuk mode pemasangan baca-tulis (rw_mount ), direktori output adalah direktori yang dipasang. Untuk mode pengunggahan, file yang ditulis akan 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
Perintah az ml job
dapat digunakan untuk mengelola tugas Azure Machine Learning.
Contoh
Contoh tersedia di contoh repositori GitHub. Bagian berikut menunjukkan beberapa contoh.
YAML: halo dunia
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
YAML: nama tampilan, nama eksperimen, deskripsi, dan tag
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
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: library/python:latest
environment_variables:
hello_env_var: "hello world"
YAML: kode sumber
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
image: library/python:latest
YAML: input harfiah
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
echo ${{inputs.hello_string}}
echo ${{inputs.hello_number}}
environment:
image: library/python:latest
inputs:
hello_string: "hello world"
hello_number: 42
YAML: tulis ke output default
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
image: library/python:latest
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
YAML: input file URI datastore
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
echo "--iris-csv: ${{inputs.iris_csv}}"
python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
iris_csv:
type: uri_file
path: azureml://datastores/workspaceblobstore/paths/example-data/iris.csv
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
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"
python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
data_dir:
type: uri_folder
path: azureml://datastores/workspaceblobstore/paths/example-data/
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: input file URI
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: |
echo "--iris-csv: ${{inputs.iris_csv}}"
python hello-iris.py --iris-csv ${{inputs.iris_csv}}
code: src
inputs:
iris_csv:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
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"
python hello-iris.py --iris-csv ${{inputs.data_dir}}/iris.csv
code: src
inputs:
data_dir:
type: uri_folder
path: wasbs://datasets@azuremlexamples.blob.core.windows.net/
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
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: src
environment:
image: library/python:3.11.6
YAML: pelatihan model Python dasar
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
code: src
command: >-
python main.py
--iris-csv ${{inputs.iris_csv}}
--C ${{inputs.C}}
--kernel ${{inputs.kernel}}
--coef0 ${{inputs.coef0}}
inputs:
iris_csv:
type: uri_file
path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
C: 0.8
kernel: "rbf"
coef0: 0.1
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
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: src
inputs:
iris:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
environment:
build:
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: 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:
type: uri_folder
path: azureml:cifar-10-example@latest
environment: azureml:AzureML-acpt-pytorch-1.13-cuda11.7@latest
compute: azureml:gpu-cluster
distribution:
type: pytorch
process_count_per_instance: 1
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: 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.12-cuda11@latest
compute: azureml:gpu-cluster
resources:
instance_count: 2
distribution:
type: tensorflow
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: src
command: >-
python train.py
--epochs ${{inputs.epochs}}
inputs:
epochs: 1
environment: azureml:AzureML-tensorflow-2.12-cuda11@latest
compute: azureml:gpu-cluster
resources:
instance_count: 2
distribution:
type: mpi
process_count_per_instance: 1
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk