Condividi tramite


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. Sono disponibili altri riferimenti.

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-notebooksal notebook .

Costruttore

ParallelRunStep(name, parallel_run_config, inputs, output=None, side_inputs=None, arguments=None, allow_reuse=True)

Parametri

Nome Descrizione
name
Necessario
str

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 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

Elenco dei 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/input. Se è false, verrà sempre generata una nuova esecuzione per questo passaggio durante l'esecuzione della pipeline.

Valore predefinito: True
name
Necessario
str

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 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

Elenco dei 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/input. Se è false, verrà sempre generata una nuova esecuzione 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 numero di nodi delle 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 come viene eseguita l'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 passaggio della pipeline.

Gli esempi di utilizzo delle classi ParallelRunStep e ParallelRunConfig per l'inferenza batch sono illustrati negli articoli seguenti:


   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
str

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 del passaggio.

Valore predefinito: None
create_sequencing_ports

Se true, verranno create le porte di sequenziazione per il modulo.

Valore predefinito: True
allow_reuse

Se true, il modulo sarà disponibile per essere riutilizzato nelle pipeline future.

Valore predefinito: True
version
str

Versione del modulo.

Valore predefinito: None
arguments

Elenco di argomenti con annotazioni da usare per la chiamata a 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 Grafico.

default_datastore
Necessario

Archivio dati predefinito.

context
Necessario
<xref:azureml.pipeline.core._GraphContext>

Contesto.

Restituisce

Tipo Descrizione

Nodo creato.