Schemat YAML zadania zamiatania interfejsu wiersza polecenia (wersja 2)

DOTYCZY: Rozszerzenie interfejsu wiersza polecenia platformy Azure w wersji 2 (bieżąca)

Źródłowy schemat JSON można znaleźć pod adresem https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json.

Uwaga

Składnia YAML szczegółowo w tym dokumencie jest oparta na schemacie JSON dla najnowszej wersji rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Ta składnia jest gwarantowana tylko do pracy z najnowszą wersją rozszerzenia interfejsu wiersza polecenia uczenia maszynowego w wersji 2. Schematy dla starszych wersji rozszerzeń można znaleźć pod adresem https://azuremlschemasprod.azureedge.net/.

Składnia YAML

Klucz Type Opis Dozwolone wartości Domyślna wartość
$schema string Schemat YAML. Jeśli używasz rozszerzenia usługi Azure Machine Edukacja VS Code do tworzenia pliku YAML, możesz wywołać uzupełnianie schematu i zasobów, jeśli dołączysz $schema go w górnej części pliku.
type const Wymagany. Typ zadania. sweep sweep
name string Nazwa zadania. Musi być unikatowa we wszystkich zadaniach w obszarze roboczym. W przypadku pominięcia usługa Azure Machine Edukacja automatycznie ocenia identyfikator GUID dla nazwy.
display_name string Nazwa wyświetlana zadania w interfejsie użytkownika programu Studio. Może nie być unikatowa w obszarze roboczym. W przypadku pominięcia usługa Azure Machine Edukacja automatycznie ocenia identyfikator przymiotnika z możliwością odczytu przez człowieka dla nazwy wyświetlanej.
experiment_name string Organizuj zadanie pod nazwą eksperymentu. Rekord uruchamiania każdego zadania jest zorganizowany w ramach odpowiedniego eksperymentu na karcie "Eksperymenty" w studio. W przypadku pominięcia usługa Azure Machine Edukacja domyślną experiment_name nazwą katalogu roboczego, w którym utworzono zadanie.
description string Opis zadania.
tags obiekt Słownik tagów zadania.
sampling_algorithm obiekt Wymagany. Algorytm próbkowania hiperparametrów używany przez element search_space. Jeden z RandomSamplingAlgorithm, GridSamplingAlgorithm lub BayesianSamplingAlgorithm.
search_space obiekt Wymagany. Słownik przestrzeni wyszukiwania hiperparametrów. Nazwa hiperparametru jest kluczem, a wartość jest wyrażeniem parametru.

Hiperparametry mogą być przywoływane w wyrażeniu trial.command${{ search_space.<hyperparameter> }} .
search_space.<hyperparameter> obiekt Odwiedź stronę Wyrażenia parametrów , aby użyć zestawu możliwych wyrażeń.
objective.primary_metric string Wymagany. Nazwa metryki podstawowej zgłoszonej przez każde zadanie wersji próbnej. Metryka musi być zalogowana w skry skrycie trenowania użytkownika przy użyciu mlflow.log_metric() tej samej odpowiedniej nazwy metryki.
objective.goal string Wymagany. Cel optymalizacji elementu objective.primary_metric. maximize, minimize
early_termination obiekt Zasady wczesnego zakończenia do użycia. Zadanie w wersji próbnej zostanie anulowane po spełnieniu kryteriów określonych zasad. W przypadku pominięcia zasady wcześniejszego zakończenia nie są stosowane. Jeden z elementów BanditPolicy, MedianStoppingPolicy lub TruncationSelectionPolicy.
limits obiekt Limity dla zadania zamiatania. Zobacz Atrybuty limits klucza.
compute string Wymagany. Nazwa docelowego obiektu obliczeniowego, na którym ma zostać wykonane zadanie, ze składnią azureml:<compute_name> .
trial obiekt Wymagany. Szablon zadania dla każdej wersji próbnej. Każde zadanie w wersji próbnej jest dostarczane z inną kombinacją wartości hiperparametrów, które są próbkami systemu z klasy search_space. Odwiedź stronę Atrybuty trial klucza.
inputs obiekt Słownik danych wejściowych zadania. Klucz jest nazwą danych wejściowych w kontekście zadania, a wartość jest wartością wejściową.

Przy użyciu ${{ inputs.<input_name> }} wyrażenia można odwoływać się do command danych wejściowych.
inputs.<input_name> liczba, liczba całkowita, wartość logiczna, ciąg lub obiekt Jedna z wartości literałów (typu liczba, liczba całkowita, wartość logiczna lub ciąg) lub obiekt zawierający specyfikację danych wejściowych zadania.
outputs obiekt Słownik konfiguracji wyjściowych zadania. Klucz jest nazwą danych wyjściowych w kontekście zadania, a wartość jest konfiguracją wyjściową.

Przy użyciu ${{ outputs.<output_name> }} wyrażenia można odwoływać się command do danych wyjściowych.
outputs.<output_name> obiekt Możesz pozostawić obiekt pusty, a w takim przypadku domyślnie dane wyjściowe są uri_folder typu, a usługa Azure Machine Edukacja system generuje lokalizację wyjściową dla danych wyjściowych. Wszystkie pliki do katalogu wyjściowego są zapisywane za pośrednictwem instalacji odczytu i zapisu. Aby określić inny tryb dla danych wyjściowych, podaj obiekt zawierający specyfikację danych wyjściowych zadania.
identity obiekt Tożsamość jest używana do uzyskiwania dostępu do danych. Może to być konfiguracja tożsamości użytkownika, konfiguracja tożsamości zarządzanej lub brak. W przypadku parametru UserIdentityConfiguration tożsamość obiektu przesyłająca zadanie jest używana do uzyskiwania dostępu do danych wejściowych i zapisywania wyników w folderze wyjściowym. W przeciwnym razie jest używana tożsamość zarządzana docelowego obiektu obliczeniowego.

Algorytmy próbkowania

RandomSamplingAlgorithm

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ algorytmu próbkowania. random
seed integer Inicjator losowy do użycia do inicjowania generowania liczb losowych. Jeśli pominięto, domyślna wartość inicjatora ma wartość null.
rule string Typ próbkowania losowego do użycia. Wartość domyślna , randomużywa prostego jednolitego losowego próbkowania, a jednocześnie sobol używa sekwencji quasi-losowej Sobol. random, sobol random

GridSamplingAlgorithm

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ algorytmu próbkowania. grid

BayesianSamplingAlgorithm

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ algorytmu próbkowania. bayesian

Zasady wczesnego kończenia

BanditPolicy

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ zasad. bandit
slack_factor Liczba Współczynnik użyty do obliczenia dozwolonej odległości od najlepszej wydajności próby. Jeden z slack_factor lub slack_amount jest wymagany.
slack_amount Liczba Bezwzględna odległość dozwolona od najlepiej działającej próby. Jeden z slack_factor lub slack_amount jest wymagany.
evaluation_interval integer Częstotliwość stosowania zasad. 1
delay_evaluation integer Liczba interwałów, dla których należy opóźnić pierwszą ocenę zasad. Jeśli zostanie określona, zasady mają zastosowanie do każdej wielokrotności evaluation_interval , która jest większa lub równa delay_evaluation. 0

MedianStoppingPolicy

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ zasad. median_stopping
evaluation_interval integer Częstotliwość stosowania zasad. 1
delay_evaluation integer Liczba interwałów, dla których należy opóźnić pierwszą ocenę zasad. Jeśli zostanie określona, zasady mają zastosowanie do każdej wielokrotności evaluation_interval , która jest większa lub równa delay_evaluation. 0

ObcięcieselectionPolicy

Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ zasad. truncation_selection
truncation_percentage integer Wymagany. Procent zadań próbnych do anulowania w każdym interwale oceny.
evaluation_interval integer Częstotliwość stosowania zasad. 1
delay_evaluation integer Liczba interwałów, dla których należy opóźnić pierwszą ocenę zasad. Jeśli zostanie określona, zasady mają zastosowanie do każdej wielokrotności evaluation_interval , która jest większa lub równa delay_evaluation. 0

Wyrażenia parametrów

Wybór

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ wyrażenia. choice
values tablica Wymagany. Lista odrębnych wartości, z których chcesz wybrać.

Randint

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ wyrażenia. randint
upper integer Wymagany. Wyłączna górna granica zakresu liczb całkowitych.

Qlognormal, qnormal

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ wyrażenia. qlognormal, qnormal
mu Liczba Wymagany. Średnia rozkładu normalnego.
sigma Liczba Wymagany. Odchylenie standardowe rozkładu normalnego.
q integer Wymagany. Współczynnik wygładzenia.

Qloguniform, quniform

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ wyrażenia. qloguniform, quniform
min_value Liczba Wymagany. Minimalna wartość w zakresie (włącznie).
max_value Liczba Wymagany. Maksymalna wartość w zakresie (włącznie).
q integer Wymagany. Współczynnik wygładzenia.

Lognormal, normal

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ wyrażenia. lognormal, normal
mu Liczba Wymagany. Średnia rozkładu normalnego.
sigma Liczba Wymagany. Odchylenie standardowe rozkładu normalnego.

Loguniform

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ wyrażenia. loguniform
min_value Liczba Wymagany. Minimalna wartość w zakresie to exp(min_value) (włącznie).
max_value Liczba Wymagany. Maksymalna wartość w zakresie to exp(max_value) (włącznie).

Jednolite

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ wyrażenia. uniform
min_value Liczba Wymagany. Minimalna wartość w zakresie (włącznie).
max_value Liczba Wymagany. Maksymalna wartość w zakresie (włącznie).

limits Atrybuty klucza

Klucz Type Opis Domyślna wartość
max_total_trials integer Maksymalna liczba zadań w wersji próbnej. 1000
max_concurrent_trials integer Maksymalna liczba zadań w wersji próbnej, które mogą być uruchamiane współbieżnie. Wartość domyślna to max_total_trials.
timeout integer Maksymalny czas w sekundach, przez który można uruchomić całe zadanie zamiatania. Po osiągnięciu tego limitu system anuluje zadanie zamiatania, w tym wszystkie jego próby. 5184000
trial_timeout integer Maksymalny czas w sekundach każdego zadania w wersji próbnej może zostać uruchomiony. Po osiągnięciu tego limitu system anuluje okres próbny.

trial Atrybuty klucza

Klucz Type Opis Domyślna wartość
command string Wymagany. Polecenie do wykonania.
code string Ścieżka lokalna do katalogu kodu źródłowego, który ma zostać przekazany i użyty do zadania.
environment ciąg lub obiekt Wymagany. Środowisko do użycia dla zadania. Ta wartość może być odwołaniem do istniejącego środowiska w wersji w obszarze roboczym lub specyfikacji środowiska wbudowanego.

Aby odwołać się do istniejącego środowiska, użyj azureml:<environment-name>:<environment-version> składni .

Aby zdefiniować wbudowane środowisko, postępuj zgodnie ze schematem środowiska. name Wyklucz właściwości iversion, ponieważ środowiska wbudowane nie obsługują ich.
environment_variables obiekt Słownik par nazwa-wartość zmiennej środowiskowej ustawionych w procesie, w którym jest wykonywane polecenie.
distribution obiekt Konfiguracja dystrybucji dla scenariuszy trenowania rozproszonego. Jedna z konfiguracji mpi, konfiguracji PyTorch lub konfiguracji TensorFlow.
resources.instance_count integer Liczba węzłów do użycia dla zadania. 1

Konfiguracje dystrybucji

MpiConfiguration
Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ dystrybucji. mpi
process_count_per_instance integer Wymagany. Liczba procesów na węzeł do uruchomienia dla zadania.
PyTorchConfiguration
Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ dystrybucji. pytorch
process_count_per_instance integer Liczba procesów na węzeł do uruchomienia dla zadania. 1
TensorFlowConfiguration
Klucz Type Opis Dozwolone wartości Domyślna wartość
type const Wymagany. Typ dystrybucji. tensorflow
worker_count integer Liczba procesów roboczych, które mają być uruchamiane dla tego zadania. Wartość domyślna to resources.instance_count.
parameter_server_count integer Liczba serwerów parametrów do uruchomienia dla zadania. 0

Dane wejściowe zadania

Klucz Type Opis Dozwolone wartości Domyślna wartość
type string Typ danych wejściowych zadania. Określ uri_file dane wejściowe wskazujące jedno źródło plików lub uri_folder dane wejściowe wskazujące źródło folderu. Aby uzyskać więcej informacji, odwiedź stronę Dowiedz się więcej o dostępie do danych. uri_file, , uri_folder, , mltablemlflow_model uri_folder
path string Ścieżka do danych do użycia jako dane wejściowe. Tę wartość można określić na kilka sposobów:

- Ścieżka lokalna do pliku lub folderu źródła danych, na przykład path: ./iris.csv. Dane są przekazywane podczas przesyłania zadania.

— Identyfikator URI ścieżki chmury do pliku lub folderu, który ma być używany jako dane wejściowe. Obsługiwane typy identyfikatorów URI to azureml, , httpswasbs, abfss, adl. Aby uzyskać więcej informacji na temat używania formatu identyfikatora azureml:// URI, odwiedź stronę Podstawowa składnia yaml.

— Istniejący zarejestrowany zasób danych usługi Azure Machine Edukacja do użycia jako dane wejściowe. Aby odwołać się do zarejestrowanego zasobu danych, użyj azureml:<data_name>:<data_version> składni lub azureml:<data_name>@latest (aby odwołać się do najnowszej wersji tego zasobu danych) — na przykład path: azureml:cifar10-data:1 lub path: azureml:cifar10-data@latest.
mode string Tryb dostarczania danych do docelowego obiektu obliczeniowego.

W przypadku instalacji tylko do odczytu (ro_mount) dane są używane jako ścieżka instalacji. Folder jest instalowany jako folder, a plik jest instalowany jako plik. Usługa Azure Machine Edukacja usuwa dane wejściowe ze ścieżką instalacji.

W download przypadku trybu dane są pobierane do docelowego obiektu obliczeniowego. Usługa Azure Machine Edukacja usuwa dane wejściowe do pobranej ścieżki.

W przypadku tylko adresu URL lokalizacji przechowywania artefaktu danych lub artefaktów zamiast instalowania lub pobierania samych danych użyj direct trybu . Spowoduje to przekazanie adresu URL lokalizacji magazynu jako danych wejściowych zadania. W takim przypadku ponosisz pełną odpowiedzialność za obsługę poświadczeń w celu uzyskania dostępu do magazynu.
ro_mount, , downloaddirect ro_mount

Dane wyjściowe zadania

Klucz Type Opis Dozwolone wartości Domyślna wartość
type string Typ danych wyjściowych zadania. Dla domyślnego uri_folder typu dane wyjściowe odpowiadają folderowi. uri_file, , uri_folder, , mltablemlflow_model uri_folder
mode string Tryb dostarczania pliku wyjściowego lub plików do magazynu docelowego. W trybie instalacji odczytu i zapisu (rw_mount) katalog wyjściowy jest katalogiem zainstalowanym. W trybie przekazywania wszystkie zapisane pliki są przekazywane na końcu zadania. rw_mount, upload rw_mount

Konfiguracje tożsamości

UserIdentityConfiguration

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ tożsamości. user_identity

ManagedIdentityConfiguration

Klucz Type Opis Dozwolone wartości
type const Wymagany. Typ tożsamości. managed lub managed_identity

Uwagi

Za pomocą az ml job polecenia można zarządzać zadaniami usługi Azure Machine Edukacja.

Przykłady

Zapoznaj się z przykładami repozytorium GitHub, aby zapoznać się z przykładami. Poniżej przedstawiono kilka z poniższych elementów:

YAML: hello sweep

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  command: >-
    python hello-sweep.py
    --A ${{inputs.A}}
    --B ${{search_space.B}}
    --C ${{search_space.C}}
  code: src
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  A: 0.5
sampling_algorithm: random
search_space:
  B:
    type: choice
    values: ["hello", "world", "hello_world"]
  C:
    type: uniform
    min_value: 0.1
    max_value: 1.0
objective:
  goal: minimize
  primary_metric: random_metric
limits:
  max_total_trials: 4
  max_concurrent_trials: 2
  timeout: 3600
display_name: hello-sweep-example
experiment_name: hello-sweep-example
description: Hello sweep job example.

YAML: podstawowe dostrajanie hiperparametryczne modelu języka Python

$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
  code: src
  command: >-
    python main.py 
    --iris-csv ${{inputs.iris_csv}}
    --C ${{search_space.C}}
    --kernel ${{search_space.kernel}}
    --coef0 ${{search_space.coef0}}
  environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
inputs:
  iris_csv: 
    type: uri_file
    path: wasbs://datasets@azuremlexamples.blob.core.windows.net/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm: random
search_space:
  C:
    type: uniform
    min_value: 0.5
    max_value: 0.9
  kernel:
    type: choice
    values: ["rbf", "linear", "poly"]
  coef0:
    type: uniform
    min_value: 0.1
    max_value: 1
objective:
  goal: minimize
  primary_metric: training_f1_score
limits:
  max_total_trials: 20
  max_concurrent_trials: 10
  timeout: 7200
display_name: sklearn-iris-sweep-example
experiment_name: sklearn-iris-sweep-example
description: Sweep hyperparemeters for training a scikit-learn SVM on the Iris dataset.

Następne kroki