Partager via


PipelineStep Classe

Représente une étape d’exécution dans un pipeline Azure Machine Learning.

Les pipelines sont construits à partir de plusieurs étapes de pipeline, qui sont des unités de calcul distinctes dans le pipeline. Chaque étape peut s’exécuter indépendamment et utiliser des ressources de calcul isolées. Chaque étape possède généralement ses propres entrées, sorties et paramètres nommés.

La classe PipelineStep est la classe de base à partir de laquelle d’autres classes d’étape intégrées conçues pour les scénarios courants héritent, tels que PythonScriptStep, DataTransferStepet HyperDriveStep.

Pour obtenir une vue d’ensemble de la relation entre Pipelines et PipelineSteps, consultez Présentation des pipelines ML.

Initialiser PipelineStep.

Constructeur

PipelineStep(name, inputs, outputs, arguments=None, fix_port_name_collisions=False, resource_inputs=None)

Paramètres

Nom Description
name
Obligatoire
str

Nom de l’étape de pipeline.

inputs
Obligatoire

Liste des entrées d’étape.

outputs
Obligatoire

Liste des sorties d’étape.

arguments

Liste facultative d’arguments à passer à un script utilisé à l’étape.

Valeur par défaut: None
fix_port_name_collisions

Spécifie s’il faut corriger les collisions de noms. Si true et une entrée et une sortie portent le même nom, l’entrée est précédée de « INPUT ». La valeur par défaut est False.

Valeur par défaut: False
resource_inputs

Liste facultative d’entrées à utiliser en tant que ressources. Les ressources sont téléchargées dans le dossier de script et permettent de modifier le comportement du script au moment de l’exécution.

Valeur par défaut: None
name
Obligatoire
str

Nom de l’étape de pipeline.

inputs
Obligatoire

Liste des entrées d’étape.

outputs
Obligatoire

Liste des sorties d’étape.

arguments
Obligatoire

Liste facultative d’arguments à passer à un script utilisé à l’étape.

fix_port_name_collisions
Obligatoire

Spécifie s’il faut corriger les collisions de noms. Si true et une entrée et une sortie portent le même nom, l’entrée est précédée de « INPUT ». La valeur par défaut est False.

resource_inputs
Obligatoire

Liste facultative d’entrées à utiliser en tant que ressources. Les ressources sont téléchargées dans le dossier de script et permettent de modifier le comportement du script au moment de l’exécution.

Remarques

PipelineStep est une unité d’exécution qui a généralement besoin d’une cible d’exécution (cible de calcul), d’un script à exécuter avec des arguments et des entrées de script facultatifs, et peut produire des sorties. L’étape peut également prendre un certain nombre d’autres paramètres spécifiques à l’étape.

Les étapes de pipeline peuvent être configurées ensemble pour construire un Pipelineflux de travail Azure Machine Learning partageable et réutilisable. Chaque étape d’un pipeline peut être configurée pour permettre la réutilisation de ses résultats d’exécution précédents si le contenu de l’étape (scripts/dépendances) ainsi que les entrées et les paramètres restent inchangés. Lors de la réutilisation de l’étape, au lieu de soumettre le travail au calcul, les résultats de l’exécution précédente sont immédiatement mis à la disposition des étapes suivantes.

Azure Machine Learning Pipelines fournit des étapes intégrées pour les scénarios courants. Pour obtenir des exemples, consultez le steps package et la AutoMLStep classe. Pour obtenir une vue d’ensemble de la construction d’un pipeline en fonction des étapes prédéfinies, consultez https://aka.ms/pl-first-pipeline.

Les étapes prédéfinies dérivées de PipelineStep sont des étapes utilisées dans un pipeline. Si votre flux de travail d’apprentissage automatique utilise des appels pour créer des étapes qui peuvent être versionnée et utilisées dans différents pipelines, utilisez la Module classe.

Gardez à l’esprit ce qui suit lors de l’utilisation des étapes de pipeline, des données d’entrée/sortie et de la réutilisation des étapes.

  • Il est recommandé d’utiliser des emplacements de source_directory distincts pour des étapes distinctes. Si tous les scripts de vos étapes de pipeline se trouvent dans un seul répertoire, le hachage de ce répertoire change chaque fois que vous apportez une modification à un script forçant toutes les étapes à réexécuter. Pour obtenir un exemple d’utilisation de répertoires distincts pour différentes étapes, consultez https://aka.ms/pl-get-started.

  • La gestion de dossiers distincts pour les scripts et les fichiers dépendants pour chaque étape permet de réduire la taille de l’instantané créé pour chaque étape, car seul le dossier spécifique est instantané. Étant donné que les modifications apportées aux fichiers de l’étape source_directory déclenchent un nouveau chargement de l’instantané, en conservant des dossiers distincts chaque étape, permet de réutiliser les étapes du pipeline, car s’il n’y a pas de modifications dans la source_directory d’une étape, l’exécution précédente de l’étape est réutilisée.

  • Si les données utilisées dans une étape se situent dans un magasin de données et que allow_reuse a la valeur True, les modifications apportées à la modification des données ne sont pas détectées. Si les données sont chargées dans le cadre de l’instantané (sous la source_directory de l’étape), bien que cela ne soit pas recommandé, le hachage change et déclenche une réexécution.

Méthodes

create_input_output_bindings

Créez des liaisons d’entrée et de sortie à partir des entrées et sorties de l’étape.

create_module_def

Créez l’objet de définition de module qui décrit l’étape.

create_node

Créez un nœud pour le graphique de pipeline en fonction de cette étape.

get_source_directory

Obtenez le répertoire source de l’étape et vérifiez que le script existe.

resolve_input_arguments

Mettre en correspondance les entrées et les sorties aux arguments pour produire une chaîne d’argument.

run_after

Exécutez cette étape après l’étape spécifiée.

validate_arguments

Vérifiez que les entrées et sorties d’étape fournies dans les arguments se trouvent dans les listes d’entrées et de sorties.

create_input_output_bindings

Créez des liaisons d’entrée et de sortie à partir des entrées et sorties de l’étape.

create_input_output_bindings(inputs, outputs, default_datastore, resource_inputs=None)

Paramètres

Nom Description
inputs
Obligatoire

Liste des entrées d’étape.

outputs
Obligatoire

Liste des sorties d’étape.

default_datastore
Obligatoire

Magasin de données par défaut.

resource_inputs

Liste des entrées à utiliser comme ressources. Les ressources sont téléchargées dans le dossier de script et permettent de modifier le comportement du script au moment de l’exécution.

Valeur par défaut: None

Retours

Type Description

Tuple des liaisons d’entrée et des liaisons de sortie.

create_module_def

Créez l’objet de définition de module qui décrit l’étape.

create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, module_type=None, arguments=None, runconfig=None, cloud_settings=None)

Paramètres

Nom Description
execution_type
Obligatoire
str

Type d’exécution du module.

input_bindings
Obligatoire

Liaisons d’entrée d’étape.

output_bindings
Obligatoire

Liaisons de sortie d’étape.

param_defs

Définitions des paramètres d’étape.

Valeur par défaut: None
create_sequencing_ports

Spécifie si les ports de séquencement seront créés pour le module.

Valeur par défaut: True
allow_reuse

Spécifie si le module sera disponible pour être réutilisé dans les pipelines futurs.

Valeur par défaut: True
version
str

Version du module.

Valeur par défaut: None
module_type
str

Type de module pour le service de création de module à créer. Actuellement, seuls deux types sont pris en charge : « None » et « BatchInferencing ». module_type est différent de execution_type celui qui spécifie le type de service principal à utiliser pour exécuter ce module.

Valeur par défaut: None
arguments

Liste d’arguments annotés à utiliser lors de l’appel de ce module

Valeur par défaut: None
runconfig
str

Runconfig qui sera utilisé pour python_script_step

Valeur par défaut: None
cloud_settings
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>

Paramètres qui seront utilisés pour les clouds

Valeur par défaut: None

Retours

Type Description

Objet de définition de module.

create_node

Créez un nœud pour le graphique de pipeline en fonction de cette étape.

abstract create_node(graph, default_datastore, context)

Paramètres

Nom Description
graph
Obligatoire

Graphique auquel ajouter le nœud.

default_datastore
Obligatoire

Magasin de données par défaut à utiliser pour cette étape.

context
Obligatoire
<xref:azureml.pipeline.core._GraphContext>

Objet de contexte de graphique.

Retours

Type Description

Nœud créé.

get_source_directory

Obtenez le répertoire source de l’étape et vérifiez que le script existe.

get_source_directory(context, source_directory, script_name)

Paramètres

Nom Description
context
Obligatoire
<xref:azureml.pipeline.core._GraphContext>

Objet de contexte de graphique.

source_directory
Obligatoire
str

Répertoire source de l’étape.

script_name
Obligatoire
str

Nom du script de l’étape.

hash_paths
Obligatoire

Chemins de hachage à utiliser lors de la détermination de l’empreinte digitale du module.

Retours

Type Description

Répertoire source et chemins de hachage.

resolve_input_arguments

Mettre en correspondance les entrées et les sorties aux arguments pour produire une chaîne d’argument.

static resolve_input_arguments(arguments, inputs, outputs, params)

Paramètres

Nom Description
arguments
Obligatoire

Liste des arguments d’étape.

inputs
Obligatoire

Liste des entrées d’étape.

outputs
Obligatoire

Liste des sorties d’étape.

params
Obligatoire

Liste des paramètres d’étape.

Retours

Type Description

Retourne un tuple de deux éléments. La première est une liste plate d’éléments pour les arguments résolus. La deuxième est une liste d’arguments structurés (_InputArgument, _OutputArgument, _ParameterArgument et _StringArgument)

run_after

Exécutez cette étape après l’étape spécifiée.

run_after(step)

Paramètres

Nom Description
step
Obligatoire

Étape de pipeline à exécuter avant cette étape.

Remarques

Si vous souhaitez exécuter une étape, par exemple, étape3 une fois l’étape1 et l’étape2 terminées, vous pouvez utiliser :


   step3.run_after(step1)
   step3.run_after(step2)

validate_arguments

Vérifiez que les entrées et sorties d’étape fournies dans les arguments se trouvent dans les listes d’entrées et de sorties.

static validate_arguments(arguments, inputs, outputs)

Paramètres

Nom Description
arguments
Obligatoire

Liste des arguments d’étape.

inputs
Obligatoire

Liste des entrées d’étape.

outputs
Obligatoire

Liste des sorties d’étape.