ParallelRunConfig Třída
Definuje konfiguraci objektu ParallelRunStep .
Příklad použití ParallelRunStep najdete v poznámkovém bloku https://aka.ms/batch-inference-notebooks.
Průvodce odstraňováním potíží najdete v tématu https://aka.ms/prstsg. Další odkazy najdete tady.
Inicializuje objekt konfigurace.
- Dědičnost
-
azureml.pipeline.core._parallel_run_config_base._ParallelRunConfigBaseParallelRunConfig
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)
Parametry
Name | Description |
---|---|
environment
Vyžadováno
|
Definice prostředí, která konfiguruje prostředí Pythonu. Dá se nakonfigurovat tak, aby používal existující prostředí Pythonu nebo nastavil dočasné prostředí pro experiment. Definice prostředí zodpovídá za definování požadovaných závislostí aplikací, jako jsou balíčky conda nebo pip. |
entry_script
Vyžadováno
|
Uživatelský skript, který se spustí paralelně na více uzlech. Tato cesta je určena jako místní cesta k souboru. Pokud |
error_threshold
Vyžadováno
|
Počet selhání záznamů a TabularDataset selhání FileDataset souborů, které by se měly během zpracování ignorovat. Pokud počet chyb překročí tuto hodnotu, úloha se přeruší. Prahová hodnota chyby je pro celý vstup, nikoli pro jednotlivé minidávkové dávky odesílané do metody run(). Rozsah je [-1, int.max]. -1 znamená ignorovat všechna selhání během zpracování. |
output_action
Vyžadováno
|
Jak má být výstup uspořádaný. Aktuálně podporované hodnoty jsou "append_row" a "summary_only".
|
compute_target
Vyžadováno
|
AmlCompute nebo
str
Cíl výpočetních prostředků, který se má použít ke spuštění ParallelRunStep. Tento parametr je možné zadat jako cílový objekt výpočetního objektu nebo název cílového výpočetního objektu v pracovním prostoru. |
node_count
Vyžadováno
|
Počet uzlů v cílovém výpočetním objektu, které se používají ke spuštění kroku ParallelRunStep. |
process_count_per_node
|
Počet pracovních procesů na uzel, které mají paralelně spustit vstupní skript.
Pro počítač s GPU je výchozí hodnota 1.
Pro počítač s procesorem je výchozí hodnotou počet jader.
Pracovní proces bude opakovaně volat Default value: None
|
mini_batch_size
|
Pro vstup FileDataset je toto pole počet souborů, které může uživatelský skript zpracovat při jednom volání run(). Pro vstup TabularDataset toto pole představuje přibližnou velikost dat, která může uživatelský skript zpracovat při jednom volání run(). Příklady hodnot jsou 1024, 1024 kB, 10 MB a 1 GB. (Volitelné, výchozí hodnota je 10 souborů pro FileDataset a 1 MB pro TabularDataset.) Default value: None
|
source_directory
|
Cesta ke složce, která obsahuje Default value: None
|
description
|
Popis dávkové služby používané pro účely zobrazení. Default value: None
|
logging_level
|
Řetězec názvu úrovně protokolování, který je definován v "protokolování". Možné hodnoty jsou WARNING, INFO a DEBUG. (Volitelné, výchozí hodnota je INFO.) Default value: INFO
|
run_invocation_timeout
|
Časový limit v sekundách pro každé vyvolání metody run() (volitelné, výchozí hodnota je 60.) Default value: 60
|
run_max_try
|
Počet maximálních pokusů o neúspěšnou nebo vypršení časového limitu mini dávky. Rozsah je [1, int.max]. Výchozí hodnota je 3. Minidávku s vyšším počtem vyřazení z fronty se znovu nezpracuje a odstraní se přímo. Default value: 3
|
append_row_file_name
|
Název výstupního souboru, pokud Default value: None
|
allowed_failed_count
|
Počet neúspěšných mini dávek, které by se měly během zpracování ignorovat. Pokud počet neúspěšných položek překročí tuto hodnotu, úloha se přeruší. Tato prahová hodnota je určená pro celý vstup, nikoli pro jednotlivé minidávku odesílané do metody run(). Rozsah je [-1, int.max]. -1 znamená ignorovat všechna selhání během zpracování. Mini dávka může selhat při prvním zpracování a pak může být úspěšná při druhém pokusu. Kontrola mezi prvním a druhým časem se počítá jako neúspěšná. Při druhé kontrole se nepočítají jako neúspěšné. Argumenty –error_threshold, –allowed_failed_count a –allowed_failed_percent můžou fungovat společně. Pokud je zadáno více než jeden, úloha bude přerušena, pokud překročí některou z nich. Default value: None
|
allowed_failed_percent
|
Procento neúspěšných mini dávek, které by se měly během zpracování ignorovat. Pokud procento selhání překročí tuto hodnotu, úloha se přeruší. Tato prahová hodnota je určená pro celý vstup, nikoli pro jednotlivé minidávku odesílané do metody run(). Rozsah je [0, 100]. 100 nebo 100.0 znamená ignorovat všechna selhání během zpracování. Kontrola se spustí po naplánování všech mini dávek. Argumenty –error_threshold, –allowed_failed_count a –allowed_failed_percent můžou fungovat společně. Pokud je zadáno více než jeden, úloha bude přerušena, pokud překročí některou z nich. Default value: None
|
partition_keys
|
Klíče používané k rozdělení datové sady do minidávek. Pokud je tato hodnota zadána, budou data se stejným klíčem rozdělena do stejné minidávkové dávky. Pokud jsou zadány partition_keys i mini_batch_size, dojde k chybě. Měl by to být seznam prvků str, z nichž každý je klíčem použitým k dělení vstupní datové sady. Pokud je však povýšen na PipelineParameter, výchozí hodnoty by měly být v seznamu výpisu kódu JSON, protože typ seznamu není v PipelineParameter v současné chvíli podporován. Vstupy musí být dělené datové sady a partition_keys musí být podmnožinou klíčů každé vstupní datové sady, aby to fungovalo. Default value: None
|
environment_variables
|
Slovník názvů a hodnot proměnných prostředí. Tyto proměnné prostředí se nastavují v procesu, ve kterém se spouští uživatelský skript. Default value: None
|
environment
Vyžadováno
|
Definice prostředí, která konfiguruje prostředí Pythonu. Dá se nakonfigurovat tak, aby používal existující prostředí Pythonu nebo nastavil dočasné prostředí pro experiment. Definice prostředí zodpovídá za definování požadovaných závislostí aplikací, jako jsou balíčky conda nebo pip. |
entry_script
Vyžadováno
|
Uživatelský skript, který se spustí paralelně na více uzlech. Tato cesta je určena jako místní cesta k souboru. Pokud |
error_threshold
Vyžadováno
|
Počet selhání záznamů a TabularDataset selhání FileDataset souborů, které by se měly během zpracování ignorovat. Pokud počet chyb překročí tuto hodnotu, úloha se přeruší. Prahová hodnota chyby je pro celý vstup, nikoli pro jednotlivé minidávkové dávky odesílané do metody run(). Rozsah je [-1, int.max]. -1 znamená ignorovat všechna selhání během zpracování. |
output_action
Vyžadováno
|
Jak má být výstup uspořádaný. Aktuálně podporované hodnoty jsou "append_row" a "summary_only".
|
compute_target
Vyžadováno
|
AmlCompute nebo
str
Cíl výpočetních prostředků, který se má použít ke spuštění ParallelRunStep. Tento parametr je možné zadat jako cílový objekt výpočetního objektu nebo název cílového výpočetního objektu v pracovním prostoru. |
node_count
Vyžadováno
|
Počet uzlů v cílovém výpočetním objektu, které se používají ke spuštění kroku ParallelRunStep. |
process_count_per_node
Vyžadováno
|
Počet pracovních procesů na uzel, které mají paralelně spustit vstupní skript.
Pro počítač s GPU je výchozí hodnota 1.
Pro počítač s procesorem je výchozí hodnotou počet jader.
Pracovní proces bude opakovaně volat |
mini_batch_size
Vyžadováno
|
Pro vstup FileDataset je toto pole počet souborů, které může uživatelský skript zpracovat při jednom volání run(). Pro vstup TabularDataset toto pole představuje přibližnou velikost dat, která může uživatelský skript zpracovat při jednom volání run(). Příklady hodnot jsou 1024, 1024 kB, 10 MB a 1 GB. (Volitelné, výchozí hodnota je 10 souborů pro FileDataset a 1 MB pro TabularDataset.) |
source_directory
Vyžadováno
|
Cesta ke složce, která obsahuje |
description
Vyžadováno
|
Popis dávkové služby používané pro účely zobrazení. |
logging_level
Vyžadováno
|
Řetězec názvu úrovně protokolování, který je definován v "protokolování". Možné hodnoty jsou WARNING, INFO a DEBUG. (Volitelné, výchozí hodnota je INFO.) |
run_invocation_timeout
Vyžadováno
|
Časový limit v sekundách pro každé vyvolání metody run() (volitelné, výchozí hodnota je 60.) |
run_max_try
Vyžadováno
|
Počet maximálních pokusů o neúspěšnou nebo vypršení časového limitu mini dávky. Rozsah je [1, int.max]. Výchozí hodnota je 3. Minidávku s vyšším počtem vyřazení z fronty se znovu nezpracuje a odstraní se přímo. |
append_row_file_name
Vyžadováno
|
Název výstupního souboru, pokud |
allowed_failed_count
Vyžadováno
|
Počet neúspěšných mini dávek, které by se měly během zpracování ignorovat. Pokud počet neúspěšných položek překročí tuto hodnotu, úloha se přeruší. Tato prahová hodnota je určená pro celý vstup, nikoli pro jednotlivé minidávku odesílané do metody run(). Rozsah je [-1, int.max]. -1 znamená ignorovat všechna selhání během zpracování. Mini dávka může selhat při prvním zpracování a pak může být úspěšná při druhém pokusu. Kontrola mezi prvním a druhým časem se počítá jako neúspěšná. Při druhé kontrole se nepočítají jako neúspěšné. Argumenty –error_threshold, –allowed_failed_count a –allowed_failed_percent můžou fungovat společně. Pokud je zadáno více než jeden, úloha bude přerušena, pokud překročí některou z nich. |
allowed_failed_percent
Vyžadováno
|
Procento neúspěšných mini dávek, které by se měly během zpracování ignorovat. Pokud procento selhání překročí tuto hodnotu, úloha se přeruší. Tato prahová hodnota je určená pro celý vstup, nikoli pro jednotlivé minidávku odesílané do metody run(). Rozsah je [0, 100]. 100 nebo 100.0 znamená ignorovat všechna selhání během zpracování. Kontrola se spustí po naplánování všech mini dávek. Argumenty –error_threshold, –allowed_failed_count a –allowed_failed_percent můžou fungovat společně. Pokud je zadáno více než jeden, úloha bude přerušena, pokud překročí některou z nich. |
partition_keys
Vyžadováno
|
Klíče používané k rozdělení datové sady do minidávek. Pokud je tato hodnota zadána, budou data se stejným klíčem rozdělena do stejné minidávkové dávky. Pokud jsou zadány partition_keys i mini_batch_size, dojde k chybě. Měl by to být seznam prvků str, z nichž každý je klíčem použitým k dělení vstupní datové sady. Pokud je však povýšen na PipelineParameter, výchozí hodnoty by měly být v seznamu výpisu kódu JSON, protože typ seznamu není v PipelineParameter v současné chvíli podporován. Vstupy musí být dělené datové sady a partition_keys musí být podmnožinou klíčů každé vstupní datové sady, aby to fungovalo. |
environment_variables
Vyžadováno
|
Slovník názvů a hodnot proměnných prostředí. Tyto proměnné prostředí se nastavují v procesu, ve kterém se spouští uživatelský skript. |
Poznámky
Třída ParallelRunConfig se používá k poskytování konfigurace pro ParallelRunStep třídu. ParallelRunConfig a ParallelRunStep je možné použít společně ke paralelnímu zpracování velkých objemů dat. Mezi běžné případy použití patří trénování modelu ML nebo spuštění offline odvozování za účelem vygenerování predikcí na základě série pozorování. Krok paralelního spuštění funguje tak, že rozdělí data do dávek, které se zpracují paralelně. Velikost dávky, počet uzlů a další upravitelné parametry pro urychlení paralelního ParallelRunConfig zpracování lze řídit pomocí třídy . ParallelRunStep může pracovat se vstupem nebo TabularDatasetFileDataset .
Použití ParallelRunStep a ParallelRunConfig:
Vytvořte objekt pro ParallelRunConfig určení způsobu dávkového zpracování s parametry pro řízení velikosti dávky, počtu uzlů na cílový výpočetní objekt a odkazem na vlastní skript Pythonu.
Vytvořte Objekt ParallelRunStep, který používá objekt ParallelRunConfig, definuje vstupy a výstupy pro krok.
Použijte nakonfigurovaný objekt ParallelRunStep v objektu Pipeline stejně jako u jiných typů kroků kanálu.
Příklady práce s třídami ParallelRunStep a ParallelRunConfig pro dávkové odvozování jsou popsány v následujících článcích:
Kurz: Vytvoření kanálu služby Azure Machine Learning pro dávkové bodování. Tento článek popisuje, jak s využitím těchto dvou tříd zajistit v kanálu asynchronní dávkové bodování a umožnit spuštění kanálu na koncovém bodu REST.
Spouštění dávkového odvozování pro velké množství dat pomocí služby Azure Machine Learning. Tento článek popisuje, jak asynchronně a paralelně zpracovávat velké množství dat s využitím vlastního skriptu pro odvozování a předem natrénovaného modelu klasifikace obrázků založeného na datové sadě 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
)
Další informace o tomto příkladu najdete v poznámkovém bloku https://aka.ms/batch-inference-notebooks.
Metody
load_yaml |
Načtení konfiguračních dat paralelního spuštění ze souboru YAML |
save_to_yaml |
Exportujte konfigurační data paralelního spuštění do souboru YAML. |
load_yaml
Načtení konfiguračních dat paralelního spuštění ze souboru YAML
static load_yaml(workspace, path)
Parametry
Name | Description |
---|---|
workspace
Vyžadováno
|
Pracovní prostor, ze který chcete načíst konfigurační data. |
path
Vyžadováno
|
Cesta, ze které se má načíst konfigurace. |
save_to_yaml
Exportujte konfigurační data paralelního spuštění do souboru YAML.
save_to_yaml(path)
Parametry
Name | Description |
---|---|
path
Vyžadováno
|
Cesta, do které chcete soubor uložit. |