PARANCSSORI (v2) parancsfeladat YAML-sémája

A KÖVETKEZŐKRE VONATKOZIK:Azure CLI ml-bővítmény v2 (aktuális)

A forrás JSON-séma a következő helyen található: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.

Megjegyzés

Az ebben a dokumentumban részletezett YAML-szintaxis az ML CLI v2 bővítmény legújabb verziójának JSON-sémáján alapul. Ez a szintaxis garantáltan csak az ML CLI v2 bővítmény legújabb verziójával működik. A régebbi bővítményverziók sémáit a következő helyen találja: https://azuremlschemasprod.azureedge.net/.

YAML-szintaxis

Kulcs Típus Description Megengedett értékek Alapértelmezett érték
$schema sztring A YAML-séma. Ha az Azure Machine Learning VS Code-bővítményt használja a YAML-fájl létrehozásához, a fájl tetején is $schema lehetővé teszi a séma- és erőforrás-kiegészítések meghívását.
type Const A feladat típusa. command command
name sztring A feladat neve. A munkaterület összes feladatának egyedinek kell lennie. Ha nincs megadva, az Azure Machine Learning automatikusan létrehoz egy GUID azonosítót a névhez.
display_name sztring A feladat megjelenítendő neve a studio felhasználói felületén. A munkaterületen belül nem egyedi lehet. Ha nem adja meg, az Azure Machine Learning automatikusan létrehozza a megjelenítendő névhez tartozó, olvasható melléknev-főnév azonosítót.
experiment_name sztring Kísérlet neve a feladat rendszerezéséhez. Minden feladat futtatási rekordja a megfelelő kísérlet alatt lesz rendszerezve a stúdió "Kísérletek" lapján. Ha nincs megadva, az Azure Machine Learning alapértelmezés szerint annak a munkakönyvtárnak a nevére adja meg, amelyben a feladat létre lett hozva.
description sztring A feladat leírása.
tags object A feladat címkéinek szótára.
command sztring Kötelező (ha nem használ component mezőt). A végrehajtandó parancs.
code sztring A feladathoz feltöltendő és használt forráskódkönyvtár helyi elérési útja.
environment sztring vagy objektum Kötelező (ha nem használ component mezőt). A feladathoz használni kívánt környezet. Ez lehet a munkaterület egy meglévő verziójú környezetére való hivatkozás, vagy egy beágyazott környezeti specifikáció.

Meglévő környezetre való hivatkozáshoz használja a azureml:<environment_name>:<environment_version> szintaxist vagy azureml:<environment_name>@latest (a környezet legújabb verziójára való hivatkozáshoz).

A környezet beágyazott definiálásához kövesse a Környezeti sémát. Zárja ki a és version a name tulajdonságot, mert beágyazott környezetekben nem támogatottak.
environment_variables object A környezeti változó kulcs-érték párjainak szótára a parancs végrehajtásának folyamatához.
distribution object Az elosztott betanítási forgatókönyvek disztribúciós konfigurációja. Az mpiConfiguration, a PyTorchConfiguration vagy a TensorFlowConfiguration egyikét.
compute sztring Annak a számítási célnak a neve, amelyen a feladatot végre szeretné hajtani. Ez lehet egy hivatkozás a munkaterület egy meglévő számítására (a azureml:<compute_name> szintaxis használatával), vagy local a helyi végrehajtás kijelölésére. Megjegyzés: a folyamatban lévő feladatok nem támogatták local a következőt: compute local
resources.instance_count egész szám A feladathoz használandó csomópontok száma. 1
resources.instance_type sztring A feladathoz használandó példánytípus. Az Azure Arc-kompatibilis Kubernetes-számításon futó feladatokra vonatkozik (ahol a compute mezőben megadott számítási cél a type: kubernenteskövetkező: ). Ha nincs megadva, ez alapértelmezés szerint a Kubernetes-fürt alapértelmezett példánytípusa lesz. További információ: Kubernetes-példánytípusok létrehozása és kiválasztása.
resources.shm_size sztring A Docker-tároló megosztott memóriablokkjának mérete. Ennek olyan formátumban <number><unit> kell lennie, ahol a számnak 0-nál nagyobbnak kell lennie, és az egység lehet az egyik b (bájt), (kilobájt), km (megabájt) vagy g (gigabájt). 2g
limits.timeout egész szám A feladat futásának maximális időtartama másodpercben. A korlát elérése után a rendszer megszakítja a feladatot.
inputs object A feladat bemeneteinek szótára. A kulcs a bemenet neve a feladat környezetében, az érték pedig a bemeneti érték.

A bemenetekre a command kifejezés használatával ${{ inputs.<input_name> }} hivatkozhat.
inputs.<input_name> szám, egész szám, logikai érték, sztring vagy objektum Egy literális érték (szám, egész szám, logikai vagy sztring típusú) vagy egy feladatbemeneti adatspecifikációt tartalmazó objektum.
outputs object A feladat kimeneti konfigurációinak szótára. A kulcs a kimenet neve a feladat környezetében, az érték pedig a kimeneti konfiguráció.

A kimenetekre a kifejezés használatával ${{ outputs.<output_name> }} hivatkozhatcommand.
outputs.<output_name> object Az objektumot üresen hagyhatja, ebben az esetben a kimenet alapértelmezés szerint típusú uri_folder lesz, és az Azure Machine Learning rendszer által generál egy kimeneti helyet a kimenethez. A kimeneti könyvtárba írt fájl(ok) írásvédett csatlakoztatással lesznek megírva. Ha más módot szeretne megadni a kimenethez, adjon meg egy objektumot, amely tartalmazza a feladat kimeneti specifikációját.
identity object Az identitás az adatok elérésére szolgál. Ez lehet UserIdentityConfiguration, ManagedIdentityConfiguration vagy None. UserIdentityConfiguration esetén a rendszer a feladat-küldő identitását használja a bemeneti adatok eléréséhez és az eredmények kimeneti mappába való írásához, ellenkező esetben a számítási cél felügyelt identitását fogja használni.

Terjesztési konfigurációk

MpiConfiguration

Kulcs Típus Description Megengedett értékek
type Const Kötelező. Elosztás típusa. mpi
process_count_per_instance egész szám Kötelező. A feladathoz elindítandó csomópontonkénti folyamatok száma.

PyTorchConfiguration

Kulcs Típus Description Megengedett értékek Alapértelmezett érték
type Const Kötelező. Terjesztési típus. pytorch
process_count_per_instance egész szám A feladathoz elindítandó csomópontonkénti folyamatok száma. 1

TensorFlowConfiguration

Kulcs Típus Description Megengedett értékek Alapértelmezett érték
type Const Kötelező. Terjesztési típus. tensorflow
worker_count egész szám A feladathoz elindítandó feldolgozók száma. Alapértelmezés szerint a értékre van kapcsolva resources.instance_count.
parameter_server_count egész szám A feladathoz elindítandó paraméterkiszolgálók száma. 0

Feladatbemenetek

Kulcs Típus Description Megengedett értékek Alapértelmezett érték
type sztring A feladat bemenetének típusa. Adja meg uri_file azokat a bemeneti adatokat, amelyek egyetlen fájlforrásra mutatnak, vagy uri_folder olyan bemeneti adatokat, amelyek egy mappaforrásra mutatnak. uri_file, uri_folder, mlflow_model, custom_model uri_folder
path sztring A bemenetként használni kívánt adatok elérési útja. Ez többféleképpen is megadható:

– Az adatforrásfájl vagy -mappa helyi elérési útja, például. path: ./iris.csv Az adatok feltöltése a feladat elküldése során fog befejeződni.

– Egy felhőbeli elérési út URI-ja a bemenetként használni kívánt fájlhoz vagy mappához. A támogatott URI-típusok a következőkazureml: , https, wasbs, abfss, . adl Az URI-formátum használatáról további információt a Core yaml szintaxisábanazureml:// talál.

– Egy meglévő regisztrált Azure Machine Learning-adategység, amelyet bemenetként használhat. Regisztrált adategységre való hivatkozáshoz használja a azureml:<data_name>:<data_version> szintaxist vagy azureml:<data_name>@latest (az adategység legújabb verziójára való hivatkozáshoz), például vagy path: azureml:cifar10-data@latest. path: azureml:cifar10-data:1
mode sztring Az adatok számítási célba való kézbesítésének módja.

Írásvédett csatlakoztatás (ro_mount) esetén az adatok csatlakoztatási útvonalként lesznek felhasználva. A mappa mappaként lesz csatlakoztatva, a fájl pedig fájlként lesz csatlakoztatva. Az Azure Machine Learning feloldja a csatlakoztatási útvonal bemenetét.

A módhoz download az adatok a számítási célhoz lesznek letöltve. Az Azure Machine Learning feloldja a letöltött útvonal bemenetét.

Ha az adatok csatlakoztatása vagy letöltése helyett csak az adatösszetevő(k) tárolási helyének URL-címét szeretné használni, használhatja a direct módot. Ez a feladat bemeneteként adja meg a tárolási hely URL-címét. Vegye figyelembe, hogy ebben az esetben teljes mértékben Ön a felelős a tárhoz való hozzáféréshez szükséges hitelesítő adatok kezeléséért.

A eval_mount és eval_download a mód egyedi az MLTable esetében, és vagy elérési útként csatlakoztatja az adatokat, vagy letölti az adatokat a számítási célhoz.

További információ a módokról: Access data in a job
ro_mount, download, direct, eval_download, eval_mount ro_mount

Feladatkimenetek

Kulcs Típus Description Megengedett értékek Alapértelmezett érték
type sztring A feladat kimenetének típusa. Az alapértelmezett uri_folder típus esetében a kimenet egy mappának felel meg. uri_folder , mlflow_model, custom_model uri_folder
mode sztring A kimeneti fájlok céltárolóba való kézbesítésének módja. Olvasási-írási csatlakoztatási mód (rw_mount) esetén a kimeneti könyvtár csatlakoztatott könyvtár lesz. Feltöltési mód esetén az írt fájl(ok) a feladat végén lesznek feltöltve. rw_mount, upload rw_mount

Identitáskonfigurációk

UserIdentityConfiguration

Kulcs Típus Description Megengedett értékek
type Const Kötelező. Identitástípus. user_identity

ManagedIdentityConfiguration

Kulcs Típus Description Megengedett értékek
type Const Kötelező. Identitástípus. managed vagy managed_identity

Megjegyzések

A az ml job parancs az Azure Machine Learning-feladatok kezelésére használható.

Példák

A példák a GitHub-adattárban érhetők el. Az alábbiakban több is látható.

YAML: hello world

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

YAML: megjelenítendő név, kísérlet neve, leírás és címkék

$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: környezeti változók

$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: forráskód

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

YAML: literális bemenetek

$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: írás alapértelmezett kimenetekre

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

YAML: írás nevesített adatkimenetbe

$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: adattár URI-fájlbemenete

$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: adattár URI-mappa bemenete

$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-fájl bemenete

$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-mappa bemenete

$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: Jegyzetfüzet papírmalomon keresztül

$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: alapszintű Python-modell betanítása

$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: alapszintű R-modell betanítása helyi Docker-buildkörnyezettel

$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: elosztott 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: elosztott 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: elosztott 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: 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.

Következő lépések