Share via


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ılarıyla belirtilen YAML söz dizimi, ML CLI v2 uzantısının en son sürümü için 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 Açıklama İ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ı da 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 Machine Learning ad için bir GUID'yi otomatik olarak 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 Machine Learning görünen ad için insan tarafından okunabilen bir sıfat-isim tanımlayıcısını otomatik olarak oluşturur.
experiment_name string İşi düzenlemek için deneme adı. Her işin çalıştırma kaydı, stüdyonun "Denemeler" sekmesindeki ilgili deneme altında düzenlenir. Belirtilmezse, Azure Machine Learning bunu işin oluşturulduğu çalışma dizininin adına varsayılan olarak belirler.
description string İşin açıklaması.
tags object İş için etiket sözlüğü.
command string Gerekli (alan kullanmı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 kullanmı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 mevcut bir işlem başvurusu (söz dizimi kullanılarak azureml:<compute_name> ) veya local yerel yürütmeyi belirtmek için olabilir. 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 (burada alanında compute belirtilen işlem hedefi değeridir type: kubernentes). Atlanırsa, kubernetes kümesi için varsayılan örnek türü varsayılan olarak ayarlanır. Daha fazla bilgi için bkz. Kubernetes örnek türleri oluşturma ve seçme.
resources.shm_size string Docker kapsayıcısının paylaşılan bellek bloğunun boyutu. Bu, sayının <number><unit> 0'dan büyük olması ve birimin b (bayt), (kilobayt), k (megabayt m ) veya g (gigabayt) biri olabileceği biçimde olmalıdır. 2g
limits.timeout tamsayı İşin çalışmasına izin verilen saniye olarak en uzun süre. 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 giriş değeridir.

ifadesini command kullanarak ${{ inputs.<input_name> }} girişlere başvurulabilir.
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ının sözlüğü. Anahtar, işin bağlamındaki çıkışın adıdır ve değer de çıkış yapılandırmasıdır.

İfade kullanılarak çıkışlara başvurulabilir command${{ outputs.<output_name> }} .
outputs.<output_name> object Nesneyi boş bırakabilirsiniz. Bu durumda varsayılan olarak çıkış türünde uri_folder olur ve Azure Machine Learning çı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 Açıklama İ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 Açıklama İ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 Açıklama İ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 Açıklama İ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 Machine Learning 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) veya path: azureml:cifar10-data@latestkullanın. path: azureml:cifar10-data:1
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 Machine Learning bağlama yolunun girişini çözümler.

Mod için download veriler işlem hedefine indirilir. Azure Machine Learning, 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.

eval_mount ve eval_download modları MLTable için benzersizdir ve verileri yol olarak bağlar veya verileri işlem hedefine indirir.

Modlar hakkında daha fazla bilgi için bkz. bir işteki verilere erişme
ro_mount, download, direct, eval_download, eval_mount ro_mount

İş çıkışları

Anahtar Tür Açıklama İ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 Açıklama İzin verilen değerler
type const Gereklidir. Kimlik türü. user_identity

ManagedIdentityConfiguration

Anahtar Tür Açıklama İ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

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

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

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

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

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://registries/azureml/environments/sklearn-1.0/labels/latest

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://registries/azureml/environments/sklearn-1.0/labels/latest

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://registries/azureml/environments/sklearn-1.0/labels/latest

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://registries/azureml/environments/sklearn-1.0/labels/latest

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:3.11.6

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://registries/azureml/environments/sklearn-1.0/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: 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-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: 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.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: 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.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.

Sonraki adımlar