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
|
Description du pipeline. |
default_datastore
Obligatoire
|
Magasin de données par défaut à utiliser pour les connexions de données. |
default_source_directory
Obligatoire
|
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
|
Description du pipeline. |
default_datastore
Obligatoire
|
Magasin de données par défaut à utiliser pour les connexions de données. |
default_source_directory
Obligatoire
|
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, 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
|
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
|
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
|
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 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 |
---|---|
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
|
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
|
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. |