Partager via


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

Nom Description
workspace
Obligatoire

Espace de travail sur lequel envoyer le pipeline.

steps
Obligatoire

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

description
Obligatoire
str

Description du pipeline.

default_datastore
Obligatoire

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

default_source_directory
Obligatoire
str

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

resolve_closure
Obligatoire

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

workspace
Obligatoire

Espace de travail sur lequel envoyer le pipeline.

steps
Obligatoire

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

description
Obligatoire
str

Description du pipeline.

default_datastore
Obligatoire

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

default_source_directory
Obligatoire
str

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

resolve_closure
Obligatoire

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

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

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

_service_endpoint
Obligatoire
str

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

kwargs
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

Nom Description
workspace
Obligatoire

Espace de travail sur lequel envoyer le pipeline.

filename
Obligatoire
str

Fichier YAML qui décrit le pipeline.

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

Fournisseur de workflow.

Valeur par défaut: None
_service_endpoint
str

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

Valeur par défaut: None

Retours

Type Description

Pipeline construit.

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

Nom Description
name
str

Nom du pipeline publié.

Valeur par défaut: None
description
str

Description du pipeline publié.

Valeur par défaut: None
version
str

Version du pipeline publié.

Valeur par défaut: None
continue_on_step_failure

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.

Valeur par défaut: None

Retours

Type Description

Pipeline publié créé.

service_endpoint

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

service_endpoint()

Retours

Type Description
str

Point de terminaison du service.

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

Nom Description
experiment_name
Obligatoire
str

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

pipeline_parameters

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

Valeur par défaut: None
continue_on_step_failure

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.

Valeur par défaut: False
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. 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.

Valeur par défaut: False
parent_run_id
str

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é.

Valeur par défaut: None
credential_passthrough

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.

Valeur par défaut: None

Retours

Type Description

Exécution du pipeline envoyée.

validate

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

validate()

Retours

Type Description

Liste des erreurs dans le pipeline.

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

Type Description

Graphique.