ParallelRunStep Classe
Crea un passaggio della pipeline di Azure Machine Learning per elaborare grandi quantità di dati in modo asincrono e in parallelo.
Per un esempio di uso di ParallelRunStep, vedere il notebook https://aka.ms/batch-inference-notebooks.
Per la guida alla risoluzione dei problemi, vedere https://aka.ms/prstsg. È possibile trovare altri riferimenti in questa posizione.
Creare un passaggio della pipeline di Azure ML per elaborare grandi quantità di dati in modo asincrono e in parallelo.
Per un esempio di uso di ParallelRunStep, vedere il collegamento https://aka.ms/batch-inference-notebooksdel notebook .
- Ereditarietà
-
azureml.pipeline.core._parallel_run_step_base._ParallelRunStepBaseParallelRunStep
Costruttore
ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)
Parametri
Nome | Descrizione |
---|---|
name
Necessario
|
Nome del passaggio. Deve essere univoco per l'area di lavoro, costituito solo da lettere minuscole, numeri o trattini, iniziare con una lettera e avere una lunghezza compresa tra 3 e 32 caratteri. |
parallel_run_config
Necessario
|
Oggetto ParallelRunConfig utilizzato per determinare le proprietà di esecuzione necessarie. |
inputs
Necessario
|
Elenco di set di dati di input. Tutti i set di dati nell'elenco devono essere dello stesso tipo. I dati di input verranno partizionati per l'elaborazione parallela. Ogni set di dati nell'elenco viene partizionato in mini batch separatamente e ognuno dei mini batch viene trattato equamente nell'elaborazione parallela. |
output
|
L'associazione di porte di output può essere usata dai passaggi successivi della pipeline. Valore predefinito: None
|
side_inputs
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Elenco di dati di riferimento di input sul lato. Gli input laterali non verranno partizionati come dati di input. Valore predefinito: None
|
arguments
|
Elenco di argomenti della riga di comando da passare al entry_script Python. Valore predefinito: None
|
allow_reuse
|
indica se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito con le stesse impostazioni o gli stessi input. Se è false, durante l'esecuzione della pipeline verrà sempre generata una nuova esecuzione. Valore predefinito: True
|
name
Necessario
|
Nome del passaggio. Deve essere univoco per l'area di lavoro, costituito solo da lettere minuscole, numeri o trattini, iniziare con una lettera e avere una lunghezza compresa tra 3 e 32 caratteri. |
parallel_run_config
Necessario
|
Oggetto ParallelRunConfig utilizzato per determinare le proprietà di esecuzione necessarie. |
inputs
Necessario
|
Elenco di set di dati di input. Tutti i set di dati nell'elenco devono essere dello stesso tipo. I dati di input verranno partizionati per l'elaborazione parallela. Ogni set di dati nell'elenco viene partizionato in mini batch separatamente e ognuno dei mini batch viene trattato equamente nell'elaborazione parallela. |
output
Necessario
|
L'associazione di porte di output può essere usata dai passaggi successivi della pipeline. |
side_inputs
Necessario
|
list[Union[InputPortBinding, DataReference, PortDataReference, PipelineData, PipelineOutputFileDataset, PipelineOutputTabularDataset, DatasetConsumptionConfig]]
Elenco di dati di riferimento di input sul lato. Gli input laterali non verranno partizionati come dati di input. |
arguments
Necessario
|
Elenco di argomenti della riga di comando da passare al entry_script Python. |
allow_reuse
Necessario
|
indica se il passaggio deve riutilizzare i risultati precedenti quando viene eseguito con le stesse impostazioni o gli stessi input. Se è false, durante l'esecuzione della pipeline verrà sempre generata una nuova esecuzione. |
Commenti
ParallelRunStep può essere usato per elaborare grandi quantità di dati in parallelo. I casi d'uso comuni sono il training di un modello ML o l'esecuzione dell'inferenza offline per generare stime in un batch di osservazioni. ParallelRunStep funziona suddividendo i dati in batch elaborati in parallelo. Il numero di nodi di dimensioni batch e altri parametri ottimizzabili per velocizzare l'elaborazione parallela possono essere controllati con la ParallelRunConfig classe . ParallelRunStep può funzionare con TabularDataset o FileDataset come input.
Per usare ParallelRunStep:
Creare un ParallelRunConfig oggetto per specificare la modalità di esecuzione dell'elaborazione batch, con parametri per controllare le dimensioni del batch, il numero di nodi per ogni destinazione di calcolo e un riferimento allo script Python personalizzato.
Creare un oggetto ParallelRunStep che usa l'oggetto ParallelRunConfig, quindi definire input e output per il passaggio.
Usare l'oggetto ParallelRunStep configurato in un Pipeline oggetto esattamente come si farebbe con altri tipi di passaggi della pipeline.
Gli esempi di utilizzo delle classi ParallelRunStep e ParallelRunConfig per l'inferenza batch sono illustrati negli articoli seguenti:
Esercitazione: Creare una pipeline di Azure Machine Learning per l'assegnazione di punteggi batch. Questo articolo illustra come usare queste due classi per l'assegnazione di punteggi batch asincroni in una pipeline e come abilitare un endpoint REST per eseguire la pipeline.
Eseguire l'inferenza batch su grandi quantità di dati usando Azure Machine Learning. Questo articolo illustra come elaborare grandi quantità di dati in modo asincrono e in parallelo con uno script di inferenza personalizzato e un modello di classificazione delle immagini con training preliminare basato sul set di dati 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
)
Per altre informazioni su questo esempio, vedere il notebook https://aka.ms/batch-inference-notebooks.
Metodi
create_module_def |
Creare l'oggetto definizione del modulo che descrive il passaggio. Questo metodo non deve essere usato direttamente. |
create_node |
Creare un nodo per PythonScriptStep e aggiungerlo al grafico specificato. Questo metodo non deve essere usato direttamente. Quando viene creata un'istanza di una pipeline con ParallelRunStep, Azure Machine Learning passa automaticamente i parametri necessari tramite questo metodo in modo che il passaggio possa essere aggiunto a un grafo della pipeline che rappresenta il flusso di lavoro. |
create_module_def
Creare l'oggetto definizione del modulo che descrive il passaggio.
Questo metodo non deve essere usato direttamente.
create_module_def(execution_type, input_bindings, output_bindings, param_defs=None, create_sequencing_ports=True, allow_reuse=True, version=None, arguments=None)
Parametri
Nome | Descrizione |
---|---|
execution_type
Necessario
|
Tipo di esecuzione del modulo. |
input_bindings
Necessario
|
Associazioni di input del passaggio. |
output_bindings
Necessario
|
Associazioni di output del passaggio. |
param_defs
|
Definizioni di parametri di passaggio. Valore predefinito: None
|
create_sequencing_ports
|
Se true, le porte di sequenziazione verranno create per il modulo. Valore predefinito: True
|
allow_reuse
|
Se true, il modulo sarà disponibile per essere riutilizzato in pipeline future. Valore predefinito: True
|
version
|
Versione del modulo. Valore predefinito: None
|
arguments
|
Elenco di argomenti con annotazioni da usare quando si chiama questo modulo. Valore predefinito: None
|
Restituisce
Tipo | Descrizione |
---|---|
Oggetto def del modulo. |
create_node
Creare un nodo per PythonScriptStep e aggiungerlo al grafico specificato.
Questo metodo non deve essere usato direttamente. Quando viene creata un'istanza di una pipeline con ParallelRunStep, Azure Machine Learning passa automaticamente i parametri necessari tramite questo metodo in modo che il passaggio possa essere aggiunto a un grafo della pipeline che rappresenta il flusso di lavoro.
create_node(graph, default_datastore, context)
Parametri
Nome | Descrizione |
---|---|
graph
Necessario
|
Oggetto Grafico. |
default_datastore
Necessario
|
Archivio dati predefinito. |
context
Necessario
|
<xref:azureml.pipeline.core._GraphContext>
Contesto. |
Restituisce
Tipo | Descrizione |
---|---|
Nodo creato. |