Sdílet prostřednictvím


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
str

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 source_directory je zadána, pak entry_script je relativní cesta uvnitř adresáře. Jinak může být na počítači přístupná libovolná cesta. Entry_script by měla obsahovat dvě funkce: init()tato funkce by měla být použita pro jakoukoli nákladnou nebo běžnou přípravu na následné odvozování, například 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 spuštění a předá do metody buď seznam, nebo datový rámec Pandas. Každá položka v min_batch bude cesta k souboru, pokud je vstup FileDataset, datový rámec Pandas, pokud vstup je TabularDataset. Metoda run() by měla vrátit datový rámec Pandas nebo pole. Pro append_row output_action se tyto vrácené prvky připojí do společného výstupního souboru. Pro summary_only se obsah prvků ignoruje. Pro všechny výstupní akce každý vrácený výstupní prvek označuje jeden úspěšný odvození vstupního prvku ve vstupní mini-batch. Každý paralelní pracovní proces bude volat inicializaci jednou a pak smyčka po spuštění funkce, dokud se nezpracují všechny minidávkové dávky.

error_threshold
Vyžadováno
int

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
str

Jak by měl být výstup uspořádaný. Aktuální podporované hodnoty jsou append_row a summary_only.

  1. 'append_row' – Všechny hodnoty výstup 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í.
  2. 'summary_only' – Očekává se, že uživatelský skript uloží samotný výstup. Pro každou úspěšnou 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
Vyžadováno

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
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 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 run() předáním mini dávky, kterou získá. Celkový počet pracovních procesů ve vaší úloze je process_count_per_node * node_count, který rozhoduje o maximálním počtu paralelních run() spuštění.

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
str

Cesta ke složce, která obsahuje entry_script a podpůrné soubory používané ke spuštění na cílovém výpočetním objektu.

Default value: None
description
str

Popis, který dá dávkové službě používané pro účely zobrazení.

Default value: None
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.)

Default value: INFO
run_invocation_timeout
int

Časový limit v sekundách pro každé vyvolání metody run() (Volitelné, výchozí hodnota je 60.)

Default value: 60
run_max_try
int

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
str

Název výstupního souboru, pokud output_action je "append_row". (volitelné, výchozí hodnota je "parallel_run_step.txt')

Default value: None
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 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
str

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 source_directory je zadána, pak entry_script je relativní cesta uvnitř adresáře. Jinak může být na počítači přístupná libovolná cesta. Entry_script by měla obsahovat dvě funkce: init()tato funkce by měla být použita pro jakoukoli nákladnou nebo běžnou přípravu na následné odvozování, například 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 spuštění a předá do metody buď seznam, nebo datový rámec Pandas. Každá položka v min_batch bude cesta k souboru, pokud je vstup FileDataset, datový rámec Pandas, pokud vstup je TabularDataset. Metoda run() by měla vrátit datový rámec Pandas nebo pole. Pro append_row output_action se tyto vrácené prvky připojí do společného výstupního souboru. Pro summary_only se obsah prvků ignoruje. Pro všechny výstupní akce každý vrácený výstupní prvek označuje jeden úspěšný odvození vstupního prvku ve vstupní mini-batch. Každý paralelní pracovní proces bude volat inicializaci jednou a pak smyčka po spuštění funkce, dokud se nezpracují všechny minidávkové dávky.

error_threshold
Vyžadováno
int

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
str

Jak by měl být výstup uspořádaný. Aktuální podporované hodnoty jsou append_row a summary_only.

  1. 'append_row' – Všechny hodnoty výstup 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í.
  2. 'summary_only' – Očekává se, že uživatelský skript uloží samotný výstup. Pro každou úspěšnou 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
Vyžadováno

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
int

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
int

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 run() předáním mini dávky, kterou získá. Celkový počet pracovních procesů ve vaší úloze je process_count_per_node * node_count, který rozhoduje o maximálním počtu paralelních run() spuštění.

mini_batch_size
Vyžadováno
str nebo int

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
str

Cesta ke složce, která obsahuje entry_script a podpůrné soubory používané ke spuštění na cílovém výpočetním objektu.

description
Vyžadováno
str

Popis, který dá dávkové službě používané pro účely zobrazení.

logging_level
Vyžadováno
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
Vyžadováno
int

Časový limit v sekundách pro každé vyvolání metody run() (Volitelné, výchozí hodnota je 60.)

run_max_try
Vyžadováno
int

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
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
Vyžadováno
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 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:


   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 pro čtení konfiguračních dat z.

path
Vyžadováno
str

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
str

Cesta k uložení souboru.