Megosztás a következőn keresztül:


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

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

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

Feljegyzés

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 https://azuremlschemasprod.azureedge.net/találja: .

YAML-szintaxis

Kulcs Típus Leírás Megengedett értékek Alapértelmezett érték
$schema húr 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 az erőforrás-kiegészítések meghívását.
type Const A feladat típusa. command command
name húr 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 húr A feladat megjelenítendő neve a stúdió felhasználói felületén. A munkaterületen belül nem alkalmazható. Ha nincs megadva, az Azure Machine Learning automatikusan létrehoz egy emberi olvasásra alkalmas melléknév-főnév azonosítót a megjelenítendő névhez.
experiment_name húr Kísérlet neve a feladat rendszerezéséhez. Az egyes feladatok futási rekordja a megfelelő kísérlet alatt van 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, ahol a feladatot létrehozták.
description húr A feladat leírása.
tags object A feladat címkéinek szótára.
command húr A végrehajtandó parancs.
code húr A feladathoz feltölteni és használni kívánt forráskódkönyvtár helyi elérési útja.
environment sztring vagy objektum A feladathoz használni kívánt környezet. Hivatkozhat a munkaterület meglévő verziójú környezetére, vagy egy beágyazott környezeti specifikációra.

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 name tulajdonságokat, version 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 terjesztési konfigurációja. Az MpiConfiguration, a PyTorchConfiguration vagy a TensorFlowConfiguration egyike.
compute húr A feladat végrehajtásához a számítási cél neve. Hivatkozhat egy meglévő számítási feladatra a munkaterületen (a szintaxis használatával), vagy local kijelölheti a azureml:<compute_name> helyi végrehajtást. 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 húr A feladathoz használandó példánytípus. Az Azure Arc-kompatibilis Kubernetes-számításon futó feladatokra alkalmazható (ahol a mezőben megadott compute számítási cél a type: kubernenteskövetkező). Ha nincs megadva, 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 húr A Docker-tároló megosztott memóriablokkjának mérete. 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), k (kilobájt), m (megabájt) vagy g (gigabájt). 2g
limits.timeout egész szám A feladat futtatásának maximális időtartama másodpercben. Ha eléri ezt a korlátot, a rendszer megszakítja a feladatot.
inputs object A feladat bemeneteinek szótára. A kulcs a feladat környezetében lévő bemenet neve, az érték pedig a bemeneti érték.

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

A kimenetekre a command kifejezés használatával ${{ outputs.<output_name> }} hivatkozhat.
outputs.<output_name> object Üresen hagyhatja az objektumot, amely esetben alapértelmezés szerint a kimenet típusa uri_folder , és az Azure Machine Learning létrehoz egy kimeneti helyet a kimenethez. A kimeneti könyvtárba beírt fájlok írási-olvasási csatlakoztatáson keresztül lesznek megírva. Ha másik 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 adathozzáféréshez használatos. Ez lehet UserIdentityConfiguration, ManagedIdentityConfiguration vagy None. A UserIdentityConfiguration esetén a feladat-beküldő identitása a kimeneti mappába való hozzáférésre, adatok bevitelére és az eredmények írására szolgál, ellenkező esetben a számítási cél felügyelt identitását használja a rendszer.

Terjesztési konfigurációk

MpiConfiguration

Kulcs Típus Leírás Megengedett értékek
type Const Szükséges. Terjesztési típus. mpi
process_count_per_instance egész szám Szükséges. A feladathoz elindítandó csomópontonkénti folyamatok száma.

PyTorchConfiguration

Kulcs Típus Leírás Megengedett értékek Alapértelmezett érték
type Const Szükséges. 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 Leírás Megengedett értékek Alapértelmezett érték
type Const Szükséges. Terjesztési típus. tensorflow
worker_count egész szám A feladathoz elindítandó dolgozók száma. Alapértelmezett érték: 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 Leírás Megengedett értékek Alapértelmezett érték
type húr A feladatbemenet típusa. Adja meg uri_file az egyetlen fájlforrásra ható bemeneti adatokat, illetve uri_folder a mappaforrásra ható bemeneti adatokat. uri_file, uri_folder, mlflow_modelcustom_model uri_folder
path húr A bemenetként használni kívánt adatok elérési útja. 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 lesz.

- A bemenetként használni kívánt fájl vagy mappa felhőbeli elérési útjának URI-ja. A támogatott URI-típusok a következőkazureml: , https, wasbs, abfssadl. Az URI-formátum használatáról további információt a Core yaml szintaxisában azureml:// talál.

– Meglévő regisztrált Azure Machine Learning-adategység bemenetként való használatához. 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:1 path: azureml:cifar10-data@latest.
mode húr Az adatok számítási célba való kézbesítésének módja.

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

Mód esetén download az adatok a számítási célra lesznek letöltve. Az Azure Machine Learning feloldja a letöltött elérési út 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 mód a feladat bemeneteként a tárolási hely URL-címében halad át. 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 mód és eval_download a mód egyedi az MLTable-hoz, és vagy útvonalké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-adatok egy feladatban
ro_mount, download, direct, eval_downloadeval_mount ro_mount

Feladatkimenetek

Kulcs Típus Leírás Megengedett értékek Alapértelmezett érték
type húr 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_modelcustom_model uri_folder
mode húr 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 egy csatlakoztatott könyvtár. Feltöltési mód esetén az írott fájlok a feladat végén lesznek feltöltve. rw_mount, upload rw_mount

Identitáskonfigurációk

UserIdentityConfiguration

Kulcs Típus Leírás Megengedett értékek
type Const Szükséges. Identitástípus. user_identity

ManagedIdentityConfiguration

Kulcs Típus Leírás Megengedett értékek
type Const Szükséges. 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ábbi szakaszok néhány példát mutatnak be.

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ása és címkéi

$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.5/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.5/labels/latest

YAML: URI-fájlbemenet

$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-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.5/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.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: 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-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: 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.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.

Következő lépések