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 yer alan 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ışması garanti edilir. Eski uzantı sürümleri için şemaları adresinde https://azuremlschemasprod.azureedge.net/bulabilirsiniz.

YAML söz dizimi

Anahtar Type Açıklama İzin verilen değerler Default value
$schema Dize 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 tamamlama işlemlerini çağırmanıza olanak tanır.
type const İşin türü. command command
name Dize İş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 Dize Stüdyo kullanıcı arabiriminde işin görünen adı. Çalışma alanı içinde nonunique olabilir. Belirtilmezse, Azure Machine Learning görünen ad için insan tarafından okunabilir bir sıfat-isim tanımlayıcısı oluşturur.
experiment_name Dize İşin düzenleyeceği deneme adı. Her işin çalıştırma kaydı, stüdyonun "Denemeler" sekmesinde ilgili deneme altında düzenlenir. Belirtilmezse, Azure Machine Learning bunu varsayılan olarak işin oluşturulduğu çalışma dizininin adıyla belirler.
description Dize İşin açıklaması.
tags nesne İş için etiket sözlüğü.
command Dize Yürütülecek komut.
code Dize karşıya yüklenecek ve iş için kullanılacak kaynak kod dizinine yönelik yerel yol.
environment dize veya nesne İş için kullanılacak ortam. Ç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 söz dizimini azureml:<environment_name>:<environment_version> veya azureml:<environment_name>@latest (bir ortamın en son sürümüne başvurmak için) kullanın.

Bir ortamı satır içinde tanımlamak için Ortam şemasını izleyin. name satır içi ortamlar için desteklenmediğinden ve version özelliklerini hariç tutun.
environment_variables nesne Komutun yürütüldüğü işlemde ayarlanacağı ortam değişkeni anahtar-değer çiftlerinin sözlüğü.
distribution nesne Dağıtılmış eğitim senaryoları için dağıtım yapılandırması. MpiConfiguration, PyTorchConfiguration veya TensorFlowConfiguration'lardan biri.
compute Dize İşin yürütülecek işlem hedefinin adı. Ç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 olabilir. Not: İşlem hattındaki işler şu şekilde desteklemiyor local : compute local
resources.instance_count integer İş için kullanılacak düğüm sayısı. 1
resources.instance_type Dize İş için kullanılacak örnek türü. Azure Arc özellikli Kubernetes işlemi üzerinde çalışan işler için geçerlidir (alanında compute belirtilen işlem hedefinin olduğu yer).type: kubernentes Belirtilmezse, Kubernetes kümesi için varsayılan örnek türü varsayılandır. Daha fazla bilgi için bkz . Kubernetes örnek türleri oluşturma ve seçme.
resources.shm_size Dize Docker kapsayıcısının paylaşılan bellek bloğunun boyutu. Sayının 0'dan büyük olması ve birimin <number><unit> b biri (bayt), (kilobayt), k (megabayt) m veya g (gigabayt) olabileceği biçimde olmalıdır. 2g
limits.timeout integer İşin çalışmasına izin verilen saniye cinsinden en uzun süre. Bu sınıra ulaşıldığında sistem işi iptal eder.
inputs nesne İşe giriş sözlüğü. anahtar, iş bağlamında girişin adı ve değer giriş değeridir.

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

çıkışlarına ifadesi kullanılarak ${{ outputs.<output_name> }} içinde başvurulabilircommand.
outputs.<output_name> nesne Nesneyi boş bırakabilirsiniz. Bu durumda varsayılan olarak çıkış türündedir uri_folder ve Azure Machine Learning çıkış için 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 nesne Kimlik, verilere erişmek için kullanılır. UserIdentityConfiguration, ManagedIdentityConfiguration veya None olabilir. UserIdentityConfiguration ise, iş göndericisinin kimliği çıkış klasörüne erişmek, veri girişi yapmak ve sonuç yazmak için kullanılır, aksi takdirde işlem hedefinin yönetilen kimliği kullanılır.

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

MpiConfiguration

Anahtar Type Açıklama İzin verilen değerler
type const Gerekli. Dağıtım türü. mpi
process_count_per_instance integer Gerekli. İş için başlatacak düğüm başına işlem sayısı.

PyTorchConfiguration

Anahtar Type Açıklama İzin verilen değerler Default value
type const Gerekli. Dağıtım türü. pytorch
process_count_per_instance integer İş için başlatacak düğüm başına işlem sayısı. 1

TensorFlowConfiguration

Anahtar Type Açıklama İzin verilen değerler Default value
type const Gerekli. Dağıtım türü. tensorflow
worker_count integer İş için başlatacak çalışan sayısı. varsayılan değeridir resources.instance_count.
parameter_server_count integer İş için başlatacak parametre sunucularının sayısı. 0

İş girişleri

Anahtar Type Açıklama İzin verilen değerler Default value
type Dize İş girişi türü. Tek bir dosya kaynağına işaret eden giriş verileri 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 Dize Giriş olarak kullanılacak verilerin yolu. 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'sini. 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 kayıtlı bir 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) kullanın; örneğin, path: azureml:cifar10-data:1 veya path: azureml:cifar10-data@latest.
mode Dize 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. Klasör bir klasör olarak bağlanır ve 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 yönelik 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 mod, iş girişi olarak depolama konumunun URL'sini geçirir. Bu durumda, depolama alanına erişmek için kimlik bilgilerini işlemek sizin sorumluluğundadır.

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 Type Açıklama İzin verilen değerler Default value
type Dize İş çı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 Dize Çıkış dosyalarının hedef depolamaya teslim etme modu. Okuma-yazma bağlama modu ()rw_mount için çıkış dizini bağlı bir dizindir. 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 Type Açıklama İzin verilen değerler
type const Gerekli. Kimlik türü. user_identity

ManagedIdentityConfiguration

Anahtar Type Açıklama İzin verilen değerler
type const Gerekli. Kimlik türü. managed veya managed_identity

Açıklamalar

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

Örnekler

Örnekler GitHub deposunda bulunabilir. Aşağıdaki bölümlerde örneklerden bazıları gösterilmektedir.

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.5/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.5/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.5/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.5/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.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: 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-2.2-cuda12.1@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.16-cuda12@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.

Sonraki adımlar