CLI-opdrachttaak (v2) YAML-schema
VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)
Het JSON-bronschema vindt u op https://azuremlschemas.azureedge.net/latest/commandJob.schema.json.
Notitie
De YAML-syntaxis die in dit document wordt beschreven, is gebaseerd op het JSON-schema voor de nieuwste versie van de ML CLI v2-extensie. Deze syntaxis werkt gegarandeerd alleen met de nieuwste versie van de ML CLI v2-extensie. U vindt de schema's voor oudere extensieversies op https://azuremlschemasprod.azureedge.net/.
YAML-syntaxis
Sleutel | Type | Description | Toegestane waarden | Default value |
---|---|---|---|---|
$schema |
tekenreeks | Het YAML-schema. Als u de Azure Machine Learning VS Code-extensie gebruikt om het YAML-bestand te ontwerpen, inclusief $schema bovenaan het bestand, kunt u schema- en resourcevoltooiingen aanroepen. |
||
type |
Const | Het type taak. | command |
command |
name |
tekenreeks | Naam van de taak. Moet uniek zijn voor alle taken in de werkruimte. Als u dit weglaat, wordt in Azure Machine Learning automatisch een GUID gegenereerd voor de naam. | ||
display_name |
tekenreeks | Weergavenaam van de taak in de gebruikersinterface van studio. Kan niet-zelfstandig zijn binnen de werkruimte. Als u dit weglaat, wordt in Azure Machine Learning automatisch een door mensen leesbare naamwoord-id voor het naamwoord voor de weergavenaam gegenereerd. | ||
experiment_name |
tekenreeks | Experimentnaam om de taak onder te organiseren. De uitvoeringsrecord van elke taak wordt geordend onder het bijbehorende experiment op het tabblad Experimenten van de studio. Als u dit weglaat, wordt deze standaard ingesteld op de naam van de werkmap waarin de taak is gemaakt. | ||
description |
tekenreeks | Beschrijving van de taak. | ||
tags |
object | Woordenlijst met tags voor de taak. | ||
command |
tekenreeks | De opdracht die moet worden uitgevoerd. | ||
code |
tekenreeks | Lokaal pad naar de broncodemap die moet worden geüpload en gebruikt voor de taak. | ||
environment |
tekenreeks of object | De omgeving die moet worden gebruikt voor de taak. Dit kan een verwijzing zijn naar een bestaande versieomgeving in de werkruimte of een inline-omgevingsspecificatie. Als u naar een bestaande omgeving wilt verwijzen, gebruikt u de azureml:<environment_name>:<environment_version> syntaxis of azureml:<environment_name>@latest (om te verwijzen naar de nieuwste versie van een omgeving). Als u een omgeving inline wilt definiëren, volgt u het omgevingsschema. Sluit de name eigenschappen en version eigenschappen uit omdat ze niet worden ondersteund voor inline-omgevingen. |
||
environment_variables |
object | Woordenlijst van sleutel-waardeparen van omgevingsvariabelen die moeten worden ingesteld voor het proces waarin de opdracht wordt uitgevoerd. | ||
distribution |
object | De distributieconfiguratie voor gedistribueerde trainingsscenario's. Een van MpiConfiguration, PyTorchConfiguration of TensorFlowConfiguration. | ||
compute |
tekenreeks | Naam van het rekendoel waarop de taak moet worden uitgevoerd. Dit kan een verwijzing zijn naar een bestaande berekening in de werkruimte (met behulp van de azureml:<compute_name> syntaxis) of local om lokale uitvoering aan te wijzen. Opmerking: taken in de pijplijn bieden geen ondersteuning local voor compute |
local |
|
resources.instance_count |
geheel getal | Het aantal knooppunten dat moet worden gebruikt voor de taak. | 1 |
|
resources.instance_type |
tekenreeks | Het exemplaartype dat moet worden gebruikt voor de taak. Van toepassing op taken die worden uitgevoerd op Kubernetes-rekenkracht met Azure Arc (waarbij het rekendoel dat is opgegeven in het compute veld).type: kubernentes Als u dit weglaat, wordt standaard het standaardexemplarentype voor het Kubernetes-cluster gebruikt. Zie Kubernetes-exemplaartypen maken en selecteren voor meer informatie. |
||
resources.shm_size |
tekenreeks | De grootte van het gedeelde geheugenblok van de Docker-container. Moet de notatie hebben waarin <number><unit> getal groter moet zijn dan 0 en de eenheid kan een van b (bytes), (kilobytes), k m (megabytes) of g (gigabytes) zijn. |
2g |
|
limits.timeout |
geheel getal | De maximale tijd in seconden dat de taak mag worden uitgevoerd. Wanneer deze limiet is bereikt, annuleert het systeem de taak. | ||
inputs |
object | Woordenlijst met invoer voor de taak. De sleutel is een naam voor de invoer binnen de context van de taak en de waarde is de invoerwaarde. In de command ${{ inputs.<input_name> }} expressie kan naar invoer worden verwezen. |
||
inputs.<input_name> |
getal, geheel getal, booleaanse waarde, tekenreeks of object | Een van een letterlijke waarde (van het type getal, geheel getal, booleaanse waarde of tekenreeks) of een object met een specificatie van de invoergegevens van een taak. | ||
outputs |
object | Woordenlijst met uitvoerconfiguraties van de taak. De sleutel is een naam voor de uitvoer binnen de context van de taak en de waarde is de uitvoerconfiguratie. Er kan naar uitvoer worden verwezen in de command expressie ${{ outputs.<output_name> }} . |
||
outputs.<output_name> |
object | U kunt het object leeg laten. In dat geval is de uitvoer standaard van het type uri_folder en genereert Azure Machine Learning een uitvoerlocatie voor de uitvoer. Bestanden naar de uitvoermap worden geschreven via koppeling voor lezen/schrijven. Als u een andere modus voor de uitvoer wilt opgeven, geeft u een object op dat de taakuitvoerspecificatie bevat. |
||
identity |
object | De identiteit wordt gebruikt voor toegang tot gegevens. Dit kan UserIdentityConfiguration, ManagedIdentityConfiguration of None zijn. Als UserIdentityConfiguration wordt de identiteit van de taakaanzender gebruikt voor toegang tot, invoergegevens en schrijfresultaten naar uitvoermap, anders wordt de beheerde identiteit van het rekendoel gebruikt. |
Distributieconfiguraties
MpiConfiguration
Sleutel | Type | Description | Toegestane waarden |
---|---|---|---|
type |
Const | Vereist. Distributietype. | mpi |
process_count_per_instance |
geheel getal | Vereist. Het aantal processen per knooppunt dat moet worden gestart voor de taak. |
PyTorchConfiguration
Sleutel | Type | Description | Toegestane waarden | Default value |
---|---|---|---|---|
type |
Const | Vereist. Distributietype. | pytorch |
|
process_count_per_instance |
geheel getal | Het aantal processen per knooppunt dat moet worden gestart voor de taak. | 1 |
TensorFlowConfiguration
Sleutel | Type | Description | Toegestane waarden | Default value |
---|---|---|---|---|
type |
Const | Vereist. Distributietype. | tensorflow |
|
worker_count |
geheel getal | Het aantal werknemers dat voor de taak moet worden gestart. | Standaard ingesteld op resources.instance_count . |
|
parameter_server_count |
geheel getal | Het aantal parameterservers dat moet worden gestart voor de taak. | 0 |
Taakinvoer
Sleutel | Type | Description | Toegestane waarden | Default value |
---|---|---|---|---|
type |
tekenreeks | Het type taakinvoer. Geef uri_file op voor invoergegevens die naar één bestandsbron verwijst of uri_folder voor invoergegevens die naar een mapbron verwijst. |
uri_file , , , uri_folder mlflow_model custom_model |
uri_folder |
path |
tekenreeks | Het pad naar de gegevens die moeten worden gebruikt als invoer. Kan op een aantal manieren worden opgegeven: - Een lokaal pad naar het gegevensbestand of de map, bijvoorbeeld path: ./iris.csv . De gegevens worden geüpload tijdens het verzenden van taken. - Een URI van een cloudpad naar het bestand of de map die moet worden gebruikt als invoer. Ondersteunde URI-typen zijn azureml , https , wasbs , , abfss . adl Zie de yaml-syntaxis van core voor meer informatie over het gebruik van de azureml:// URI-indeling. - Een bestaand geregistreerd Azure Machine Learning-gegevensasset dat moet worden gebruikt als invoer. Als u wilt verwijzen naar een geregistreerde gegevensasset, gebruikt u de azureml:<data_name>:<data_version> syntaxis of azureml:<data_name>@latest (om te verwijzen naar de nieuwste versie van die gegevensasset), bijvoorbeeld path: azureml:cifar10-data:1 of path: azureml:cifar10-data@latest . |
||
mode |
tekenreeks | Modus van hoe de gegevens moeten worden geleverd aan het rekendoel. Voor alleen-lezenkoppeling ( ro_mount ) worden de gegevens gebruikt als koppelpad. Een map wordt gekoppeld als een map en een bestand wordt gekoppeld als een bestand. Azure Machine Learning lost de invoer voor het koppelpad op. Voor download de modus worden de gegevens gedownload naar het rekendoel. Azure Machine Learning lost de invoer op naar het gedownloade pad. Als u alleen de URL van de opslaglocatie van de gegevensartefacten wilt gebruiken in plaats van de gegevens zelf te koppelen of te downloaden, kunt u de direct modus gebruiken. Deze modus geeft de URL van de opslaglocatie door als de taakinvoer. In dit geval bent u volledig verantwoordelijk voor het afhandelen van referenties voor toegang tot de opslag. De eval_mount en eval_download modi zijn uniek voor MLTable en koppelen de gegevens als pad of downloadt de gegevens naar het rekendoel. Zie Access-gegevens in een taak voor meer informatie over modi |
ro_mount direct , download , eval_download eval_mount |
ro_mount |
Taakuitvoer
Sleutel | Type | Description | Toegestane waarden | Default value |
---|---|---|---|---|
type |
tekenreeks | Het type taakuitvoer. Voor het standaardtype uri_folder komt de uitvoer overeen met een map. |
uri_folder , , mlflow_model custom_model |
uri_folder |
mode |
tekenreeks | Modus van hoe uitvoerbestanden worden geleverd aan de doelopslag. Voor de koppelingsmodus lezen/schrijven (rw_mount ) is de uitvoermap een gekoppelde map. Voor de uploadmodus worden de bestanden die zijn geschreven, geüpload aan het einde van de taak. |
rw_mount , upload |
rw_mount |
Identiteitsconfiguraties
UserIdentityConfiguration
Sleutel | Type | Description | Toegestane waarden |
---|---|---|---|
type |
Const | Vereist. Identiteitstype. | user_identity |
ManagedIdentityConfiguration
Sleutel | Type | Description | Toegestane waarden |
---|---|---|---|
type |
Const | Vereist. Identiteitstype. | managed of managed_identity |
Opmerkingen
De az ml job
opdracht kan worden gebruikt voor het beheren van Azure Machine Learning-taken.
Voorbeelden
Voorbeelden zijn beschikbaar in de GitHub-voorbeeldenopslagplaats. In de volgende secties ziet u enkele voorbeelden.
YAML: hallo wereld
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world"
environment:
image: library/python:latest
YAML: weergavenaam, experimentnaam, beschrijving en tags
$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: omgevingsvariabelen
$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: broncode
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: ls
code: src
environment:
image: library/python:latest
YAML: letterlijke invoer
$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: schrijven naar standaarduitvoer
$schema: https://azuremlschemas.azureedge.net/latest/commandJob.schema.json
command: echo "hello world" > ./outputs/helloworld.txt
environment:
image: library/python:latest
YAML: schrijven naar benoemde gegevensuitvoer
$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: invoer van gegevensarchief-URI-bestand
$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: URI-mapinvoer voor gegevensopslag
$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-bestandsinvoer
$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-mapinvoer
$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: Notebook via papermill
$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: basistraining voor Python-modellen
$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: eenvoudige R-modeltraining met lokale Docker-buildcontext
$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: gedistribueerde 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: gedistribueerde 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.