ParallelRunConfig Klass
Definierar konfiguration för ett ParallelRunStep objekt.
Ett exempel på hur du använder ParallelRunStep finns i notebook-filen https://aka.ms/batch-inference-notebooks.
Felsökningsguide finns i https://aka.ms/prstsg. Du hittar fler referenser där.
Initiera konfigurationsobjektet.
Konstruktor
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)
Parametrar
| Name | Description |
|---|---|
|
environment
Obligatorisk
|
Miljödefinitionen som konfigurerar Python-miljön. Den kan konfigureras för att använda en befintlig Python-miljö eller för att konfigurera en temporär miljö för experimentet. Miljödefinitionen ansvarar för att definiera nödvändiga programberoenden, till exempel conda- eller pip-paket. |
|
entry_script
Obligatorisk
|
Användarskript som ska köras parallellt på flera noder. Detta anges som en lokal filsökväg. Om |
|
error_threshold
Obligatorisk
|
Antalet postfel för TabularDataset och filfel för FileDataset som ska ignoreras under bearbetningen. Om antalet fel överskrider det här värdet avbryts jobbet. Tröskelvärdet för fel gäller för hela indata och inte för enskilda mini-batchar som skickas till run()-metoden. Intervallet är [-1, int.max]. -1 anger ignorera alla fel under bearbetningen. |
|
output_action
Obligatorisk
|
Hur utdata ska ordnas. Aktuella värden som stöds är "append_row" och "summary_only".
|
|
compute_target
Obligatorisk
|
AmlCompute eller
str
Beräkningsmål som ska användas för ParallelRunStep-körning. Den här parametern kan anges som ett beräkningsmålobjekt eller namnet på ett beräkningsmål på arbetsytan. |
|
node_count
Obligatorisk
|
Antal noder i beräkningsmålet som används för att köra ParallelRunStep. |
|
process_count_per_node
|
Antalet arbetsprocesser per nod för att köra postskriptet parallellt.
För GPU-dator är standardvärdet 1.
För CPU-dator är standardvärdet antalet kärnor.
En arbetsprocess anropar Standardvärde: None
|
|
mini_batch_size
|
För FileDataset-indata är det här fältet antalet filer som ett användarskript kan bearbeta i ett run()-anrop. För TabularDataset-indata är det här fältet den ungefärliga storleken på data som användarskriptet kan bearbeta i ett run()-anrop. Exempelvärden är 1024, 1024 KB, 10 MB och 1 GB. (valfritt är standardvärdet 10 filer för FileDataset och 1 MB för TabularDataset.) Standardvärde: None
|
|
source_directory
|
Sökväg till mappen som innehåller de Standardvärde: None
|
|
description
|
En beskrivning för att ge batchtjänsten som används i visningssyfte. Standardvärde: None
|
|
logging_level
|
En sträng med namnet på loggningsnivån, som definieras i loggning. Möjliga värden är "WARNING", "INFO" och "DEBUG". (valfritt, standardvärdet är "INFO".) Standardvärde: INFO
|
|
run_invocation_timeout
|
Timeout i sekunder för varje anrop av metoden run(). (valfritt, standardvärdet är 60.) Standardvärde: 60
|
|
run_max_try
|
Antalet maximala försök för en minibatch med misslyckad eller tidsgräns. Intervallet är [1, int.max]. Standardvärdet är 3. En minibatch med dequeueantal större än detta bearbetas inte igen och tas bort direkt. Standardvärde: 3
|
|
append_row_file_name
|
Namnet på utdatafilen om Standardvärde: None
|
|
allowed_failed_count
|
Antalet misslyckade minibatch som ska ignoreras under bearbetningen. Om det misslyckade antalet överskrider det här värdet avbryts jobbet. Det här tröskelvärdet gäller för hela indata i stället för den enskilda mini-batch som skickas till run()-metoden. Intervallet är [-1, int.max]. -1 anger ignorera alla fel under bearbetningen. En minibatch kan misslyckas första gången den bearbetas och lyckas sedan vid det andra försöket. Kontrollen mellan första och andra gången räknar den som misslyckad. Kontrollen efter den andra gången räknar den inte som misslyckad. Argumentet – error_threshold, – allowed_failed_count och – allowed_failed_percent kan fungera tillsammans. Om fler än en har angetts avbryts jobbet om det överskrider någon av dem. Standardvärde: None
|
|
allowed_failed_percent
|
Procentandelen misslyckade minibatch som ska ignoreras under bearbetningen. Om den misslyckade procenten överskrider det här värdet avbryts jobbet. Det här tröskelvärdet gäller för hela indata i stället för den enskilda mini-batch som skickas till run()-metoden. Intervallet är [0, 100]. 100 eller 100.0 anger ignorera alla fel under bearbetningen. Kontrollen startar när alla minibatch har schemalagts. Argumentet – error_threshold, – allowed_failed_count och – allowed_failed_percent kan fungera tillsammans. Om fler än en har angetts avbryts jobbet om det överskrider någon av dem. Standardvärde: None
|
|
partition_keys
|
De nycklar som används för att partitionera datauppsättningen i minibatch. Om det anges partitioneras data med samma nyckel i samma mini-batch. Om både partition_keys och mini_batch_size anges utlöses felet. Det bör vara en lista över str-element som var och en är en nyckel som används för att partitionering av indatauppsättningen. Men om de höjs upp till PipelineParameter bör standardvärdena vara json dump str i listan eftersom listtypen inte stöds i PipelineParameter för tillfället. Indata måste vara partitionerade datauppsättningar och partition_keys måste vara en delmängd av nycklarna för varje indatauppsättning för att detta ska fungera. Standardvärde: None
|
|
environment_variables
|
En ordlista med miljövariablers namn och värden. Dessa miljövariabler anges i den process där användarskript körs. Standardvärde: None
|
|
environment
Obligatorisk
|
Miljödefinitionen som konfigurerar Python-miljön. Den kan konfigureras för att använda en befintlig Python-miljö eller för att konfigurera en temporär miljö för experimentet. Miljödefinitionen ansvarar för att definiera nödvändiga programberoenden, till exempel conda- eller pip-paket. |
|
entry_script
Obligatorisk
|
Användarskript som ska köras parallellt på flera noder. Detta anges som en lokal filsökväg. Om |
|
error_threshold
Obligatorisk
|
Antalet postfel för TabularDataset och filfel för FileDataset som ska ignoreras under bearbetningen. Om antalet fel överskrider det här värdet avbryts jobbet. Tröskelvärdet för fel gäller för hela indata och inte för enskilda mini-batchar som skickas till run()-metoden. Intervallet är [-1, int.max]. -1 anger ignorera alla fel under bearbetningen. |
|
output_action
Obligatorisk
|
Hur utdata ska ordnas. Aktuella värden som stöds är "append_row" och "summary_only".
|
|
compute_target
Obligatorisk
|
AmlCompute eller
str
Beräkningsmål som ska användas för ParallelRunStep-körning. Den här parametern kan anges som ett beräkningsmålobjekt eller namnet på ett beräkningsmål på arbetsytan. |
|
node_count
Obligatorisk
|
Antal noder i beräkningsmålet som används för att köra ParallelRunStep. |
|
process_count_per_node
Obligatorisk
|
Antalet arbetsprocesser per nod för att köra postskriptet parallellt.
För en GPU-dator är standardvärdet 1.
För en CPU-dator är standardvärdet antalet kärnor.
En arbetsprocess anropar |
|
mini_batch_size
Obligatorisk
|
För FileDataset-indata är det här fältet antalet filer som ett användarskript kan bearbeta i ett run()-anrop. För TabularDataset-indata är det här fältet den ungefärliga storleken på data som användarskriptet kan bearbeta i ett run()-anrop. Exempelvärden är 1024, 1024 KB, 10 MB och 1 GB. (valfritt är standardvärdet 10 filer för FileDataset och 1 MB för TabularDataset.) |
|
source_directory
Obligatorisk
|
Sökväg till mappen som innehåller de |
|
description
Obligatorisk
|
En beskrivning för att ge batchtjänsten som används i visningssyfte. |
|
logging_level
Obligatorisk
|
En sträng med namnet på loggningsnivån, som definieras i loggning. Möjliga värden är "WARNING", "INFO" och "DEBUG". (valfritt, standardvärdet är "INFO".) |
|
run_invocation_timeout
Obligatorisk
|
Timeout i sekunder för varje anrop av metoden run(). (valfritt, standardvärdet är 60.) |
|
run_max_try
Obligatorisk
|
Antalet maximala försök för en minibatch med misslyckad eller tidsgräns. Intervallet är [1, int.max]. Standardvärdet är 3. En minibatch med dequeueantal större än detta bearbetas inte igen och tas bort direkt. |
|
append_row_file_name
Obligatorisk
|
Namnet på utdatafilen om |
|
allowed_failed_count
Obligatorisk
|
Antalet misslyckade minibatch som ska ignoreras under bearbetningen. Om det misslyckade antalet överskrider det här värdet avbryts jobbet. Det här tröskelvärdet gäller för hela indata i stället för den enskilda mini-batch som skickas till run()-metoden. Intervallet är [-1, int.max]. -1 anger ignorera alla fel under bearbetningen. En minibatch kan misslyckas första gången den bearbetas och lyckas sedan vid det andra försöket. Kontrollen mellan första och andra gången räknar den som misslyckad. Kontrollen efter den andra gången räknar den inte som misslyckad. Argumentet – error_threshold, – allowed_failed_count och – allowed_failed_percent kan fungera tillsammans. Om fler än en har angetts avbryts jobbet om det överskrider någon av dem. |
|
allowed_failed_percent
Obligatorisk
|
Procentandelen misslyckade minibatch som ska ignoreras under bearbetningen. Om den misslyckade procenten överskrider det här värdet avbryts jobbet. Det här tröskelvärdet gäller för hela indata i stället för den enskilda mini-batch som skickas till run()-metoden. Intervallet är [0, 100]. 100 eller 100.0 anger ignorera alla fel under bearbetningen. Kontrollen startar när alla minibatch har schemalagts. Argumentet – error_threshold, – allowed_failed_count och – allowed_failed_percent kan fungera tillsammans. Om fler än en har angetts avbryts jobbet om det överskrider någon av dem. |
|
partition_keys
Obligatorisk
|
De nycklar som används för att partitionera datauppsättningen i minibatch. Om det anges partitioneras data med samma nyckel i samma mini-batch. Om både partition_keys och mini_batch_size anges utlöses felet. Det bör vara en lista över str-element som var och en är en nyckel som används för att partitionering av indatauppsättningen. Men om de höjs upp till PipelineParameter bör standardvärdena vara json dump str i listan eftersom listtypen inte stöds i PipelineParameter för tillfället. Indata måste vara partitionerade datauppsättningar och partition_keys måste vara en delmängd av nycklarna för varje indatauppsättning för att detta ska fungera. |
|
environment_variables
Obligatorisk
|
En ordlista med miljövariablers namn och värden. Dessa miljövariabler anges i den process där användarskript körs. |
Kommentarer
Klassen ParallelRunConfig används för att tillhandahålla konfiguration för ParallelRunStep klassen. ParallelRunConfig och ParallelRunStep kan användas tillsammans för bearbetning av stora mängder data parallellt. Vanliga användningsfall är att träna en ML-modell eller köra slutsatsdragning offline för att generera förutsägelser i en batch med observationer. ParallelRunStep fungerar på så sätt att dina data delas upp i batchar som bearbetas parallellt. Batchstorleken, antalet noder och andra parametrar som kan ändras för att påskynda den parallella bearbetningen ParallelRunConfig kan styras med klassen. ParallelRunStep kan fungera med antingen TabularDataset eller FileDataset som indata.
Så här använder du ParallelRunStep och ParallelRunConfig:
Skapa ett ParallelRunConfig objekt för att ange hur batchbearbetning utförs, med parametrar för att styra batchstorlek, antal noder per beräkningsmål och en referens till ditt anpassade Python-skript.
Skapa ett ParallelRunStep-objekt som använder ParallelRunConfig-objektet, definierar indata och utdata för steget.
Använd det konfigurerade ParallelRunStep-objektet i ett Pipeline precis som med andra pipelinestegtyper.
Exempel på hur du arbetar med ParallelRunStep- och ParallelRunConfig-klasser för batchinferens beskrivs i följande artiklar:
Självstudie: Skapa en Azure Machine Learning-pipeline för batchbedömning. Den här artikeln visar hur du använder dessa två klasser för asynkron batchbedömning i en pipeline och gör det möjligt för en REST-slutpunkt att köra pipelinen.
Kör batchslutsatsdragning på stora datamängder med hjälp av Azure Machine Learning. Den här artikeln visar hur du bearbetar stora mängder data asynkront och parallellt med ett anpassat slutsatsdragningsskript och en förtränad bildklassificeringsmodell som bygger på MNIST-datauppsättningen.
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
)
Mer information om det här exemplet finns i notebook-filen https://aka.ms/batch-inference-notebooks.
Metoder
| load_yaml |
Läs in konfigurationsdata för parallell körning från en YAML-fil. |
| save_to_yaml |
Exportera konfigurationsdata för parallell körning till en YAML-fil. |
load_yaml
save_to_yaml
Exportera konfigurationsdata för parallell körning till en YAML-fil.
save_to_yaml(path)
Parametrar
| Name | Description |
|---|---|
|
path
Obligatorisk
|
Sökvägen som filen ska sparas till. |