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
|
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
|
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
|
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
|
Version du module. Valeur par défaut: None
|
module_type
|
Type de module pour le service de création de module à créer. Actuellement, seuls deux types sont pris en charge : « None » et « BatchInferencing ».
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
|
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
|
Répertoire source de l’étape. |
script_name
Obligatoire
|
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. |