ParallelRunConfig Classe
Definisce la configurazione per un ParallelRunStep oggetto.
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.
Inizializzare l'oggetto config.
- Ereditarietà
-
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBaseParallelRunConfig
Costruttore
ParallelRunConfig(environment, entry_script, error_threshold, output_action, compute_target, node_count, process_count_per_node=None, mini_batch_size=None, source_directory=None, description=None, logging_level='INFO', run_invocation_timeout=60, run_max_try=3, append_row_file_name=None, allowed_failed_count=None, allowed_failed_percent=None, partition_keys=None, environment_variables=None)
Parametri
Nome | Descrizione |
---|---|
environment
Necessario
|
Definizione di ambiente che configura l'ambiente Python. Può essere configurato per l'uso di un ambiente Python esistente o per configurare un ambiente temporaneo per l'esperimento. La definizione dell'ambiente è responsabile della definizione delle dipendenze dell'applicazione necessarie, ad esempio pacchetti conda o pip. |
entry_script
Necessario
|
Script utente che verrà eseguito in parallelo su più nodi. Viene specificato come percorso di file locale. Se |
error_threshold
Necessario
|
numero di errori di record per TabularDataset e di errori di file per FileDataset che devono essere ignorati durante l'elaborazione. Se il conteggio degli errori supera questo valore, il processo verrà interrotto. La soglia di errore è relativa all'intero input e non ai singoli mini batch inviati al metodo run(). L'intervallo è [-1, int.max]. -1 indica che tutti gli errori vengono ignorati durante l'elaborazione. |
output_action
Necessario
|
Modalità di organizzazione dell'output. I valori supportati correnti sono 'append_row' e 'summary_only'.
|
compute_target
Necessario
|
AmlCompute oppure
str
Destinazione di calcolo da usare per l'esecuzione parallelRunStep. Questo parametro può essere specificato come oggetto di destinazione di calcolo o come nome di una destinazione di calcolo nell'area di lavoro. |
node_count
Necessario
|
Numero di nodi nella destinazione di calcolo usata per l'esecuzione di ParallelRunStep. |
process_count_per_node
|
Numero di processi di lavoro per nodo per eseguire lo script di immissione in parallelo.
Per il computer GPU, il valore predefinito è 1.
Per il computer CPU, il valore predefinito è il numero di core.
Un processo di lavoro chiamerà Valore predefinito: None
|
mini_batch_size
|
Per l'input FileDataset, questo campo è il numero di file che uno script utente può elaborare in una sola chiamata run(). Per l'input TabularDataset, questo campo corrisponde alle dimensioni approssimative dei dati che lo script utente può elaborare in una chiamata run(). I valori di esempio sono 1024, 1024 KB, 10 MB e 1 GB. Facoltativo, il valore predefinito è 10 file per FileDataset e 1 MB per TabularDataset. Valore predefinito: None
|
source_directory
|
Percorso della cartella che contiene i Valore predefinito: None
|
description
|
Descrizione per assegnare al servizio batch utilizzato a scopo di visualizzazione. Valore predefinito: None
|
logging_level
|
Stringa del nome del livello di registrazione, definito in 'logging'. I valori possibili sono 'WARNING', 'INFO' e 'DEBUG'. (facoltativo, il valore predefinito è 'INFO'). Valore predefinito: INFO
|
run_invocation_timeout
|
Timeout in secondi per ogni chiamata del metodo run(). (facoltativo, il valore predefinito è 60.) Valore predefinito: 60
|
run_max_try
|
Numero massimo di tentativi per un mini batch non riuscito o di timeout. L'intervallo è [1, int.max]. Il valore predefinito è 3. Un mini batch con conteggio di rimozione dalla coda maggiore di questo non verrà elaborato di nuovo e verrà eliminato direttamente. Valore predefinito: 3
|
append_row_file_name
|
Nome del file di output se è Valore predefinito: None
|
allowed_failed_count
|
Numero di mini batch non riusciti che devono essere ignorati durante l'elaborazione. Se il conteggio degli errori supera questo valore, il processo verrà interrotto. Questa soglia è relativa all'intero input anziché al singolo mini batch inviato al metodo run(). L'intervallo è [-1, int.max]. -1 indica che tutti gli errori vengono ignorati durante l'elaborazione. Un mini batch potrebbe non riuscire la prima volta che viene elaborato e quindi avere esito positivo al secondo tentativo. Il controllo tra la prima e la seconda volta lo conteggierà come non riuscito. Il controllo dopo la seconda volta non verrà conteggiato come non riuscito. L'argomento –error_threshold, –allowed_failed_count e –allowed_failed_percent può funzionare insieme. Se più di uno specificato, il processo verrà interrotto se supera uno di essi. Valore predefinito: None
|
allowed_failed_percent
|
Percentuale di mini batch non riusciti che devono essere ignorati durante l'elaborazione. Se la percentuale non riuscita supera questo valore, il processo verrà interrotto. Questa soglia è relativa all'intero input anziché al singolo mini batch inviato al metodo run(). L'intervallo è [0, 100]. 100 o 100.0 indica che tutti gli errori durante l'elaborazione vengono ignorati. Il controllo viene avviato dopo che tutti i mini batch sono stati pianificati. L'argomento –error_threshold, –allowed_failed_count e –allowed_failed_percent può funzionare insieme. Se più di uno specificato, il processo verrà interrotto se supera uno di essi. Valore predefinito: None
|
partition_keys
|
Chiavi usate per partizionare il set di dati in mini batch. Se specificato, i dati con la stessa chiave verranno partizionati nello stesso mini batch. Se vengono specificati sia partition_keys che mini_batch_size, verrà generato un errore. Deve essere un elenco di elementi str ognuno dei quali è una chiave usata per partizionare il set di dati di input. Tuttavia, se promosso a PipelineParameter, i valori predefiniti devono essere lo str del dump json dell'elenco perché il tipo di elenco non è supportato in PipelineParameter per il momento. Gli input devono essere set di dati partizionati e il partition_keys deve essere un subset delle chiavi di ogni set di dati di input per il funzionamento. Valore predefinito: None
|
environment_variables
|
Dizionario di nomi e valori delle variabili di ambiente. Queste variabili di ambiente vengono impostate nel processo in cui viene eseguito lo script utente. Valore predefinito: None
|
environment
Necessario
|
Definizione di ambiente che configura l'ambiente Python. Può essere configurato per l'uso di un ambiente Python esistente o per configurare un ambiente temporaneo per l'esperimento. La definizione dell'ambiente è responsabile della definizione delle dipendenze dell'applicazione necessarie, ad esempio pacchetti conda o pip. |
entry_script
Necessario
|
Script utente che verrà eseguito in parallelo su più nodi. Viene specificato come percorso di file locale. Se |
error_threshold
Necessario
|
numero di errori di record per TabularDataset e di errori di file per FileDataset che devono essere ignorati durante l'elaborazione. Se il conteggio degli errori supera questo valore, il processo verrà interrotto. La soglia di errore è per l'intero input e non per singoli mini-batch inviati al metodo run(). L'intervallo è [-1, int.max]. -1 indica che ignora tutti gli errori durante l'elaborazione. |
output_action
Necessario
|
Come organizzare l'output. I valori supportati correnti sono "append_row" e "summary_only".
|
compute_target
Necessario
|
AmlCompute oppure
str
Destinazione di calcolo da usare per l'esecuzione parallelRunStep. Questo parametro può essere specificato come oggetto di destinazione di calcolo o come nome di una destinazione di calcolo nell'area di lavoro. |
node_count
Necessario
|
Numero di nodi nella destinazione di calcolo usata per l'esecuzione di ParallelRunStep. |
process_count_per_node
Necessario
|
Numero di processi di lavoro per nodo per eseguire lo script di immissione in parallelo.
Per un computer GPU, il valore predefinito è 1.
Per un computer CPU, il valore predefinito è il numero di core.
Un processo di lavoro chiama |
mini_batch_size
Necessario
|
Per l'input di FileDataset, questo campo è il numero di file che uno script utente può elaborare in una chiamata run(). Per l'input tabularDataset, questo campo è la dimensione approssimativa dei dati che lo script utente può elaborare in una chiamata run(). I valori di esempio sono 1024, 1024 KB, 10 MB e 1 GB. Facoltativo, il valore predefinito è 10 file per FileDataset e 1MB per TabularDataset. |
source_directory
Necessario
|
Percorso della cartella contenente i file di supporto e usati per l'esecuzione |
description
Necessario
|
Descrizione da assegnare al servizio batch usato a scopo di visualizzazione. |
logging_level
Necessario
|
Stringa del nome del livello di registrazione, definito in 'logging'. I valori possibili sono "WARNING", "INFO" e "DEBUG". (facoltativo, il valore predefinito è 'INFO'). |
run_invocation_timeout
Necessario
|
Timeout in secondi per ogni chiamata del metodo run(). (facoltativo, il valore predefinito è 60.) |
run_max_try
Necessario
|
Numero di tentativi massimi per un batch mini di timeout non riuscito o di timeout. L'intervallo è [1, int.max]. Il valore predefinito è 3. Un mini batch con conteggio dequeue maggiore di questo non verrà elaborato di nuovo e verrà eliminato direttamente. |
append_row_file_name
Necessario
|
Nome del file di output se è |
allowed_failed_count
Necessario
|
Numero di mini batch non riusciti che devono essere ignorati durante l'elaborazione. Se il conteggio non riuscito supera questo valore, il processo verrà interrotto. Questa soglia è per l'intero input anziché per il singolo mini-batch inviato al metodo run(). L'intervallo è [-1, int.max]. -1 indica che ignora tutti gli errori durante l'elaborazione. Un mini batch potrebbe non riuscire la prima volta che viene elaborato e quindi riuscire al secondo tentativo. Il controllo tra la prima e la seconda volta verrà conteggiato come non riuscito. Il controllo dopo la seconda volta non lo conteggierà come non riuscito. L'argomento –error_threshold, –allowed_failed_count e –allowed_failed_percent può collaborare. Se più di uno specificato, il processo verrà interrotto se supera uno di essi. |
allowed_failed_percent
Necessario
|
Percentuale di mini batch non riusciti che devono essere ignorati durante l'elaborazione. Se la percentuale non riuscita supera questo valore, il processo verrà interrotto. Questa soglia è per l'intero input anziché per il singolo mini-batch inviato al metodo run(). L'intervallo è [0, 100]. 100 o 100.0 indica l'ignorare tutti gli errori durante l'elaborazione. Il controllo inizia dopo che tutti i mini batch sono stati pianificati. L'argomento –error_threshold, –allowed_failed_count e –allowed_failed_percent può collaborare. Se più di uno specificato, il processo verrà interrotto se supera uno di essi. |
partition_keys
Necessario
|
Chiavi usate per partizionare il set di dati in mini-batch. Se specificato, i dati con la stessa chiave verranno partizionati nello stesso mini-batch. Se vengono specificati sia partition_keys che mini_batch_size, verrà generato un errore. Deve essere un elenco di elementi str ogni chiave usata per partizionare il set di dati di input. Tuttavia, se promosso a PipelineParameter, i valori predefiniti devono essere lo str di dump json dell'elenco perché il tipo di elenco non è supportato in PipelineParameter per il momento. Gli input devono essere set di dati partizionati e il partition_keys deve essere un subset delle chiavi di ogni set di dati di input per il funzionamento. |
environment_variables
Necessario
|
Dizionario dei nomi e dei valori delle variabili di ambiente. Queste variabili di ambiente vengono impostate nel processo in cui viene eseguito lo script utente. |
Commenti
La classe ParallelRunConfig viene usata per fornire la configurazione per la ParallelRunStep classe. ParallelRunConfig e ParallelRunStep possono essere usati insieme per l'elaborazione di 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. Le dimensioni del batch, il conteggio dei nodi e altri parametri di tonno per velocizzare l'elaborazione parallela possono essere controllati con la ParallelRunConfig classe . ParallelRunStep può funzionare con TabularDataset o FileDataset come input.
Per usare ParallelRunStep e ParallelRunConfig:
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, definisce 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", # or partition_keys=["key1", "key2"], which is another way to partition the
# input to mini-batches, refer to the parameter description for details
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
run_max_try=3,
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
load_yaml |
Caricare i dati di configurazione di esecuzione parallela da un file YAML. |
save_to_yaml |
Esportare i dati di configurazione di esecuzione parallela in un file YAML. |
load_yaml
Caricare i dati di configurazione di esecuzione parallela da un file YAML.
static load_yaml(workspace, path)
Parametri
Nome | Descrizione |
---|---|
workspace
Necessario
|
Area di lavoro da cui leggere i dati di configurazione. |
path
Necessario
|
Percorso da cui caricare la configurazione. |
save_to_yaml
Esportare i dati di configurazione di esecuzione parallela in un file YAML.
save_to_yaml(path)
Parametri
Nome | Descrizione |
---|---|
path
Necessario
|
Percorso in cui salvare il file. |