CLI (v2) komut işi YAML şeması

ŞUNLAR IÇIN GEÇERLIDIR:Azure CLI ml uzantısı v2 (geçerli)

Kaynak JSON şeması adresinde https://azuremlschemas.azureedge.net/latest/commandJob.schema.jsonbulunabilir.

Not

Bu belgede ayrıntılı olarak açıklanan YAML söz dizimi, ML CLI v2 uzantısının en son sürümünün JSON şemasını temel alır. Bu söz diziminin yalnızca ML CLI v2 uzantısının en son sürümüyle çalışacağı garanti edilir. Eski uzantı sürümleri için şemaları adresinde https://azuremlschemasprod.azureedge.net/bulabilirsiniz.

YAML söz dizimi

Anahtar Tür Description İzin verilen değerler Varsayılan değer
$schema string YAML şeması. YAML dosyasını yazmak için Azure Machine Learning VS Code uzantısını kullanırsanız, dosyanızın üst kısmındakiler de dahil olmak üzere $schema şema ve kaynak tamamlamalarını çağırmanıza olanak tanır.
type const İşin türü. command command
name string İşin adı. Çalışma alanı içindeki tüm işlerde benzersiz olmalıdır. Belirtilmezse, Azure ML ad için otomatik olarak bir GUID oluşturur.
display_name string Stüdyo kullanıcı arabiriminde işin görünen adı. Çalışma alanı içinde benzersiz olmayabilir. Belirtilmezse Azure ML, görünen ad için insan tarafından okunabilir bir sıfat-isim tanımlayıcısı oluşturur.
experiment_name string İşi düzenlemek için deneme adı. Her işin çalıştırma kaydı, stüdyonun "Denemeler" sekmesinde ilgili deneme altında düzenlenir. Belirtilmezse, Azure ML bunu varsayılan olarak işin oluşturulduğu çalışma dizininin adı olarak belirler.
description string İşin açıklaması.
tags object İş için etiket sözlüğü.
command string Gerekli (alan kullanılmıyorsa component ). Yürütülecek komut.
code string Karşıya yüklenecek ve iş için kullanılacak kaynak kodu dizininin yerel yolu.
environment dize veya nesne Gerekli (alan kullanılmıyorsa component ). İş için kullanılacak ortam. Bu, çalışma alanında var olan bir sürüme sahip ortama başvuru veya satır içi ortam belirtimi olabilir.

Var olan bir ortama başvurmak için veya azureml:<environment_name>@latest söz dizimini azureml:<environment_name>:<environment_version> kullanın (bir ortamın en son sürümüne başvurmak için).

Bir ortamı satır içinde tanımlamak için lütfen Ortam şemasını izleyin. name Satır içi ortamlar için desteklenmediğinden ve version özelliklerini hariç tutun.
environment_variables object Komutun yürütüldüğü işlemde ayarlanacağı ortam değişkeni anahtar-değer çiftlerinin sözlüğü.
distribution object Dağıtılmış eğitim senaryoları için dağıtım yapılandırması. MpiConfiguration, PyTorchConfiguration veya TensorFlowConfiguration'lardan biri.
compute string İşin yürütülecek işlem hedefinin adı. Bu, çalışma alanında var olan bir işlem için başvuru (söz dizimi kullanılarak azureml:<compute_name> ) veya local yerel yürütmeyi belirtmek için kullanılabilir. Not: İşlem hattındaki işler şu şekilde desteklenmiyor local : compute local
resources.instance_count tamsayı İş için kullanılacak düğüm sayısı. 1
resources.instance_type string İş için kullanılacak örnek türü. Azure Arc özellikli Kubernetes işlemi üzerinde çalışan işler için geçerlidir (alanında belirtilen compute işlem hedefi .type: kubernentes Belirtilmezse, bu varsayılan olarak Kubernetes kümesi için varsayılan örnek türüne ayarlanır. Daha fazla bilgi için bkz. Kubernetes örnek türleri oluşturma ve seçme.
limits.timeout tamsayı İşin çalışmasına izin verilen en uzun saniye sayısı. Bu sınıra ulaşıldıktan sonra sistem işi iptal eder.
inputs object İşe giriş sözlüğü. anahtar, işin bağlamındaki girişin adıdır ve değer de giriş değeridir.

ifadesini command kullanarak ${{ inputs.<input_name> }} girişlere başvurabilirsiniz.
inputs.<input_name> sayı, tamsayı, boole, dize veya nesne Sabit değerlerden biri (sayı, tamsayı, boole veya dize türünde) veya iş girişi veri belirtimi içeren bir nesne.
outputs object İşin çıkış yapılandırmaları sözlüğü. Anahtar, işin bağlamındaki çıkışın adıdır ve değer de çıkış yapılandırmasıdır.

çıkışlarına ifadesi kullanılarak ${{ outputs.<output_name> }} içinde command başvurulabilir.
outputs.<output_name> object Nesneyi boş bırakabilirsiniz. Bu durumda varsayılan olarak çıkış türünde uri_folder olur ve Azure ML çıkış için sistem tarafından bir çıkış konumu oluşturur. Çıkış dizinine dosyalar okuma-yazma bağlama yoluyla yazılır. Çıkış için farklı bir mod belirtmek istiyorsanız, iş çıktısı belirtimini içeren bir nesne sağlayın.
identity object Kimlik, verilere erişmek için kullanılır. UserIdentityConfiguration, ManagedIdentityConfiguration veya None olabilir. UserIdentityConfiguration ise, giriş verilerine erişmek ve çıktı klasörüne sonuç yazmak için iş göndericisinin kimliği kullanılır, aksi takdirde işlem hedefinin yönetilen kimliği kullanılır.

Dağıtım yapılandırmaları

MpiConfiguration

Anahtar Tür Description İzin verilen değerler
type const Gereklidir. Dağıtım türü. mpi
process_count_per_instance tamsayı Gereklidir. İş için başlatacak düğüm başına işlem sayısı.

PyTorchConfiguration

Anahtar Tür Description İzin verilen değerler Varsayılan değer
type const Gereklidir. Dağıtım türü. pytorch
process_count_per_instance tamsayı İş için başlatacak düğüm başına işlem sayısı. 1

TensorFlowConfiguration

Anahtar Tür Description İzin verilen değerler Varsayılan değer
type const Gereklidir. Dağıtım türü. tensorflow
worker_count tamsayı İş için başlatacak çalışan sayısı. varsayılan olarak resources.instance_countayarlanır.
parameter_server_count tamsayı İş için başlatacak parametre sunucularının sayısı. 0

İş girişleri

Anahtar Tür Description İzin verilen değerler Varsayılan değer
type string İş girişinin türü. Tek bir dosya kaynağına işaret eden giriş verileri için veya uri_folder bir klasör kaynağına işaret eden giriş verileri için belirtinuri_file. uri_file, uri_folder, mlflow_model, custom_model uri_folder
path string Giriş olarak kullanılacak verilerin yolu. Bu birkaç şekilde belirtilebilir:

- Veri kaynağı dosyasının veya klasörünün yerel yolu, örneğin path: ./iris.csv. Veriler iş gönderimi sırasında karşıya yüklenir.

- Giriş olarak kullanılacak dosya veya klasörün bulut yolunun URI'si. Desteklenen URI türleri : azureml, https, wasbs, abfss, adl. URI biçimini kullanma azureml:// hakkında daha fazla bilgi için bkz. Çekirdek yaml söz dizimi.

- Giriş olarak kullanılacak mevcut bir kayıtlı Azure ML veri varlığı. Kayıtlı bir veri varlığına başvurmak için söz dizimini azureml:<data_name>:<data_version> veya azureml:<data_name>@latest (bu veri varlığının en son sürümüne başvurmak için), örneğin path: azureml:cifar10-data:1 veya path: azureml:cifar10-data@latestkullanın.
mode string Verilerin işlem hedefine nasıl teslim edilmesi gerektiği modu.

Salt okunur bağlama ()ro_mount için veriler bağlama yolu olarak kullanılır. Bir klasör klasör olarak bağlanır ve bir dosya dosya olarak bağlanır. Azure ML bağlama yolunun girişini çözümler.

Mod için download veriler işlem hedefine indirilir. Azure ML, indirilen yola girişi çözümler.

Verileri bağlamak veya indirmek yerine yalnızca veri yapıtlarının depolama konumunun URL'sini direct istiyorsanız modu kullanabilirsiniz. Bu işlem, iş girişi olarak depolama konumunun URL'sini geçirir. Bu durumda depolama alanına erişmek için kimlik bilgilerini işlemenin tamamen sizin sorumluluğunda olduğunu unutmayın.
ro_mount, download, direct ro_mount

İş çıkışları

Anahtar Tür Description İzin verilen değerler Varsayılan değer
type string İş çıktısının türü. Varsayılan uri_folder tür için çıkış bir klasöre karşılık gelir. uri_folder , mlflow_model, custom_model uri_folder
mode string Çıkış dosyasının hedef depolama alanına teslimi modu. Okuma-yazma bağlama modu (rw_mount) için çıkış dizini bağlı bir dizin olacaktır. Karşıya yükleme modu için yazılan dosyalar işin sonunda karşıya yüklenir. rw_mount, upload rw_mount

Kimlik yapılandırmaları

UserIdentityConfiguration

Anahtar Tür Description İzin verilen değerler
type const Gereklidir. Kimlik türü. user_identity

ManagedIdentityConfiguration

Anahtar Tür Description İzin verilen değerler
type const Gereklidir. Kimlik türü. managed veya managed_identity

Açıklamalar

az ml job Komutu Azure Machine Learning işlerini yönetmek için kullanılabilir.

Örnekler

Örnekler GitHub deposunda bulunabilir. Aşağıda birkaçı gösterilmiştir.

YAML: merhaba dünya

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

YAML: görünen ad, deneme adı, açıklama ve etiketler

$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
  image: library/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: ortam değişkenleri

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

YAML: kaynak kodu

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

YAML: değişmez değer girişleri

$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
compute: azureml:cpu-cluster

YAML: varsayılan çıkışlara yazma

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

YAML: adlandırılmış veri çıkışına yazma

$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: datastore URI dosya girişi

$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:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: datastore URI klasör girişi

$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:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: URI dosya girişi

$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:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: URI klasör girişi

$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:AzureML-sklearn-1.0-ubuntu20.04-py38-cpu@latest
compute: azureml:cpu-cluster

YAML: Papermill aracılığıyla not defteri

$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:latest
compute: azureml:cpu-cluster

YAML: temel Python modeli eğitimi

$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:AzureML-sklearn-0.24-ubuntu18.04-py37-cpu@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: Yerel Docker derleme bağlamı ile temel R modeli eğitimi

$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: dağıtılmış PyTorch

$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-pytorch-1.9-ubuntu18.04-py37-cuda11-gpu@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: dağıtılmış TensorFlow

$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.4-ubuntu18.04-py37-cuda11-gpu@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: dağıtılmış MPI

$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.7-ubuntu20.04-py38-cuda11-gpu@latest
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.

Sonraki adımlar