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.objectPipeline
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
|
Description du pipeline. |
default_datastore
Obligatoire
|
Magasin de données par défaut à utiliser pour les connexions de données. |
default_source_directory
Obligatoire
|
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
|
Description du pipeline. |
default_datastore
Obligatoire
|
Magasin de données par défaut à utiliser pour les connexions de données. |
default_source_directory
Obligatoire
|
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
|
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
|
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
|
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
|
Nom du pipeline publié. Valeur par défaut: None
|
description
|
Description du pipeline publié. Valeur par défaut: None
|
version
|
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 |
---|---|
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
|
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
|
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. |