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. Najdete tam další odkazy.
Inicializuje konfigurační objekt.
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 aby pro experiment nastavil dočasné prostředí. Definice prostředí zodpovídá za definování požadovaných závislostí aplikace, jako jsou balíčky conda nebo pip. |
entry_script
Vyžadováno
|
Uživatelský skript, který se bude spouštět paralelně na více uzlech. Toto je určeno jako místní cesta k souboru. Pokud |
error_threshold
Vyžadováno
|
Počet selhání záznamů a TabularDataset selhání souborů, které FileDataset 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 určená pro celý vstup, nikoli pro jednotlivé mini dávky odeslané do metody run(). Rozsah je [-1, int.max]. -1 označuje ignorování všech selhání během zpracování. |
output_action
Vyžadováno
|
Jak by měl 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ílový výpočetní objekt, který se má použít pro provádění ParallelRunStep. Tento parametr může být zadán jako cílový objekt výpočetního objektu nebo jako název cílového výpočetního objektu v pracovním prostoru. |
node_count
Vyžadováno
|
Počet uzlů ve výpočetním cíli, které se používají ke spuštění ParallelRunStep. |
process_count_per_node
|
Počet pracovních procesů na uzel pro paralelní spuštění vstupního skriptu.
Pro počítač s GPU je výchozí hodnota 1.
U procesorového počítače je výchozí hodnota 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 v jednom volání run(). Pro vstup TabularDataset je toto pole přibližnou velikost dat, která uživatelský skript může zpracovat v jednom volání run(). Ukázkové hodnoty 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, který dá dávkové službě 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 v mini dávce Rozsah je [1, int.max]. Výchozí hodnota je 3. Mini batch with dequeue count greater than this will't be processed again and will be deleted 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 selhání překročí tuto hodnotu, úloha se přeruší. Tato prahová hodnota je určená pro celý vstup, nikoli pro jednotlivou minidávku odeslanou metodou run(). Rozsah je [-1, int.max]. -1 označuje ignorování všech selhání během zpracování. Mini dávka může při prvním zpracování selhat a pak po druhém pokusu uspět. Kontrola mezi prvním a druhým časem se počítá jako neúspěšná. Kontrola po druhém okamžiku se nezapočítá jako neúspěšná. Argument –error_threshold, –allowed_failed_count a –allowed_failed_percent může spolupracovat. Pokud je zadáno více než jedno, úloha se přeruší, pokud některý z nich překročí. 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 jednotlivou minidávku odeslanou metodou run(). Rozsah je [0, 100]. Hodnota 100 nebo 100.0 označuje ignorování všech selhání během zpracování. Kontrola se spustí po naplánování všech mini dávek. Argument –error_threshold, –allowed_failed_count a –allowed_failed_percent může spolupracovat. Pokud je zadáno více než jedno, úloha se přeruší, pokud některý z nich překročí. Default value: None
|
partition_keys
|
Klíče používané k rozdělení datové sady do minidávek. Pokud je zadáno, data se stejným klíčem se rozdělí 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, které jsou klíčem použitým k rozdělení vstupní datové sady. Pokud je však povýšeno na PipelineParameter, měly by být výchozí hodnoty str výpisu kódu JSON seznamu, protože typ seznamu není nyní podporován v PipelineParameter. 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í jsou nastavené 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 aby pro experiment nastavil dočasné prostředí. Definice prostředí zodpovídá za definování požadovaných závislostí aplikace, jako jsou balíčky conda nebo pip. |
entry_script
Vyžadováno
|
Uživatelský skript, který se bude spouštět paralelně na více uzlech. Toto je určeno jako místní cesta k souboru. Pokud |
error_threshold
Vyžadováno
|
Počet selhání záznamů a TabularDataset selhání souborů, které FileDataset 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 určená pro celý vstup, nikoli pro jednotlivé mini dávky odeslané do metody run(). Rozsah je [-1, int.max]. -1 označuje ignorování všech selhání během zpracování. |
output_action
Vyžadováno
|
Jak by měl 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ílový výpočetní objekt, který se má použít pro provádění ParallelRunStep. Tento parametr může být zadán jako cílový objekt výpočetního objektu nebo jako název cílového výpočetního objektu v pracovním prostoru. |
node_count
Vyžadováno
|
Počet uzlů ve výpočetním cíli, které se používají ke spuštění ParallelRunStep. |
process_count_per_node
Vyžadováno
|
Počet pracovních procesů na uzel pro paralelní spuštění vstupního skriptu.
Pro počítač s GPU je výchozí hodnota 1.
Výchozí hodnota pro počítač s procesorem je 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 v jednom volání run(). Pro vstup TabularDataset je toto pole přibližnou velikost dat, která uživatelský skript může zpracovat v jednom volání run(). Ukázkové hodnoty 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, který dá dávkové službě 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 v mini dávce Rozsah je [1, int.max]. Výchozí hodnota je 3. Mini batch with dequeue count greater than this will't be processed again and will be deleted 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 selhání překročí tuto hodnotu, úloha se přeruší. Tato prahová hodnota je určená pro celý vstup, nikoli pro jednotlivou minidávku odeslanou metodou run(). Rozsah je [-1, int.max]. -1 označuje ignorování všech selhání během zpracování. Mini dávka může při prvním zpracování selhat a pak po druhém pokusu uspět. Kontrola mezi prvním a druhým časem se počítá jako neúspěšná. Kontrola po druhém okamžiku se nezapočítá jako neúspěšná. Argument –error_threshold, –allowed_failed_count a –allowed_failed_percent může spolupracovat. Pokud je zadáno více než jedno, úloha se přeruší, pokud některý z nich překročí. |
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 jednotlivou minidávku odeslanou metodou run(). Rozsah je [0, 100]. Hodnota 100 nebo 100.0 označuje ignorování všech selhání během zpracování. Kontrola se spustí po naplánování všech mini dávek. Argument –error_threshold, –allowed_failed_count a –allowed_failed_percent může spolupracovat. Pokud je zadáno více než jedno, úloha se přeruší, pokud některý z nich překročí. |
partition_keys
Vyžadováno
|
Klíče používané k rozdělení datové sady do minidávek. Pokud je zadáno, data se stejným klíčem se rozdělí 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, které jsou klíčem použitým k rozdělení vstupní datové sady. Pokud je však povýšeno na PipelineParameter, měly by být výchozí hodnoty str výpisu kódu JSON seznamu, protože typ seznamu není nyní podporován v PipelineParameter. 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í jsou nastavené v procesu, ve kterém se spouští uživatelský skript. |
Poznámky
Třída ParallelRunConfig slouží k poskytnutí konfigurace pro ParallelRunStep třídu. ParallelRunConfig a ParallelRunStep je možné použít společně ke zpracování velkých objemů dat paralelně. 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ší vyladěné parametry pro urychlení paralelního ParallelRunConfig zpracování je možné řídit pomocí třídy. ParallelRunStep může pracovat s vstupem TabularDataset nebo FileDataset jako vstup.
Použití ParallelRunStep a ParallelRunConfig:
Vytvořte objekt, ParallelRunConfig který určuje, jak se provádí dávkové zpracování, s parametry pro řízení velikosti dávky, počtu uzlů na cílový výpočetní objekt a odkazem na váš vlastní skript Pythonu.
Vytvořte Objekt ParallelRunStep, který používá objekt ParallelRunConfig, definuje vstupy a výstupy pro krok.
Použijte nakonfigurovaný objekt ParallelRunStep stejně Pipeline 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
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 k uložení souboru. |