PipelineStep Classe
Représente une étape d’exécution dans un pipeline Azure Machine Learning.
Les pipelines sont construits à partir de plusieurs étapes de pipelines, 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 dispose généralement de ses propres entrées, sorties et paramètres nommés.
La classe PipelineStep est la classe de base dont héritent d’autres classes d’étape intégrées conçues pour des scénarios courants, comme PythonScriptStep, DataTransferStep et HyperDriveStep.
Pour obtenir une vue d’ensemble de la façon dont les Pipelines et PipelineSteps sont liés, consultez Présentation des pipelines ML.
Initialiser PipelineStep.
- Héritage
-
builtins.objectPipelineStep
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 du pipeline. |
inputs
Obligatoire
|
Liste des entrées de l’étape. |
outputs
Obligatoire
|
Liste des sorties de l’étape. |
arguments
|
Liste facultative d’arguments à transmettre à un script utilisé à l’étape. Valeur par défaut: None
|
fix_port_name_collisions
|
Spécifie si les collisions de noms doivent être corrigées. Si True est défini et qu’une entrée et une sortie portent le même nom, un préfixe « INPUT » est ajouté à l’entrée. La valeur par défaut est False. Valeur par défaut: False
|
resource_inputs
|
Liste facultative des entrées à utiliser comme ressources. Les ressources sont téléchargées dans le dossier de script et offrent un moyen de modifier le comportement du script au moment de l’exécution. Valeur par défaut: None
|
name
Obligatoire
|
Nom de l’étape du pipeline. |
inputs
Obligatoire
|
Liste des entrées de l’étape. |
outputs
Obligatoire
|
Liste des sorties de l’étape. |
arguments
Obligatoire
|
Liste facultative d’arguments à transmettre à un script utilisé à l’étape. |
fix_port_name_collisions
Obligatoire
|
Spécifie si les collisions de noms doivent être corrigées. Si True est défini et qu’une entrée et une sortie portent le même nom, un préfixe « INPUT » est ajouté à l’entrée. La valeur par défaut est False. |
resource_inputs
Obligatoire
|
Liste facultative des entrées à utiliser comme ressources. Les ressources sont téléchargées dans le dossier de script et offrent un moyen de modifier le comportement du script au moment de l’exécution. |
Remarques
Un PipelineStep est une unité d’exécution qui nécessite généralement une cible d’exécution (cible de calcul), un script à exécuter avec des entrées et des arguments de script facultatifs, et qui peut générer des sorties. L’étape peut également utiliser un certain nombre d’autres paramètres spécifiques à l’étape.
Les étapes de pipeline peuvent être configurées ensemble pour construire un Pipeline, qui représente un flux de travail Azure Machine Learning pouvant être partagé et réutilisé. 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 package steps et la classe AutoMLStep. Pour obtenir une vue d’ensemble de la construction d’un pipeline basé sur 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 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 classe Module.
Gardez à l’esprit les points suivants quand vous utilisez des étapes de pipeline, des données d’entrée/de sortie et la réutilisation d’étape.
Il est recommandé d’utiliser des emplacements source_directory distincts pour les différentes étapes. Si tous les scripts de vos étapes de pipeline se trouvent dans un répertoire unique, le hachage de ce répertoire change chaque fois que vous modifiez un script en forçant toutes les étapes à être réexécutées. Pour obtenir un exemple d’utilisation de répertoires distincts pour différentes étapes, consultez https://aka.ms/pl-get-started.
Conserver des 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 un instantané est effectué uniquement pour le dossier spécifique. Étant donné que chaque modification apportée à l’un des fichiers dans le source_directory de l’étape déclenche le rechargement de l’instantané, conserver des dossiers distincts pour chaque étape permet la réutilisation des étapes du pipeline. En effet, si aucune modification n’est effectuée dans le 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 trouvent dans un magasin de données et que allow_reuse est défini sur True, les modifications des données ne sont pas détectées. Si les données sont chargées dans le cadre de l’instantané (sous le source_directory de l’étape), bien que cela ne soit pas recommandé, le hachage est modifié et déclenche une réexécution.
Méthodes
create_input_output_bindings |
Crée des liaisons d’entrée et de sortie à partir des entrées et sorties de l’étape. |
create_module_def |
Crée l’objet de définition de module qui décrit l’étape. |
create_node |
Crée un nœud pour le graphe de pipeline en fonction de cette étape. |
get_source_directory |
Obtient le répertoire source de l’étape et vérifie que le script existe. |
resolve_input_arguments |
Fait correspondre les entrées et les sorties aux arguments pour produire une chaîne d’arguments. |
run_after |
Exécute cette étape après l’étape spécifiée. |
validate_arguments |
Vérifie que les entrées et les sorties d’étape fournies dans les arguments se trouvent dans les listes d’entrées et de sorties. |
create_input_output_bindings
Crée 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 de l’étape. |
outputs
Obligatoire
|
Liste des sorties de l’é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 offrent un moyen 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ée 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 de l’étape. |
output_bindings
Obligatoire
|
Liaisons de sortie de l’étape. |
param_defs
|
Définitions des paramètres de l’étape. Valeur par défaut: None
|
create_sequencing_ports
|
Spécifie si des ports de séquencement sont créés pour le module. Valeur par défaut: True
|
allow_reuse
|
Spécifie si le module doit être disponible pour être réutilisé dans des pipelines futurs. Valeur par défaut: True
|
version
|
Version du module. Valeur par défaut: None
|
module_type
|
Type de module à créer pour le service de création de module. Actuellement, seuls deux types sont pris en charge : « None » et « BatchInferencing ».
Valeur par défaut: None
|
arguments
|
Liste d’arguments annotés à utiliser au moment de l’appel de ce module Valeur par défaut: None
|
runconfig
|
Runconfig à utiliser pour python_script_step Valeur par défaut: None
|
cloud_settings
|
<xref:azureml.pipeline.core._restclients.aeva.models.CloudSettings>
Paramètres à utiliser pour les clouds Valeur par défaut: None
|
Retours
Type | Description |
---|---|
Objet de définition de module. |
create_node
Crée un nœud pour le graphe de pipeline en fonction de cette étape.
abstract create_node(graph, default_datastore, context)
Paramètres
Nom | Description |
---|---|
graph
Obligatoire
|
Graphe auquel ajouter le nœud. |
default_datastore
Obligatoire
|
Magasin de données à utiliser par défaut pour cette étape. |
context
Obligatoire
|
<xref:azureml.pipeline.core._GraphContext>
Objet de contexte du graphe. |
Retours
Type | Description |
---|---|
Nœud créé. |
get_source_directory
Obtient le répertoire source de l’étape et vérifie 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 du graphe. |
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 pour déterminer l’empreinte digitale du module. |
Retours
Type | Description |
---|---|
Répertoire source et chemins de hachage. |
resolve_input_arguments
Fait correspondre les entrées et les sorties aux arguments pour produire une chaîne d’arguments.
static resolve_input_arguments(arguments, inputs, outputs, params)
Paramètres
Nom | Description |
---|---|
arguments
Obligatoire
|
Liste des arguments de l’étape. |
inputs
Obligatoire
|
Liste des entrées de l’étape. |
outputs
Obligatoire
|
Liste des sorties de l’étape. |
params
Obligatoire
|
Liste des paramètres de l’étape. |
Retours
Type | Description |
---|---|
Retourne un tuple de deux éléments. Le premier 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écute 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 step3 une fois que step1 et step2 sont terminés, vous pouvez utiliser :
step3.run_after(step1)
step3.run_after(step2)
validate_arguments
Vérifie que les entrées et les 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 de l’étape. |
inputs
Obligatoire
|
Liste des entrées de l’étape. |
outputs
Obligatoire
|
Liste des sorties de l’étape. |