ParallelRunStep Classe
Crée une étape de pipeline Azure Machine Learning pour traiter de grandes quantités de données de manière asynchrone et en parallèle.
Pour obtenir un exemple d’utilisation de ParallelRunStep, consultez le notebook https://aka.ms/batch-inference-notebooks.
Pour obtenir le guide de résolution des problèmes, consultez https://aka.ms/prstsg. Vous y trouverez d’autres références.
Créez une étape de pipeline Azure ML pour traiter de grandes quantités de données de manière asynchrone et en parallèle.
Pour obtenir un exemple d’utilisation de ParallelRunStep, consultez le lien https://aka.ms/batch-inference-notebooksnotebook .
Constructeur
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
Paramètres
Nom | Description |
---|---|
name
Obligatoire
|
Nom de l’étape. Doit être unique à l’espace de travail, se compose uniquement de lettres minuscules, de chiffres ou de tirets, de commencer par une lettre et d’être comprise entre 3 et 32 caractères. |
parallel_run_config
Obligatoire
|
Objet ParallelRunConfig utilisé pour déterminer les propriétés d’exécution requises. |
inputs
Obligatoire
|
Liste des jeux de données d’entrée. Tous les jeux de données de la liste doivent être de même type. Les données d’entrée sont partitionnés pour le traitement parallèle. Chaque jeu de données de la liste est partitionné en mini-lots séparément, et chacun des mini-lots est traité de façon égale dans le traitement parallèle. |
output
|
La liaison de port de sortie peut être utilisée par les étapes de pipeline ultérieures. Valeur par défaut: None
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste des données de référence d’entrée côté. Les entrées latérales ne sont pas partitionnés en tant que données d’entrée. Valeur par défaut: None
|
arguments
|
Liste des arguments de ligne de commande à passer au entry_script Python. Valeur par défaut: None
|
allow_reuse
|
Indique si l’étape doit réutiliser les résultats précédents lors de l’exécution avec les mêmes paramètres/entrées. S’il s’agit de false, une nouvelle exécution est toujours générée pour cette étape pendant l’exécution du pipeline. Valeur par défaut: True
|
name
Obligatoire
|
Nom de l’étape. Doit être unique à l’espace de travail, se compose uniquement de lettres minuscules, de chiffres ou de tirets, de commencer par une lettre et d’être comprise entre 3 et 32 caractères. |
parallel_run_config
Obligatoire
|
Objet ParallelRunConfig utilisé pour déterminer les propriétés d’exécution requises. |
inputs
Obligatoire
|
Liste des jeux de données d’entrée. Tous les jeux de données de la liste doivent être de même type. Les données d’entrée sont partitionnés pour le traitement parallèle. Chaque jeu de données de la liste est partitionné en mini-lots séparément, et chacun des mini-lots est traité de façon égale dans le traitement parallèle. |
output
Obligatoire
|
La liaison de port de sortie peut être utilisée par les étapes de pipeline ultérieures. |
side_inputs
Obligatoire
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Liste des données de référence d’entrée côté. Les entrées latérales ne sont pas partitionnés en tant que données d’entrée. |
arguments
Obligatoire
|
Liste des arguments de ligne de commande à passer au entry_script Python. |
allow_reuse
Obligatoire
|
Indique si l’étape doit réutiliser les résultats précédents lors de l’exécution avec les mêmes paramètres/entrées. S’il s’agit de false, une nouvelle exécution est toujours générée pour cette étape pendant l’exécution du pipeline. |
Remarques
ParallelRunStep permet de traiter de grandes quantités de données en parallèle. Les cas d’usage courants sont l’entraînement d’un modèle ML ou l’exécution de l’inférence hors connexion pour générer des prédictions sur un lot d’observations. ParallelRunStep divise vos données en plusieurs lots qui seront traités en parallèle. Le nombre de nœuds de taille de lot et d’autres paramètres paramétrables pour accélérer votre traitement parallèle peut être contrôlé avec la ParallelRunConfig classe. ParallelRunStep peut utiliser l’une ou TabularDataset l’autre FileDataset des entrées.
Pour utiliser ParallelRunStep :
Créez un ParallelRunConfig objet pour spécifier la façon dont le traitement par lots est effectué, avec des paramètres pour contrôler la taille du lot, le nombre de nœuds par cible de calcul et une référence à votre script Python personnalisé.
Créez un objet ParallelRunStep qui utilise l’objet ParallelRunConfig, et définissez les entrées et sorties de l’étape.
Utilisez l’objet ParallelRunStep configuré comme Pipeline vous le feriez avec d’autres types d’étapes de pipeline.
Des exemples d’utilisation des classes ParallelRunStep et ParallelRunConfig pour l’inférence par lots sont abordés dans les articles suivants :
Tutoriel : Créer un pipeline Azure Machine Learning pour le scoring par lots. Cet article montre comment utiliser ces deux classes pour le scoring par lots asynchrone dans un pipeline et permettre à un point de terminaison REST d’exécuter le pipeline.
Exécuter l’inférence par lots sur de grandes quantités de données à l’aide d’Azure Machine Learning. Cet article explique comment traiter de grandes quantités de données de façon asynchrone et en parallèle avec un script d’inférence personnalisé et un modèle de classification d’images pré-entraîné à partir du jeu de données MNIST.
from azureml.pipeline.steps import ParallelRunStep, ParallelRunConfig
parallel_run_config = ParallelRunConfig(
source_directory=scripts_folder,
entry_script=script_file,
mini_batch_size="5",
error_threshold=10, # Optional, allowed failed count on mini batch items
allowed_failed_count=15, # Optional, allowed failed count on mini batches
allowed_failed_percent=10, # Optional, allowed failed percent on mini batches
output_action="append_row",
environment=batch_env,
compute_target=compute_target,
node_count=2)
parallelrun_step = ParallelRunStep(
name="predict-digits-mnist",
parallel_run_config=parallel_run_config,
inputs=[ named_mnist_ds ],
output=output_dir,
arguments=[ "--extra_arg", "example_value" ],
allow_reuse=True
)
Pour plus d’informations sur cet exemple, consultez le notebook https://aka.ms/batch-inference-notebooks.
Méthodes
create_module_def |
Créez l’objet de définition de module qui décrit l’étape. Cette méthode n’est pas destinée à être utilisée directement. |
create_node |
Créez un nœud et PythonScriptStep ajoutez-le au graphe spécifié. Cette méthode n’est pas destinée à être utilisée directement. Lorsqu’un pipeline est instancié avec ParallelRunStep, Azure Machine Learning transmet automatiquement les paramètres requis via cette méthode afin que l’étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail. |
create_module_def
Créez l’objet de définition de module qui décrit l’étape.
Cette méthode n’est pas destinée à être utilisée directement.
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, arguments=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 d’étape param. Valeur par défaut: None
|
create_sequencing_ports
|
Si la valeur est true, les ports de séquencement sont créés pour le module. Valeur par défaut: True
|
allow_reuse
|
Si la valeur est true, le module sera disponible pour être réutilisé dans les futurs pipelines. Valeur par défaut: True
|
version
|
Version du 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
|
Retours
Type | Description |
---|---|
Objet def du module. |
create_node
Créez un nœud et PythonScriptStep ajoutez-le au graphe spécifié.
Cette méthode n’est pas destinée à être utilisée directement. Lorsqu’un pipeline est instancié avec ParallelRunStep, Azure Machine Learning transmet automatiquement les paramètres requis via cette méthode afin que l’étape puisse être ajoutée à un graphique de pipeline qui représente le flux de travail.
create_node(graph, default_datastore, context)
Paramètres
Nom | Description |
---|---|
graph
Obligatoire
|
Objet Graph. |
default_datastore
Obligatoire
|
Magasin de données par défaut. |
context
Obligatoire
|
<xref:azureml.pipeline.core._GraphContext>
Contexte. |
Retours
Type | Description |
---|---|
Nœud créé. |