Schéma YAML du travail de pipeline CLI (v2)
S’APPLIQUE À : Extension ml Azure CLI v2 (actuelle)
Vous trouverez le schéma JSON source à l’adresse https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json.
Remarque
La syntaxe YAML détaillée dans ce document est basée sur le schéma JSON pour la dernière version de l’extension ML CLI v2. Le fonctionnement de cette syntaxe est garanti uniquement avec la dernière version de l’extension ML CLI v2. Vous trouverez les schémas des versions d’extension plus anciennes sur https://azuremlschemasprod.azureedge.net/.
Syntaxe YAML
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
$schema |
string | Schéma YAML. Si vous utilisez l’extension VS Code d’Azure Machine Learning pour créer le fichier YAML, vous pouvez appeler des achèvements de schéma et de ressource si vous ajoutez $schema en haut de votre fichier. |
||
type |
const | Obligatoire. Le type de travail. | pipeline |
|
name |
string | Nom du travail. Doit être unique pour tous les travaux de l’espace de travail. En cas d’omission, Azure Machine Learning génère automatiquement un GUID pour le nom. | ||
display_name |
string | Nom complet du travail dans l’interface utilisateur de Studio. Peut être non unique dans l’espace de travail. S’il est omis, Azure Machine Learning génère automatiquement un identificateur adjectif-nom lisible pour le nom d’affichage. | ||
experiment_name |
string | Organisez le travail sous le nom de l’expérience. L’enregistrement d’exécution de chaque travail est organisé sous l’expérience correspondante, sous l’onglet « Expériences » du Studio. S’il est omis, Azure Machine Learning prend experiment_name par défaut le nom du répertoire de travail où le travail a été créé. |
||
tags |
object | Dictionnaire d’étiquettes pour le travail. | ||
settings |
object | Paramètres par défaut pour le travail de pipeline. Visitez les attributs de la settings clé pour l’ensemble de propriétés configurables. |
||
jobs |
object | Obligatoire. Dictionnaire de l’ensemble des tâches individuelles à exécuter en tant qu’étapes dans le pipeline. Ces tâches sont considérées comme des tâches enfants du travail de pipeline parent. La clé est le nom de l’étape dans le contexte du travail de pipeline. Ce nom diffère du nom unique du travail enfant. La valeur est la spécification du travail, qui peut suivre le schéma du travail de commande ou le schéma du travail de balayage. Actuellement, seuls les travaux de commande et les travaux de balayage peuvent être exécutés dans un pipeline. Les versions ultérieures prendront en charge d’autres types de travaux. |
||
inputs |
object | Dictionnaire d’entrées du travail de pipeline. La clé est un nom pour l’entrée dans le contexte du travail. La valeur est la valeur d’entrée. Les entrées d’un travail d’étape individuel dans le pipeline peuvent référencer ces entrées de pipeline avec l’expression ${{ parent.inputs.<input_name> }} . Pour plus d’informations sur la liaison des entrées d’une étape de pipeline aux entrées du travail de pipeline de niveau supérieur, consultez la syntaxe d’expression pour les entrées de liaison et les sorties entre les étapes d’un travail de pipeline. |
||
inputs.<input_name> |
nombre, entier, booléen, chaîne ou objet | Une valeur littérale (de type nombre, entier, booléen ou chaîne) ou un objet contenant une spécification de données d’entrée de travail. | ||
outputs |
object | Dictionnaire des configurations de sortie du travail de pipeline. La clé est un nom pour la sortie dans le contexte du travail. La valeur est la configuration de sortie. Les sorties d’une tâche d’étape individuelle dans le pipeline peuvent référencer ces sorties de pipeline avec l’expression ${{ parents.outputs.<output_name> }} . Pour plus d’informations sur la liaison des sorties d’une étape de pipeline aux sorties du travail de pipeline de niveau supérieur, consultez la syntaxe Expression pour les entrées de liaison et les sorties entre les étapes d’un travail de pipeline. |
||
outputs.<output_name> |
object | Vous pouvez laisser l’objet vide. Dans ce cas, par défaut, la sortie sera de type uri_folder , et Azure Machine Learning générera un emplacement de sortie pour la sortie en fonction de ce chemin templaté : {settings.datastore}/azureml/{job-name}/{output-name}/ . Les fichiers dans le répertoire de sortie sont écrits via un montage en lecture-écriture. Pour spécifier un mode de sortie différent, fournissez un objet qui contient la spécification de sortie du travail. |
||
identity |
object | L’identité est utilisée pour l’accès aux données. Il peut s’agir de UserIdentityConfiguration, ManagedIdentityConfiguration ou None. S’il s’agit de UserIdentityConfiguration, l’identité du formateur de travaux sera utilisée pour accéder aux données d’entrée et écrire le résultat dans le dossier de sortie, sinon l’identité managée de la cible de calcul sera utilisée. |
Attributs de la clé settings
Clé | Type | Description | Valeur par défaut |
---|---|---|---|
default_datastore |
string | Nom du magasin de données à utiliser comme magasin de données par défaut pour le travail de pipeline. Cette valeur doit être une référence à un magasin de données existant dans l’espace de travail, à l’aide de la azureml:<datastore-name> syntaxe. Toutes les sorties définies dans la outputs propriété du travail de pipeline parent ou des travaux d’étape enfant sont stockées dans ce magasin de données. En cas d’omission, les sorties sont stockées dans le magasin de données blob de l’espace de travail. |
|
default_compute |
string | Nom de la cible de calcul à utiliser comme calcul par défaut pour toutes les étapes du pipeline. Le calcul défini au niveau de l’étape remplace ce calcul par défaut pour cette étape spécifique. La default_compute valeur doit être une référence à un calcul existant dans l’espace de travail, à l’aide de la azureml:<compute-name> syntaxe. |
|
continue_on_step_failure |
booléen | Ce paramètre détermine le comportement en cas d’échec d’une étape du pipeline. Par défaut, l’exécution du pipeline continue après l’échec d’une étape. Cela signifie que toutes les étapes qui ne dépendent pas de l’étape ayant échoué s’exécutent toujours. Toutefois, si vous remplacez ce paramètre par False, l’intégralité du pipeline cesse d’être en cours d’exécution et toutes les étapes en cours d’exécution sont annulées en cas d’échec d’une étape. | True |
force_rerun |
booléen | Indique s’il faut forcer la réexécution de l’ensemble du pipeline. La valeur par défaut est False . Cela signifie que par défaut, le pipeline tente de réutiliser la sortie du travail précédent s’il répond aux critères de réutilisation. Si la valeur est définie sur True , toutes les étapes du pipeline sont réexécutées. |
False |
Entrées du travail
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
type |
string | Le type d’entrée de travail. Spécifiez uri_file pour les données d’entrée qui pointent vers une source de fichier unique, ou uri_folder pour les données d’entrée qui pointent vers une source de dossier. Pour plus d’informations, consultez En savoir plus sur l’accès aux données. |
uri_file , , uri_folder mltable , ,mlflow_model |
uri_folder |
path |
string | Le chemin vers les données à utiliser comme entrée. Cela peut être spécifié de plusieurs façons : - Chemin d’accès local au fichier ou dossier de source de données, par exemple path: ./iris.csv . Les données sont chargées pendant l’envoi du travail. - URI d’un chemin d’accès cloud au fichier ou dossier à utiliser comme entrée. Les types d’URI pris en charge sont azureml , https , wasbs , abfss et adl . Pour plus d’informations sur l’utilisation du azureml:// format URI, consultez la syntaxe yaml Core. - Une ressource de données Azure Machine Learning inscrite existante à utiliser comme entrée. Pour référencer une ressource de données inscrite, utilisez la azureml:<data_name>:<data_version> syntaxe ou azureml:<data_name>@latest (pour référencer la dernière version de cette ressource de données), par exemple path: azureml:cifar10-data:1 ou path: azureml:cifar10-data@latest . |
||
mode |
string | Mode de remise des données à la cible de calcul. Pour un montage en lecture seule ( ro_mount ), les données sont consommées en tant que chemin de montage. Un dossier est monté en tant que dossier et un fichier est monté en tant que fichier. Azure Machine Learning résout l’entrée vers le chemin de montage. Pour download le mode, les données sont téléchargées sur la cible de calcul. Azure Machine Learning résout l’entrée vers le chemin téléchargé. Pour simplement l’URL de l’emplacement de stockage de l’artefact de données ou des artefacts, au lieu de monter ou de télécharger les données proprement dites, utilisez le direct mode. Cela passe l’URL de l’emplacement de stockage en tant qu’entrée de travail. Dans ce cas, vous êtes entièrement responsable de la gestion des informations d’identification pour accéder au stockage. |
ro_mount , , download direct |
ro_mount |
Sorties du travail
Clé | Type | Description | Valeurs autorisées | Valeur par défaut |
---|---|---|---|---|
type |
string | Type de sortie du travail. Pour le type uri_folder par défaut, la sortie correspond à un dossier. |
uri_file , , uri_folder mltable , ,mlflow_model |
uri_folder |
mode |
string | Mode de remise du fichier de sortie ou des fichiers au stockage de destination. Pour le mode de montage en lecture-écriture (rw_mount ), le répertoire de sortie est un répertoire monté. Pour le mode de chargement, le ou les fichiers écrits sont chargés à la fin du travail. |
rw_mount , upload |
rw_mount |
Configurations d’identité
UserIdentityConfiguration
Clé | Type | Description | Valeurs autorisées |
---|---|---|---|
type |
const | Obligatoire. Type d’identité. | user_identity |
ManagedIdentityConfiguration
Clé | Type | Description | Valeurs autorisées |
---|---|---|---|
type |
const | Obligatoire. Type d’identité. | managed ou managed_identity |
Notes
Vous pouvez utiliser la az ml job
commande pour gérer les travaux Azure Machine Learning.
Exemples
Consultez les exemples de référentiel GitHub pour obtenir des exemples. Vous en trouverez plusieurs ici :
YAML : pipeline Hello
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
hello_job:
command: echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
world_job:
command: echo "world"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
YAML : dépendance d’entrée/de sortie
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
hello_job:
command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
outputs:
world_output:
world_job:
command: cat ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
inputs:
world_input: ${{parent.jobs.hello_job.outputs.world_output}}
YAML : paramètres courants du travail de pipeline
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_settings
settings:
default_datastore: azureml:workspaceblobstore
default_compute: azureml:cpu-cluster
jobs:
hello_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
world_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML : entrée de niveau supérieur et remplacement des paramètres de travail de pipeline courants
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
default_compute: azureml:cpu-cluster
inputs:
hello_string_top_level_input: "hello world"
jobs:
a:
command: echo hello ${{inputs.hello_string}}
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
hello_string: ${{parent.inputs.hello_string_top_level_input}}
b:
command: echo "world" >> ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
outputs:
world_output:
c:
command: echo ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
world_input: ${{parent.jobs.b.outputs.world_output}}