ParallelRunConfig Klasa
Definiuje konfigurację ParallelRunStep obiektu.
Przykład użycia metody ParallelRunStep można znaleźć w notesie https://aka.ms/batch-inference-notebooks.
Aby uzyskać informacje na temat rozwiązywania problemów, zobacz https://aka.ms/prstsg. Więcej odwołań można znaleźć w tym miejscu.
Zainicjuj obiekt konfiguracji.
- Dziedziczenie
-
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
Nazwa | Opis |
---|---|
environment
Wymagane
|
Definicja środowiska, która konfiguruje środowisko języka Python. Można go skonfigurować tak, aby używać istniejącego środowiska języka Python lub skonfigurować środowisko tymczasowe dla eksperymentu. Definicja środowiska jest odpowiedzialna za definiowanie wymaganych zależności aplikacji, takich jak pakiety conda lub pip. |
entry_script
Wymagane
|
Skrypt użytkownika, który będzie uruchamiany równolegle w wielu węzłach. Jest to określona jako ścieżka pliku lokalnego. Jeśli |
error_threshold
Wymagane
|
Liczba niepowodzeń rekordów dla TabularDataset błędów i plików, FileDataset które powinny być ignorowane podczas przetwarzania. Jeśli liczba błędów przekroczy tę wartość, zadanie zostanie przerwane. Próg błędu dotyczy całej danych wejściowych, a nie dla poszczególnych minisadów wysłanych do metody run(). Zakres to [-1, int.max]. -1 wskazuje, że wszystkie błędy są ignorowane podczas przetwarzania. |
output_action
Wymagane
|
Sposób organizowania danych wyjściowych. Bieżące obsługiwane wartości to "append_row" i "summary_only".
|
compute_target
Wymagane
|
AmlCompute lub
str
Obiekt docelowy obliczeniowy używany do wykonywania ParallelRunStep. Ten parametr może być określony jako obiekt docelowy obliczeniowy lub nazwa docelowego obiektu obliczeniowego w obszarze roboczym. |
node_count
Wymagane
|
Liczba węzłów w docelowym obiekcie obliczeniowym używanym do uruchamiania elementu ParallelRunStep. |
process_count_per_node
|
Liczba procesów roboczych na węzeł do równoległego uruchamiania skryptu wprowadzania.
W przypadku maszyny z procesorem GPU wartość domyślna to 1.
W przypadku maszyny cpu wartość domyślna to liczba rdzeni.
Proces roboczy będzie wywoływany Domyślna wartość: None
|
mini_batch_size
|
W przypadku danych wejściowych fileDataset to pole jest liczbą plików, które skrypt użytkownika może przetworzyć w jednym wywołaniu run(). W przypadku danych wejściowych TabularDataset to przybliżony rozmiar danych, które skrypt użytkownika może przetworzyć w jednym wywołaniu run(). Przykładowe wartości to 1024, 1024 KB, 10 MB i 1 GB. (opcjonalnie wartość domyślna to 10 plików dla zestawu plików i 1 MB dla zestawu tabularDataset). Domyślna wartość: None
|
source_directory
|
Ścieżka do folderu zawierającego Domyślna wartość: None
|
description
|
Opis umożliwiający nadanie usłudze wsadowej używanej do celów wyświetlania. Domyślna wartość: None
|
logging_level
|
Ciąg nazwy poziomu rejestrowania, który jest zdefiniowany w "rejestrowaniu". Możliwe wartości to "WARNING", "INFO" i "DEBUG". (opcjonalnie wartość domyślna to "INFO". Domyślna wartość: INFO
|
run_invocation_timeout
|
Limit czasu w sekundach dla każdej wywołania metody run(). (opcjonalnie wartość domyślna to 60). Domyślna wartość: 60
|
run_max_try
|
Maksymalna liczba prób dla minisadowej liczby prób zakończonych niepowodzeniem lub przekroczenia limitu czasu. Zakres to [1, int.max]. Wartość domyślna to 3. Minisadowa partia z liczbą dequeue większą niż ta nie zostanie ponownie przetworzona i zostanie usunięta bezpośrednio. Domyślna wartość: 3
|
append_row_file_name
|
Nazwa pliku wyjściowego, jeśli Domyślna wartość: None
|
allowed_failed_count
|
Liczba nieudanych minisadów, które powinny być ignorowane podczas przetwarzania. Jeśli liczba niepomyślnie przekroczy tę wartość, zadanie zostanie przerwane. Ten próg dotyczy całej danych wejściowych, a nie pojedynczej minisadowej wysłanej do metody run(). Zakres to [-1, int.max]. -1 wskazuje, że wszystkie błędy są ignorowane podczas przetwarzania. Minisadowa partia może zakończyć się niepowodzeniem przy pierwszym przetworzeniu, a następnie pomyślnym w drugiej próbie. Sprawdzanie między pierwszym i drugim razem będzie liczyć je jako nieudane. Sprawdzanie po raz drugi nie będzie liczyć go jako nieudanego. Argument –error_threshold, –allowed_failed_count i –allowed_failed_percent może współpracować. Jeśli zostanie określona więcej niż jedna, zadanie zostanie przerwane, jeśli zostanie przekroczone dowolne z nich. Domyślna wartość: None
|
allowed_failed_percent
|
Procent nieudanych minisadów, które powinny być ignorowane podczas przetwarzania. Jeśli procent niepowodzenia przekroczy tę wartość, zadanie zostanie przerwane. Ten próg dotyczy całej danych wejściowych, a nie pojedynczej minisadowej wysłanej do metody run(). Zakres to [0, 100]. Wartość 100 lub 100.0 wskazuje ignorowanie wszystkich błędów podczas przetwarzania. Sprawdzanie rozpoczyna się po zaplanowaniu wszystkich minisadów. Argument –error_threshold, –allowed_failed_count i –allowed_failed_percent może współpracować. Jeśli zostanie określona więcej niż jedna, zadanie zostanie przerwane, jeśli zostanie przekroczone dowolne z nich. Domyślna wartość: None
|
partition_keys
|
Klucze używane do partycjonowania zestawu danych w minisadach. Jeśli zostanie określony, dane z tym samym kluczem zostaną podzielone na tę samą minisadę. Jeśli określono zarówno partition_keys, jak i mini_batch_size, zostanie zgłoszony błąd. Powinna to być lista elementów str, które są kluczem używanym do partycjonowania wejściowego zestawu danych. Jednak w przypadku podwyższenia poziomu do parametru PipelineParameter wartości domyślne powinny być ciągiem zrzutu json listy, ponieważ typ listy nie jest obecnie obsługiwany w potokuParameter. Dane wejściowe muszą być podzielone na partycje zestawy danych, a partition_keys musi być podzbiorem kluczy każdego wejściowego zestawu danych, aby to działało. Domyślna wartość: None
|
environment_variables
|
Słownik nazw i wartości zmiennych środowiskowych. Te zmienne środowiskowe są ustawiane w procesie, w którym jest wykonywany skrypt użytkownika. Domyślna wartość: None
|
environment
Wymagane
|
Definicja środowiska, która konfiguruje środowisko języka Python. Można go skonfigurować tak, aby używać istniejącego środowiska języka Python lub skonfigurować środowisko tymczasowe dla eksperymentu. Definicja środowiska jest odpowiedzialna za definiowanie wymaganych zależności aplikacji, takich jak pakiety conda lub pip. |
entry_script
Wymagane
|
Skrypt użytkownika, który będzie uruchamiany równolegle w wielu węzłach. Jest to określone jako lokalna ścieżka pliku. Jeśli |
error_threshold
Wymagane
|
Liczba niepowodzeń rekordów i TabularDataset błędów plików, FileDataset które należy zignorować podczas przetwarzania. Jeśli liczba błędów przekroczy tę wartość, zadanie zostanie przerwane. Próg błędu jest przeznaczony dla całego wejścia, a nie dla pojedynczych minisadów wysyłanych do metody run(). Zakres to [-1, int.max]. -1 wskazuje ignorować wszystkie błędy podczas przetwarzania. |
output_action
Wymagane
|
Sposób organizowania danych wyjściowych. Bieżące obsługiwane wartości to "append_row" i "summary_only".
|
compute_target
Wymagane
|
AmlCompute lub
str
Docelowy obiekt obliczeniowy do użycia na potrzeby wykonywania ParallelRunStep. Ten parametr można określić jako obiekt docelowy obliczeniowy lub nazwę docelowego obiektu obliczeniowego w obszarze roboczym. |
node_count
Wymagane
|
Liczba węzłów w docelowym obiekcie obliczeniowym używanym do uruchamiania elementu ParallelRunStep. |
process_count_per_node
Wymagane
|
Liczba procesów roboczych na węzeł do równoległego uruchamiania skryptu wejściowego.
W przypadku maszyny z procesorem GPU wartość domyślna to 1.
W przypadku maszyny procesora CPU wartość domyślna to liczba rdzeni.
Proces roboczy będzie wywoływany |
mini_batch_size
Wymagane
|
W przypadku danych wejściowych fileDataset to pole jest liczbą plików, które skrypt użytkownika może przetworzyć w jednym wywołaniu run(). W przypadku danych wejściowych TabularDataset to przybliżony rozmiar danych, które skrypt użytkownika może przetworzyć w jednym wywołaniu run(). Przykładowe wartości to 1024, 1024 KB, 10 MB i 1 GB. (opcjonalnie wartość domyślna to 10 plików dla elementu FileDataset i 1 MB dla elementu TabularDataset). |
source_directory
Wymagane
|
Ścieżka do folderu zawierającego |
description
Wymagane
|
Opis umożliwiający przekazanie usługi wsadowej używanej do celów wyświetlania. |
logging_level
Wymagane
|
Ciąg nazwy poziomu rejestrowania, który jest zdefiniowany w ciągu "rejestrowania". Możliwe wartości to "WARNING", "INFO" i "DEBUG". (opcjonalnie wartość domyślna to "INFO". |
run_invocation_timeout
Wymagane
|
Limit czasu w sekundach dla każdej wywołania metody run(). (opcjonalnie wartość domyślna to 60). |
run_max_try
Wymagane
|
Maksymalna liczba prób dla minisadowej partii zakończonych niepowodzeniem lub przekroczenia limitu czasu. Zakres to [1, int.max]. Wartość domyślna to 3. Mini batch z liczbą dequeue większą niż ta nie zostanie ponownie przetworzona i zostanie usunięta bezpośrednio. |
append_row_file_name
Wymagane
|
Nazwa pliku wyjściowego, jeśli jest |
allowed_failed_count
Wymagane
|
Liczba nieudanych minisadów, które powinny być ignorowane podczas przetwarzania. Jeśli liczba niepomyślnie przekroczy tę wartość, zadanie zostanie przerwane. Ten próg dotyczy całej danych wejściowych, a nie pojedynczej minisadowej wysłanej do metody run(). Zakres to [-1, int.max]. -1 wskazuje ignorować wszystkie błędy podczas przetwarzania. Minisadowa partia może zakończyć się niepowodzeniem po pierwszym przetworzeniu, a następnie po pomyślnym zakończeniu drugiej próby. Sprawdzanie między pierwszym i drugim czasem będzie zliczane jako niepowodzenie. Sprawdzanie po raz drugi nie będzie zliczane jako nieudane. Argument –error_threshold, –allowed_failed_count i –allowed_failed_percent może współpracować. Jeśli zostanie określona więcej niż jedna, zadanie zostanie przerwane, jeśli przekroczy którykolwiek z nich. |
allowed_failed_percent
Wymagane
|
Procent nieudanych minisadów, które powinny być ignorowane podczas przetwarzania. Jeśli procent niepowodzenia przekroczy tę wartość, zadanie zostanie przerwane. Ten próg dotyczy całej danych wejściowych, a nie pojedynczej minisadowej wysłanej do metody run(). Zakres to [0, 100]. Wartość 100 lub 100.0 wskazuje, że ignoruje wszystkie błędy podczas przetwarzania. Sprawdzanie rozpoczyna się po zaplanowaniu wszystkich minisadów. Argument –error_threshold, –allowed_failed_count i –allowed_failed_percent może współpracować. Jeśli zostanie określona więcej niż jedna, zadanie zostanie przerwane, jeśli przekroczy którykolwiek z nich. |
partition_keys
Wymagane
|
Klucze używane do partycjonowania zestawu danych w minisadach. Jeśli zostanie określony, dane z tym samym kluczem zostaną podzielone na tę samą minisadę. Jeśli określono zarówno partition_keys, jak i mini_batch_size, zostanie zgłoszony błąd. Powinna to być lista elementów str, z których każdy jest kluczem używanym do partycjonowania wejściowego zestawu danych. Jednak w przypadku podwyższenia poziomu do parametru PipelineParameter wartości domyślne powinny być ciągiem zrzutu json listy, ponieważ typ listy nie jest obecnie obsługiwany w parametrze PipelineParameter. Dane wejściowe muszą być partycjonowane, a partition_keys musi być podzbiorem kluczy każdego wejściowego zestawu danych, aby to działało. |
environment_variables
Wymagane
|
Słownik nazw i wartości zmiennych środowiskowych. Te zmienne środowiskowe są ustawiane w procesie wykonywania skryptu użytkownika. |
Uwagi
Klasa ParallelRunConfig służy do zapewnienia konfiguracji dla ParallelRunStep klasy . ParallelRunConfig i ParallelRunStep mogą być używane razem do równoległego przetwarzania dużych ilości danych. Typowe przypadki użycia to trenowanie modelu uczenia maszynowego lub uruchamianie wnioskowania w trybie offline w celu generowania przewidywań na podstawie partii obserwacji. Działanie klasy ParallelRunStep polega na podziale danych na partie przetwarzane równolegle. Rozmiar partii, liczba węzłów i inne parametry dostrajania w celu przyspieszenia przetwarzania równoległego można kontrolować za ParallelRunConfig pomocą klasy . Element ParallelRunStep może pracować z danymi wejściowymi TabularDataset lub FileDataset .
Aby użyć klasy ParallelRunStep i ParallelRunConfig:
ParallelRunConfig Utwórz obiekt w celu określenia sposobu wykonywania przetwarzania wsadowego z parametrami służącymi do kontrolowania rozmiaru partii, liczby węzłów na docelowy obiekt obliczeniowy i odwołania do niestandardowego skryptu języka Python.
Utwórz obiekt ParallelRunStep, który używa obiektu ParallelRunConfig, definiuje dane wejściowe i wyjściowe dla kroku.
Użyj skonfigurowanego obiektu ParallelRunStep w taki sam sposób, jak w Pipeline przypadku innych typów kroków potoku.
Przykłady pracy z klasami ParallelRunStep i ParallelRunConfig na potrzeby wnioskowania wsadowego zostały omówione w następujących artykułach:
Samouczek: Tworzenie potoku usługi Azure Machine Learning na potrzeby wsadowego oceniania. W tym artykule przedstawiono sposób użycia tych dwóch klas do asynchronicznego oceniania wsadowego w potoku oraz sposób włączenia punktu końcowego REST w celu uruchomienia potoku.
Uruchamianie wnioskowania wsadowego dla dużych ilości danych za pomocą usługi Azure Machine Learning. W tym artykule pokazano, jak przetwarzać duże ilości danych asynchronicznie i równolegle za pomocą niestandardowego skryptu wnioskowania oraz wstępnie wytrenowanego modelu klasyfikacji obrazów na podstawie zestawu danych 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
)
Aby uzyskać więcej informacji na temat tego przykładu, zobacz notes https://aka.ms/batch-inference-notebooks.
Metody
load_yaml |
Ładowanie równoległych danych konfiguracji uruchamiania z pliku YAML. |
save_to_yaml |
Eksportowanie równoległych danych konfiguracji uruchamiania do pliku YAML. |
load_yaml
Ładowanie równoległych danych konfiguracji uruchamiania z pliku YAML.
static load_yaml(workspace, path)
Parametry
Nazwa | Opis |
---|---|
workspace
Wymagane
|
Obszar roboczy do odczytywania danych konfiguracji. |
path
Wymagane
|
Ścieżka do załadowania konfiguracji z. |
save_to_yaml
Eksportowanie równoległych danych konfiguracji uruchamiania do pliku YAML.
save_to_yaml(path)
Parametry
Nazwa | Opis |
---|---|
path
Wymagane
|
Ścieżka do zapisania pliku. |