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: kubernentes kö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_model custom_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ők azureml : , https , wasbs , abfss adl . 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ás ro_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_download eval_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_model custom_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.