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.
Inicializujte 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
- environment
- Environment
Definice prostředí, která konfiguruje prostředí Pythonu. Můžete ho 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
- str
Uživatelský skript, který se spustí paralelně na více uzlech. Tato hodnota je určena jako místní cesta k souboru. Pokud source_directory
je zadaný parametr , entry_script
jedná se o relativní cestu v adresáři. Jinak to může být libovolná cesta přístupná na počítači.
Entry_script by měla obsahovat dvě funkce: init()
: Tato funkce by se měla používat pro jakoukoli nákladnou nebo běžnou přípravu pro následné odvozování, například pro deserializaci a načtení modelu do globálního objektu.
run(mini_batch)
: Metoda, která se má paralelizovat. Každé vyvolání bude mít jednu minidávku.
'mini_batch': Dávkové odvozování vyvolá metodu run a předá metodě jako argument buď seznam, nebo datový rámec Pandas. Každá položka v min_batch bude cesta k souboru, pokud je vstup FileDataset, pandas dataframe, pokud vstup je TabularDataset.
Metoda run() by měla vrátit datový rámec Pandas nebo pole.
Pro append_row output_action jsou tyto vrácené prvky připojeny do společného výstupního souboru.
U summary_only se obsah elementů ignoruje. U všech výstupních akcí každý vrácený výstupní prvek označuje jeden úspěšný odvození vstupního prvku v minidávce vstupu.
Každý paralelní pracovní proces bude volat init jednou a pak opakovat funkci spuštění , dokud se nezpracují všechny minidávky.
- error_threshold
- int
Počet selhání záznamů a TabularDataset selhání souborů pro FileDataset , 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, a ne pro jednotlivé minidávky odeslané do metody run(). Rozsah je [-1, int.max]. -1 znamená, že se při zpracování ignorují všechna selhání.
- output_action
- str
Jak by měl být výstup uspořádaný. Aktuální podporované hodnoty jsou "append_row" a "summary_only".
- 'append_row' – všechny hodnoty výstupu volání metody run() se agregují do jednoho jedinečného souboru s názvem parallel_run_step.txt, který se vytvoří ve výstupním umístění.
- summary_only – očekává se, že uživatelský skript uloží samotný výstup. Pro každou úspěšně zpracovanou vstupní položku se stále očekává výstupní řádek. Systém používá tento výstup pouze pro výpočet prahové hodnoty chyby (ignoruje skutečnou hodnotu řádku).
- compute_target
- AmlCompute nebo str
Cílový výpočetní objekt, který se má použít ke spuštění ParallelRunStep. Tento parametr je možné zadat jako cílový objekt výpočetních prostředků nebo jako název cílového výpočetního objektu v pracovním prostoru.
- node_count
- int
Počet uzlů ve výpočetním cíli, které se používají ke spuštění ParallelRunStep
- process_count_per_node
- int
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 run()
předáním minimální dávky, kterou získá.
Celkový počet pracovních procesů v úloze je process_count_per_node * node_count
, který určuje maximální počet paralelně spuštěných run()
procesů.
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
- str
Cesta ke složce, která obsahuje entry_script
podpůrné soubory a použité ke spuštění na cílovém výpočetním objektu.
- logging_level
- str
Ř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
- int
Časový limit v sekundách pro každé vyvolání metody run() (volitelné, výchozí hodnota je 60.)
- run_max_try
- int
Maximální počet pokusů o neúspěšnou nebo vypršení časového limitu minidávce. Rozsah je [1, int.max]. Výchozí hodnota je 3. Minidávce s větším počtem vyřazení z fronty se už nezpracuje a odstraní se přímo.
- append_row_file_name
- str
Název výstupního souboru, pokud output_action
je "append_row".
(volitelné, výchozí hodnota je "parallel_run_step.txt"))
- allowed_failed_count
- int
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 jednotlivé minidávku odesílané metodě run(). Rozsah je [-1, int.max]. -1 znamená, že se při zpracování ignorují všechna selhání. Minidávce může při prvním zpracování selhat a pak může být úspěšná při druhém pokusu. Při kontrole mezi prvním a druhým časem se počítá jako neúspěšná. Kontrola po druhém čase ji nebude považovat za neúspěšnou. Argumenty –error_threshold, –allowed_failed_count a –allowed_failed_percent můžou fungovat společně. Pokud je zadáno více než jedna, úloha se přeruší, pokud překročí některou z nich.
- allowed_failed_percent
- float
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é metodě run(). Rozsah je [0, 100]. 100 nebo 100.0 znamená, že se při zpracování ignorují všechna selhá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ž jedna, úloha se přeruší, pokud překročí některou z nich.
Klíče použité k rozdělení datové sady do minidávek. Pokud zadáte, data se stejným klíčem se rozdělí do stejné minidávy. 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 rozdělení vstupní datové sady. Pokud je však povýšen na PipelineParameter, výchozí hodnoty by měly být json dump str seznamu, protože typ seznamu není v PipelineParameter zatím podporovaný. 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.
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.
- environment
- Environment
Definice prostředí, která konfiguruje prostředí Pythonu. Můžete ho 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
- str
Uživatelský skript, který se spustí paralelně na více uzlech. Tato hodnota je určena jako místní cesta k souboru. Pokud source_directory
je zadaný parametr , entry_script
jedná se o relativní cestu v adresáři. Jinak to může být libovolná cesta přístupná na počítači.
Entry_script by měla obsahovat dvě funkce: init()
: Tato funkce by se měla používat pro jakoukoli nákladnou nebo běžnou přípravu pro následné odvozování, například pro deserializaci a načtení modelu do globálního objektu.
run(mini_batch)
: Metoda, která se má paralelizovat. Každé vyvolání bude mít jednu minidávku.
'mini_batch': Dávkové odvozování vyvolá metodu run a předá metodě jako argument buď seznam, nebo datový rámec Pandas. Každá položka v min_batch bude cesta k souboru, pokud je vstup FileDataset, pandas dataframe, pokud vstup je TabularDataset.
Metoda run() by měla vrátit datový rámec Pandas nebo pole.
Pro append_row output_action jsou tyto vrácené prvky připojeny do společného výstupního souboru.
U summary_only se obsah elementů ignoruje. U všech výstupních akcí každý vrácený výstupní prvek označuje jeden úspěšný odvození vstupního prvku v minidávce vstupu.
Každý paralelní pracovní proces bude volat init jednou a pak opakovat funkci spuštění , dokud se nezpracují všechny minidávky.
- error_threshold
- int
Počet selhání záznamů a TabularDataset selhání souborů pro FileDataset , 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, a ne pro jednotlivé minidávky odeslané do metody run(). Rozsah je [-1, int.max]. -1 znamená, že se při zpracování ignorují všechna selhání.
- output_action
- str
Jak by měl být výstup uspořádaný. Aktuální podporované hodnoty jsou "append_row" a "summary_only".
- 'append_row' – všechny hodnoty výstupu volání metody run() se agregují do jednoho jedinečného souboru s názvem parallel_run_step.txt, který se vytvoří ve výstupním umístění.
- summary_only – očekává se, že uživatelský skript uloží samotný výstup. Pro každou úspěšně zpracovanou vstupní položku se stále očekává výstupní řádek. Systém používá tento výstup pouze pro výpočet prahové hodnoty chyby (ignoruje skutečnou hodnotu řádku).
- compute_target
- AmlCompute nebo str
Cílový výpočetní objekt, který se má použít ke spuštění ParallelRunStep. Tento parametr je možné zadat jako cílový objekt výpočetních prostředků nebo jako název cílového výpočetního objektu v pracovním prostoru.
- node_count
- int
Počet uzlů ve výpočetním cíli, které se používají ke spuštění ParallelRunStep
- process_count_per_node
- int
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 run()
předáním minimální dávky, kterou získá.
Celkový počet pracovních procesů v úloze je process_count_per_node * node_count
, který určuje maximální počet paralelně spuštěných run()
procesů.
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
- str
Cesta ke složce, která obsahuje entry_script
podpůrné soubory a použité ke spuštění na cílovém výpočetním objektu.
- logging_level
- str
Ř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
- int
Časový limit v sekundách pro každé vyvolání metody run() (volitelné, výchozí hodnota je 60.)
- run_max_try
- int
Maximální počet pokusů o neúspěšnou nebo vypršení časového limitu minidávce. Rozsah je [1, int.max]. Výchozí hodnota je 3. Minidávce s větším počtem vyřazení z fronty se už nezpracuje a odstraní se přímo.
- append_row_file_name
- str
Název výstupního souboru, pokud output_action
je "append_row".
(volitelné, výchozí hodnota je "parallel_run_step.txt"))
- allowed_failed_count
- int
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 jednotlivé minidávku odesílané metodě run(). Rozsah je [-1, int.max]. -1 znamená, že se při zpracování ignorují všechna selhání. Minidávce může při prvním zpracování selhat a pak může být úspěšná při druhém pokusu. Při kontrole mezi prvním a druhým časem se počítá jako neúspěšná. Kontrola po druhém čase ji nebude považovat za neúspěšnou. Argumenty –error_threshold, –allowed_failed_count a –allowed_failed_percent můžou fungovat společně. Pokud je zadáno více než jedna, úloha se přeruší, pokud překročí některou z nich.
- allowed_failed_percent
- float
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é metodě run(). Rozsah je [0, 100]. 100 nebo 100.0 znamená, že se při zpracování ignorují všechna selhá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ž jedna, úloha se přeruší, pokud překročí některou z nich.
Klíče použité k rozdělení datové sady do minidávek. Pokud zadáte, data se stejným klíčem se rozdělí do stejné minidávy. 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 rozdělení vstupní datové sady. Pokud je však povýšen na PipelineParameter, výchozí hodnoty by měly být json dump str seznamu, protože typ seznamu není v PipelineParameter zatím podporovaný. 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.
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 slouží k poskytování konfigurace pro ParallelRunStep třídu . ParallelRunConfig a ParallelRunStep se dají použít společně pro paralelní 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ší nastavitelné parametry pro zrychlení paralelního ParallelRunConfig zpracování lze řídit pomocí třídy . ParallelRunStep může fungovat se vstupem nebo TabularDatasetFileDataset .
Použití parallelRunStep a ParallelRunConfig:
Vytvořte objekt, který ParallelRunConfig určuje, jak se má provádět dávkové 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 a 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čtěte konfigurační data 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čtěte konfigurační data paralelního spuštění ze souboru YAML.
static load_yaml(workspace, path)
Parametry
save_to_yaml
Exportujte konfigurační data paralelního spuštění do souboru YAML.
save_to_yaml(path)
Parametry
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro