Schéma YAML du travail de pipeline CLI (v2)

S’APPLIQUE À :Extension Azure CLI ml v2 (actuel)

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. En cas d’omission, Azure Machine Apprentissage est experiment_name défini par défaut sur 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 typeuri_folder, et Azure Machine Apprentissage 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’accès aux données utilise l’identité. Il peut s’agir de la configuration de l’identité utilisateur, de la configuration de l’identité managée ou de none. Pour UserIdentityConfiguration, l’identité du formateur de travaux est utilisée pour accéder aux données d’entrée et écrire le résultat dans le dossier de sortie. Sinon, UserIdentityConfiguration utilise l’identité managée de la cible de calcul.

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_foldermltable, ,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 Apprentissage 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 Apprentissage 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, , downloaddirect 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_foldermltable, ,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 Apprentissage.

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.0/labels/latest
    compute: azureml:cpu-cluster
  world_job:
    command: echo "world"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/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.0/labels/latest
  world_job:
    command: echo 202204190 & echo "hello"
    environment: azureml://registries/azureml/environments/sklearn-1.0/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.0/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.0/labels/latest
    outputs:
      world_output:
  c:
    command: echo ${{inputs.world_input}}/world.txt
    environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
    inputs:
      world_input: ${{parent.jobs.b.outputs.world_output}}

Étapes suivantes