ParallelRunStep Classe
Crea un passaggio di Azure Machine Learning Pipeline 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.
Creare un passaggio di Azure ML Pipeline 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-notebooksnotebook .
- 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 essere compreso tra 3 e 32 caratteri lunghi. |
parallel_run_config
Necessario
|
Oggetto ParallelRunConfig usato 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 separatamente in mini-batch e ognuno dei mini batch viene trattato allo stesso modo 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 dei dati di riferimento di input lato. Gli input lato non verranno partizionati come dati di input. Valore predefinito: None
|
arguments
|
Elenco degli 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 si tratta di false, una nuova esecuzione verrà sempre generata per questo passaggio durante l'esecuzione della pipeline. 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 essere compreso tra 3 e 32 caratteri lunghi. |
parallel_run_config
Necessario
|
Oggetto ParallelRunConfig usato 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 separatamente in mini-batch e ognuno dei mini batch viene trattato allo stesso modo 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 dei dati di riferimento di input lato. Gli input lato non verranno partizionati come dati di input. |
arguments
Necessario
|
Elenco degli 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 si tratta di false, una nuova esecuzione verrà sempre generata per questo passaggio durante l'esecuzione della pipeline. |
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 conteggio dei nodi di dimensioni batch e altri parametri tonnibili 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 il modo in cui viene eseguita l'elaborazione batch, con parametri per controllare le dimensioni batch, il numero di nodi per 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 proprio come si farebbe con altri tipi di passaggio 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 grafico 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 del passaggio param. 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 nelle pipeline future. Valore predefinito: True
|
version
|
Versione del modulo. Valore predefinito: None
|
arguments
|
Elenco di argomenti annotati 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 grafico della pipeline che rappresenta il flusso di lavoro.
create_node(graph, default_datastore, context)
Parametri
Nome | Descrizione |
---|---|
graph
Necessario
|
Oggetto Graph. |
default_datastore
Necessario
|
Archivio dati predefinito. |
context
Necessario
|
<xref:azureml.pipeline.core._GraphContext>
Contesto. |
Restituisce
Tipo | Descrizione |
---|---|
Nodo creato. |