Pipeline Classe

Représente une collection d’étapes qui peuvent être exécutées en tant que workflow Azure Machine Learning réutilisable.

Utilisez un pipeline pour créer et gérer des workflows qui combinent les différentes phases de Machine Learning. Chaque phase de Machine Learning, comme la préparation des données et la formation du modèle, peut inclure une ou plusieurs étapes d’un pipeline.

Pour savoir quand et pourquoi utiliser les pipelines, consultez https://aka.ms/pl-concept.

Pour obtenir une vue d’ensemble de la construction d’un pipeline, consultez https://aka.ms/pl-first-pipeline.

Initialiser le pipeline.

Héritage
builtins.object
Pipeline

Constructeur

Pipeline(workspace, steps, description=None, default_datastore=None, default_source_directory=None, resolve_closure=True, _workflow_provider=None, _service_endpoint=None, **kwargs)

Paramètres

workspace
Workspace
Obligatoire

Espace de travail sur lequel envoyer le pipeline.

steps
list
Obligatoire

Liste des étapes à exécuter dans le cadre d’un pipeline.

description
str
Obligatoire

Description du pipeline.

default_datastore
AbstractAzureStorageDatastore ou AzureDataLakeDatastore
Obligatoire

Magasin de données par défaut à utiliser pour les connexions de données.

default_source_directory
str
Obligatoire

Le répertoire de script par défaut pour les étapes qui exécutent un script.

resolve_closure
bool
Obligatoire

Indique s’il faut résoudre la fermeture ou non (placer automatiquement les étapes dépendantes).

workspace
Workspace
Obligatoire

Espace de travail sur lequel envoyer le pipeline.

steps
list
Obligatoire

Liste des étapes à exécuter dans le cadre d’un pipeline.

description
str
Obligatoire

Description du pipeline.

default_datastore
AbstractAzureStorageDatastore ou AzureDataLakeDatastore
Obligatoire

Magasin de données par défaut à utiliser pour les connexions de données.

default_source_directory
str
Obligatoire

Le répertoire de script par défaut pour les étapes qui exécutent un script.

resolve_closure
bool
Obligatoire

Indique si la fermeture est résolue ou non (apportez automatiquement des étapes dépendantes).

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
Obligatoire

Fournisseur de flux de travail, si aucun n’est créé.

_service_endpoint
str
Obligatoire

Point de terminaison de service, si aucun est déterminé à l’aide de l’espace de travail.

kwargs
dict
Obligatoire

Arguments de mot clé personnalisés, réservés à des fins de développement futur

Remarques

Un pipeline est créé avec une liste d’étapes et un espace de travail. Il existe un certain nombre de types d’étapes qui peuvent être utilisés dans un pipeline. Vous allez sélectionner le type d’étape en fonction de votre scénario Machine Learning.

  • Azure Machine Learning Pipelines fournit des étapes intégrées pour les scénarios courants. Les étapes prédéfinies dérivées de PipelineStep sont des étapes utilisées dans un pipeline. Pour obtenir des exemples, consultez le package steps et la classe AutoMLStep.

  • Si vous utilisez des appels de flux de travail Machine Learning pour créer des étapes qui peuvent être versionnées et utilisées sur différents pipelines, utilisez la fonctionnalité dans le module Module.

Envoyer un pipeline avec submit. Lorsque l’envoi est appelé, un PipelineRun est créé, qui crée à son tour des objets StepRun pour chaque étape du flux de travail. Utilisez ces objets pour superviser l’exécution.

Voici un exemple d’envoi de pipeline :


   from azureml.pipeline.core import Pipeline

   pipeline = Pipeline(workspace=ws, steps=steps)
   pipeline_run = experiment.submit(pipeline)

Il existe un certain nombre de paramètres facultatifs pour un pipeline qui peuvent être spécifiés lors de l’envoi dans le submit.

  • continue_on_step_failure : indique s’il faut continuer l’exécution du pipeline en cas d’échec d’une étape ; la valeur par défaut est False. Si la valeur est True, seules les étapes qui n’ont aucune dépendance sur la sortie de l’étape qui a échoué continuent à s’exécuter.

  • regenerate_outputs : indique s’il faut forcer la régénération de toutes les sorties d’étape et interdire la réutilisation des données pour cette exécution ; la valeur par défaut est False.

  • pipeline_parameters : paramètres d’exécution du pipeline, dictionnaire de {name: value}. Consultez PipelineParameter pour plus d’informations.

  • parent_run_id : vous pouvez fournir un ID d’exécution pour définir l’exécution parent de cette exécution de pipeline, qui est reflétée dans RunHistory. L’exécution parente doit appartenir à la même expérience que celle à laquelle ce pipeline est soumis.

Voici un exemple d’envoi d’un pipeline à l’aide de ces paramètres :


   from azureml.pipeline.core import Pipeline

   pipeline = Pipeline(workspace=ws, steps=steps)
   pipeline_run = experiment.submit(pipeline,
                                    continue_on_step_failure=True,
                                    regenerate_outputs=True,
                                    pipeline_parameters={"param1": "value1"},
                                    parent_run_id="<run_id>")

Méthodes

load_yaml

Charger un pipeline à partir du fichier YAML spécifié.

Un fichier YAML peut être utilisé pour décrire un pipeline constitué de ModuleSteps.

publish

Publier un pipeline et le rendre disponible en vue de sa réexécution.

Une fois qu’un pipeline est publié, il peut être soumis sans le code Python qui a construit le pipeline. Retourne l’élément PublishedPipeline créé.

service_endpoint

Obtenir le point de terminaison de service associé au pipeline.

submit

Envoyer une exécution de pipeline. Cela équivaut à utiliser submit.

Retourne le PipelineRun soumis. Utiliser cet objet pour superviser et afficher les détails de l’exécution.

validate

Valider un pipeline et identifier les erreurs potentielles, telles que les entrées non connectées.

load_yaml

Charger un pipeline à partir du fichier YAML spécifié.

Un fichier YAML peut être utilisé pour décrire un pipeline constitué de ModuleSteps.

static load_yaml(workspace, filename, _workflow_provider=None, _service_endpoint=None)

Paramètres

workspace
Workspace
Obligatoire

Espace de travail sur lequel envoyer le pipeline.

filename
str
Obligatoire

Fichier YAML qui décrit le pipeline.

_workflow_provider
<xref:azureml.pipeline.core._aeva_provider._AevaWorkflowProvider>
valeur par défaut: None

Fournisseur de workflow.

_service_endpoint
str
valeur par défaut: None

Le point de terminaison de service, s’il a la valeur None, est déterminé à l’aide de l’espace de travail.

Retours

Pipeline construit.

Type de retour

Remarques

Voir l’exemple de fichier YAML ci-dessous. Le fichier YAML contient un nom, default_compute et des listes de paramètres, des références de données et des étapes pour le pipeline. Chaque étape doit spécifier le module, le calcul et le paramètre, les liaisons d’entrée et de sortie. En outre, vous pouvez spécifier une étape runconfig et des arguments si nécessaire.

Exemple de fichier Yaml :


   pipeline:
       description: SamplePipelineFromYaml
       parameters:
           NumIterationsParameter:
               type: int
               default: 40
           DataPathParameter:
               type: datapath
               default:
                   datastore: workspaceblobstore
                   path_on_datastore: sample2.txt
           NodeCountParameter:
               type: int
               default: 4
       data_references:
           DataReference:
               datastore: workspaceblobstore
               path_on_datastore: testfolder/sample.txt
           Dataset:
               dataset_name: 'titanic'
       default_compute: aml-compute
       steps:
           PrepareStep:
               type:  ModuleStep
               name: "TestModule"
               compute: aml-compute2
               runconfig: 'D:\.azureml\default_runconfig.yml'
               arguments:
               -'--input1'
               -input:in1
               -'--input2'
               -input:in2
               -'--input3'
               -input:in3
               -'--output'
               -output:output_data
               -'--param'
               -parameter:NUM_ITERATIONS
               parameters:
                   NUM_ITERATIONS:
                       source: NumIterationsParameter
               inputs:
                   in1:
                       source: Dataset
                       bind_mode: mount
                   in2:
                       source: DataReference
                   in3:
                       source: DataPathParameter
               outputs:
                   output_data:
                       destination: Output1
                       datastore: workspaceblobstore
                       bind_mode: mount
           TrainStep:
               type: ModuleStep
               name: "TestModule2"
               version: "2"
               runconfig: 'D:\.azureml\default_runconfig.yml'
               arguments:
               -'--input'
               -input:train_input
               -'--output'
               -output:result
               -'--param'
               -parameter:NUM_ITERATIONS
               parameters:
                   NUM_ITERATIONS: 10
               runconfig_parameters:
                   NodeCount:
                       source: NodeCountParameter
               inputs:
                   train_input:
                       source: Output1
                       bind_mode: mount
               outputs:
                   result:
                       destination: Output2
                       datastore: workspaceblobstore
                       bind_mode: mount

publish

Publier un pipeline et le rendre disponible en vue de sa réexécution.

Une fois qu’un pipeline est publié, il peut être soumis sans le code Python qui a construit le pipeline. Retourne l’élément PublishedPipeline créé.

publish(name=None, description=None, version=None, continue_on_step_failure=None)

Paramètres

name
str
valeur par défaut: None

Nom du pipeline publié.

description
str
valeur par défaut: None

Description du pipeline publié.

version
str
valeur par défaut: None

Version du pipeline publié.

continue_on_step_failure
bool
valeur par défaut: None

Indique s’il faut continuer l’exécution d’autres étapes dans PipelineRun en cas d’échec d’une étape ; la valeur par défaut est false. Si la valeur est True, seules les étapes qui n’ont aucune dépendance sur la sortie de l’étape qui a échoué continuent à s’exécuter.

Retours

Pipeline publié créé.

Type de retour

service_endpoint

Obtenir le point de terminaison de service associé au pipeline.

service_endpoint()

Retours

Point de terminaison du service.

Type de retour

str

submit

Envoyer une exécution de pipeline. Cela équivaut à utiliser submit.

Retourne le PipelineRun soumis. Utiliser cet objet pour superviser et afficher les détails de l’exécution.

submit(experiment_name, pipeline_parameters=None, continue_on_step_failure=False, regenerate_outputs=False, parent_run_id=None, credential_passthrough=None, **kwargs)

Paramètres

experiment_name
str
Obligatoire

Nom de l’expérience sur laquelle envoyer le pipeline.

pipeline_parameters
dict
valeur par défaut: None

Paramètres d’exécution du pipeline, dictionnaire de {name: value}. Consultez PipelineParameter pour plus d’informations.

continue_on_step_failure
bool
valeur par défaut: False

Indique s’il faut continuer l’exécution du pipeline en cas d’échec d’une étape. Si la valeur est True, seules les étapes qui n’ont aucune dépendance sur la sortie de l’étape qui a échoué continuent à s’exécuter.

regenerate_outputs
bool
valeur par défaut: False

Indique s’il faut forcer la régénération de toutes les sorties d’étape et interdire la réutilisation des données pour cette exécution. Si la valeur est False, cette exécution peut réutiliser les résultats des exécutions précédentes et les exécutions ultérieures peuvent réutiliser les résultats de cette exécution.

parent_run_id
str
valeur par défaut: None

ID d’exécution facultatif à définir pour l’exécution parente de cette exécution de pipeline, qui est reflété dans RunHistory. L’exécution parente doit appartenir à la même expérience que celle à laquelle ce pipeline est envoyé.

credential_passthrough
valeur par défaut: None

Facultatif : si cet indicateur est activé, le travail de pipeline distant utilise les informations d’identification de l’utilisateur qui a lancé le travail. Cette fonctionnalité n’est disponible qu’en préversion privée.

Retours

Exécution du pipeline envoyée.

Type de retour

validate

Valider un pipeline et identifier les erreurs potentielles, telles que les entrées non connectées.

validate()

Retours

Liste des erreurs dans le pipeline.

Type de retour

Remarques

Voici quelques exemples d’erreurs de validation :

  • types d’étape ou sources de données de pipeline manquant(e)s ou inattendu(e)s

  • paramètres ou définitions de sortie manquant(e)s pour une source de données ou une étape de pipeline

  • entrées non connectées

  • étapes de pipeline qui forment une boucle ou un cycle

Si la validation réussit (retourne une liste vide) et que votre pipeline ne fonctionne pas, consultez Déboguer et dépanner les pipelines Machine Learning.

Attributs

graph

Obtenir le graphe associé au pipeline. Les étapes et les entrées de données apparaissent sous forme de nœuds dans le graphe.

Retours

Graphique.

Type de retour