Partager via


Pipeline Classe

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

Utilisez un pipeline pour créer et gérer des flux de travail qui regroupent différentes phases de Machine Learning. Chaque phase de Machine Learning, telle que la préparation des données et l’apprentissage du modèle, peut se composer d’une ou plusieurs étapes dans un pipeline.

Pour obtenir une vue d’ensemble des raisons et des moments d’utilisation de 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.

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

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 (effectuer automatiquement des é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

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, s’il n’est pas déterminé à l’aide de l’espace de travail.

kwargs
Obligatoire

Arguments de mot clé personnalisés, réservés au 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 sélectionnez 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 steps package et la AutoMLStep classe.

  • Si vous utilisez le flux de travail Machine Learning, vous devez créer des étapes qui peuvent être versionnée et utilisées dans différents pipelines, puis utilisez les fonctionnalités du Module module.

Envoyer un pipeline à l’aide submitde . Lorsque l’envoi est appelé, un PipelineRun objet est créé à son tour pour StepRun chaque étape du flux de travail. Utilisez ces objets pour surveiller l’exécution de l’exécution.

Voici un exemple de soumission d’un pipeline :


   from azureml.pipeline.core import Pipeline

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

Il existe plusieurs 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 ayant échoué continueront d’être exécutées.

  • 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 pour l’exécution du pipeline, dictionnaire de {name : value}. Pour plus d’informations, consultez l’article PipelineParameter.

  • parent_run_id : vous pouvez fournir un ID d’exécution pour définir l’exécution parente 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.

Par exemple, pour envoyer un pipeline à l’aide de ces paramètres, procédez comme suit :


   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

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

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

publish

Publiez un pipeline et rendez-le disponible pour la réexécution.

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

service_endpoint

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

submit

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

Retourne le fichier envoyé PipelineRun. Utilisez cet objet pour surveiller et afficher les détails de l’exécution.

validate

Validez un pipeline et identifiez les erreurs potentielles, telles que les entrées non connectées.

load_yaml

Chargez 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 flux de travail.

Valeur par défaut: None
_service_endpoint
str

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

Valeur par défaut: None

Retours

Type Description

Pipeline construit.

Remarques

Consultez ci-dessous pour obtenir un exemple de fichier YAML. YaML contient un nom, default_compute et des listes de paramètres, de références de données et d’étapes pour le pipeline. Chaque étape doit spécifier les liaisons de module, de calcul et de paramètre, d’entrée et de sortie. En outre, un runconfig et des arguments d’étape peuvent être spécifiés 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

Publiez un pipeline et rendez-le disponible pour la réexécution.

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

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 poursuivre 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 ayant échoué continueront d’être exécutées.

Valeur par défaut: None

Retours

Type Description

Pipeline publié créé.

service_endpoint

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

service_endpoint()

Retours

Type Description
str

Point de terminaison de service.

submit

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

Retourne le fichier envoyé PipelineRun. Utilisez cet objet pour surveiller 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 lequel envoyer le pipeline.

pipeline_parameters

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

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 ayant échoué continueront d’être exécutées.

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 suivantes 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ée dans RunHistory. L’exécution parente doit appartenir à la même expérience que ce pipeline est soumis.

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é est disponible uniquement en préversion privée.

Valeur par défaut: None

Retours

Type Description

Exécution du pipeline envoyé.

validate

Validez un pipeline et identifiez 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 :

  • sources de données de pipeline manquantes ou inattendues ou types d’étapes

  • paramètres ou définitions de sortie manquants 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 les pipelines de débogage et de résolution des problèmes liés au machine learning.

Attributs

graph

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

Retours

Type Description

Graphique.