GILT FÜR
Azure CLI-ML-Erweiterung v2 (aktuell)
Das JSON-Quellschema finden Sie unter https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json.
Hinweis
Die in diesem Dokument beschriebene YAML-Syntax basiert auf dem JSON-Schema für die neueste Version der ML CLI v2-Erweiterung. Die Funktion dieser Syntax wird nur mit der neuesten Version der ML CLI v2-Erweiterung garantiert.
Die Schemas für ältere Erweiterungsversionen finden Sie unter https://azuremlschemasprod.azureedge.net/.
YAML-Syntax
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
$schema |
Zeichenfolge |
Das YAML-Schema. Wenn Sie die VS Code-Erweiterung für Azure Machine Learning zum Erstellen einer YAML-Datei verwenden, können Sie Schema- und Ressourcenvervollständigungen aufrufen, wenn Sie am Anfang ihrer Datei $schema einschließen. |
|
|
type |
Const |
Erforderlich. Typ des Auftrags. |
sweep |
sweep |
name |
Zeichenfolge |
Der Name des Auftrags. Muss für alle Aufträge im Arbeitsbereich eindeutig sein. Falls nicht angegeben, generiert Azure Machine Learning automatisch eine GUID für den Namen. |
|
|
display_name |
Zeichenfolge |
Der Anzeigename des Auftrags auf der Studio-Benutzeroberfläche. Kann innerhalb des Arbeitsbereichs nicht eindeutig sein. Falls nicht angegeben, generiert Azure Machine Learning als Anzeigename automatisch einen für Menschen lesbaren Bezeichner aus Adjektiv und Nomen. |
|
|
experiment_name |
Zeichenfolge |
Organisieren Sie den Auftrag unter dem Namen des Experiments. Die Ausführungsaufzeichnung jedes Auftrags ist im Studio auf der Registerkarte „Experimente“ unter dem entsprechenden Experiment strukturiert. Wenn nicht angegeben, wird Azure Machine Learning standardmäßig auf den Namen des Arbeitsverzeichnisses experiment_name festgelegt, in dem der Auftrag erstellt wurde. |
|
|
description |
Zeichenfolge |
Die Beschreibung des Auftrags |
|
|
tags |
Objekt (object) |
Das Wörterbuch der Tags für den Auftrag |
|
|
sampling_algorithm |
Objekt (object) |
Erforderlich. Der Hyperparameter-Samplingalgorithmus, der über search_space verwendet werden soll. Entweder RandomSamplingAlgorithm oder GridSamplingAlgorithm oder BayesianSamplingAlgorithm. |
|
|
search_space |
Objekt (object) |
Erforderlich. Wörterbuch des Suchbereichs für Hyperparameter. Der Hyperparametername ist der Schlüssel, und der Wert ist der Parameterausdruck.
Hyperparameter können im trial.command Ausdruck ${{ search_space.<hyperparameter> }} referenziert werden. |
|
|
search_space.<hyperparameter> |
Objekt (object) |
Besuchen Sie Parameterausdrücke für die Gruppe möglicher Ausdrücke, die verwendet werden sollen. |
|
|
objective.primary_metric |
Zeichenfolge |
Erforderlich. Der Name der primären Metrik, die von jedem Testauftrag gemeldet wird. Die Metrik muss im Schulungsskript mlflow.log_metric() des Benutzers mit demselben metrischen Namen protokolliert werden. |
|
|
objective.goal |
Zeichenfolge |
Erforderlich. Das Optimierungsziel von objective.primary_metric . |
maximize , minimize |
|
early_termination |
Objekt (object) |
Die zu verwendende Richtlinie für vorzeitige Beendigung. Ein Testauftrag wird abgebrochen, wenn die Kriterien der angegebenen Richtlinie erfüllt sind. Ohne Angabe wird keine Richtlinie für vorzeitige Beendigung angewendet. Eine von BanditPolicy, MedianStoppingPolicy oder TruncationSelectionPolicy. |
|
|
limits |
Objekt (object) |
Grenzwerte für den Sweep-Auftrag. Siehe Attribute des limits -Schlüssels. |
|
|
compute |
Zeichenfolge |
Erforderlich. Name des Computeziels, für das der Auftrag ausgeführt werden soll, mit der azureml:<compute_name> Syntax. |
|
|
trial |
Objekt (object) |
Erforderlich. Die Auftragsvorlage für die einzelnen Testversionen. Jeder Testauftrag wird mit einer anderen Kombination von Hyperparameterwerten bereitgestellt, die von den Systembeispielen stammen search_space . Besuchen Sie Attribute des trial Schlüssels. |
|
|
inputs |
Objekt (object) |
Wörterbuch der Eingaben für den Auftrag. Der Schlüssel ist ein Name für die Eingabe im Kontext des Auftrags, und der Wert ist der Eingabewert.
Eingaben können im command mit dem Ausdruck ${{ inputs.<input_name> }} verwiesen werden. |
|
|
inputs.<input_name> |
number, integer, boolean, string oder object |
Ein Literalwert (vom Typ "Number", "integer", "boolean" oder "string") oder ein Objekt, das eine Auftragseingabedatenspezifikation enthält. |
|
|
outputs |
Objekt (object) |
Wörterbuch der Ausgabekonfigurationen des Auftrags. Der Schlüssel ist ein Name für die Ausgabe im Kontext des Auftrags, und der Wert ist die Ausgabekonfiguration.
Ausgaben können im command mit dem Ausdruck ${{ outputs.<output_name> }} verwiesen werden. |
|
|
outputs.<output_name> |
Objekt (object) |
Sie können das Objekt leer lassen, und in diesem Fall ist die Ausgabe standardmäßig vom uri_folder Typ und das Azure Machine Learning-System generiert einen Ausgabespeicherort für die Ausgabe. Alle Dateien in das Ausgabeverzeichnis werden über die Bereitstellung mit Lese-/Schreibzugriff geschrieben. Um einen anderen Modus für die Ausgabe anzugeben, geben Sie ein Objekt an, das die Auftragsausgabespezifikation enthält. |
|
|
identity |
Objekt (object) |
Die Identität wird für den Datenzugriff verwendet. Dies kann eine Benutzeridentitätskonfiguration, eine verwaltete Identitätskonfiguration oder keine sein. Bei UserIdentityConfiguration wird die Identität des Auftragszusendes verwendet, um auf Eingabedaten zuzugreifen und Ergebnisse in den Ausgabeordner zu schreiben. Andernfalls wird die verwaltete Identität des Computeziels verwendet. |
|
|
Samplingalgorithmen
RandomSamplingAlgorithm
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Const |
Erforderlich. Der Typ des Samplingalgorithmus. |
random |
|
seed |
Integer |
Ein zufälliger Ausgangswert, der zum Initialisieren der Zufallszahlengenerierung verwendet werden soll. Wenn dieser Wert nicht angegeben wird, ist der Standardwert null. |
|
|
rule |
Zeichenfolge |
Der zu verwendende Typ für die zufällige Stichprobenentnahme. Die Standardeinstellung verwendet random einfache, einheitliche Zufallssamplings, während sobol die Sobol quasi-zufällige Sequenz verwendet wird. |
random , sobol |
random |
GridSamplingAlgorithm
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Samplingalgorithmustyp. |
grid |
BayesianSamplingAlgorithm
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Samplingalgorithmustyp. |
bayesian |
Richtlinien zum vorzeitigen Beenden
BanditPolicy
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Const |
Erforderlich. Den Richtlinientyp. |
bandit |
|
slack_factor |
Zahl |
Das Verhältnis, das zur Berechnung des zulässigen Abstands zur besten Testversion verwendet wird.
Eines von slack_factor oder slack_amount ist erforderlich. |
|
|
slack_amount |
Zahl |
Der absolute Abstand, der von der Testversion mit der besten Leistung zulässig ist.
Eines von slack_factor oder slack_amount ist erforderlich. |
|
|
evaluation_interval |
Integer |
Die Anwendungshäufigkeit der Richtlinie. |
|
1 |
delay_evaluation |
Integer |
Die Anzahl der Intervalle, für die die erste Richtlinienauswertung verzögert werden soll. Sofern angegeben, gilt die Richtlinie für jedes Vielfache von evaluation_interval , das größer oder gleich delay_evaluation ist. |
|
0 |
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Const |
Erforderlich. Den Richtlinientyp. |
median_stopping |
|
evaluation_interval |
Integer |
Die Anwendungshäufigkeit der Richtlinie. |
|
1 |
delay_evaluation |
Integer |
Die Anzahl der Intervalle, für die die erste Richtlinienauswertung verzögert werden soll. Sofern angegeben, gilt die Richtlinie für jedes Vielfache von evaluation_interval , das größer oder gleich delay_evaluation ist. |
|
0 |
TruncationSelectionPolicy
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Const |
Erforderlich. Den Richtlinientyp. |
truncation_selection |
|
truncation_percentage |
Integer |
Erforderlich. Der Prozentsatz der Testaufträge, die bei jedem Auswertungsintervall abgebrochen werden sollen. |
|
|
evaluation_interval |
Integer |
Die Anwendungshäufigkeit der Richtlinie. |
|
1 |
delay_evaluation |
Integer |
Die Anzahl der Intervalle, für die die erste Richtlinienauswertung verzögert werden soll. Sofern angegeben, gilt die Richtlinie für jedes Vielfache von evaluation_interval , das größer oder gleich delay_evaluation ist. |
|
0 |
Parameterausdrücke
Option
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Ausdruckstyp. |
choice |
values |
Array |
Erforderlich. Die Liste der diskreten Werte, aus denen Sie wählen möchten. |
|
Randint
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Ausdruckstyp. |
randint |
upper |
Integer |
Erforderlich. Die exklusive Obergrenze für den Bereich ganzer Zahlen. |
|
Qlognormal, qnormal
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Ausdruckstyp. |
qlognormal , qnormal |
mu |
Zahl |
Erforderlich. Der Mittelwert der Normalverteilung. |
|
sigma |
Zahl |
Erforderlich. Die Standardabweichung der Normalverteilung. |
|
q |
Integer |
Erforderlich. Der Glättungsfaktor. |
|
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Ausdruckstyp. |
qloguniform , quniform |
min_value |
Zahl |
Erforderlich. Der Mindestwert im Bereich (einschließlich). |
|
max_value |
Zahl |
Erforderlich. Der Höchstwert im Bereich (einschließlich). |
|
q |
Integer |
Erforderlich. Der Glättungsfaktor. |
|
Lognormal, normal
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Ausdruckstyp. |
lognormal , normal |
mu |
Zahl |
Erforderlich. Der Mittelwert der Normalverteilung. |
|
sigma |
Zahl |
Erforderlich. Die Standardabweichung der Normalverteilung. |
|
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Ausdruckstyp. |
loguniform |
min_value |
Zahl |
Erforderlich. Der Mindestwert im Bereich ist exp(min_value) (einschließlich). |
|
max_value |
Zahl |
Erforderlich. Der Maximalwert im Bereich ist exp(max_value) (einschließlich). |
|
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Der Ausdruckstyp. |
uniform |
min_value |
Zahl |
Erforderlich. Der Mindestwert im Bereich (einschließlich). |
|
max_value |
Zahl |
Erforderlich. Der Höchstwert im Bereich (einschließlich). |
|
Attribute des limits
-Schlüssels
Schlüssel |
type |
BESCHREIBUNG |
Standardwert |
max_total_trials |
Integer |
Die maximale Anzahl von Testaufträgen. |
1000 |
max_concurrent_trials |
Integer |
Die maximale Anzahl von Testaufträgen, die gleichzeitig ausgeführt werden können. |
Wird standardmäßig auf max_total_trials festgelegt. |
timeout |
Integer |
Die maximale Zeit in Sekunden, für die der gesamte Aufräumauftrag ausgeführt werden darf. Sobald dieser Grenzwert erreicht ist, bricht das System den Aufräumauftrag ab, einschließlich aller versuche. |
5184000 |
trial_timeout |
Integer |
Die maximale Zeit in Sekunden, die jeder Testauftrag ausgeführt werden darf. Sobald dieser Grenzwert erreicht ist, bricht das System die Testversion ab. |
|
Attribute des trial
-Schlüssels
Schlüssel |
type |
BESCHREIBUNG |
Standardwert |
command |
Zeichenfolge |
Erforderlich. Den auszuführenden Befehl. |
|
code |
Zeichenfolge |
Lokaler Pfad zum Quellcodeverzeichnis, das hochgeladen und für den Auftrag verwendet werden soll. |
|
environment |
Zeichenfolge oder Objekt |
Erforderlich. Die Umgebung, die für den Auftrag verwendet werden soll. Dieser Wert kann entweder ein Verweis auf eine vorhandene versionierte Umgebung im Arbeitsbereich oder eine Inline-Umgebungsspezifikation sein. Verwenden Sie die Syntax azureml:<environment-name>:<environment-version> , um auf eine vorhandene Umgebung zu verweisen.
Um eine Umgebung inline zu definieren, folgen Sie dem Umgebungsschema. Schließen Sie die name Eigenschaften aus version , da inlineumgebungen sie nicht unterstützen. |
|
environment_variables |
Objekt (object) |
Wörterbuch der Name-Wert-Paare von Umgebungsvariablen, die für den Prozess festgelegt werden, in dem der Befehl ausgeführt wird. |
|
distribution |
Objekt (object) |
Die Verteilungskonfiguration für verteilte Trainingsszenarien Eine der Mpi-Konfigurationen, PyTorch-Konfiguration oder TensorFlow-Konfiguration. |
|
resources.instance_count |
Integer |
Die Anzahl von Knoten, die für den Auftrag verwendet werden sollen. |
1 |
Verteilungskonfigurationen
MpiConfiguration
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Verteilungstyp. |
mpi |
process_count_per_instance |
Integer |
Erforderlich. Die Anzahl der Prozesse pro Knoten, die für den Auftrag gestartet werden sollen |
|
PyTorchConfiguration
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Const |
Erforderlich. Verteilungstyp. |
pytorch |
|
process_count_per_instance |
Integer |
Die Anzahl der Prozesse pro Knoten, die für den Auftrag gestartet werden sollen |
|
1 |
TensorFlowConfiguration
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Const |
Erforderlich. Verteilungstyp. |
tensorflow |
|
worker_count |
Integer |
Die Anzahl von Workerrollen, die für den Auftrag gestartet werden. |
|
Wird standardmäßig auf resources.instance_count festgelegt. |
parameter_server_count |
Integer |
Die Anzahl von Parameterservern, die für den Auftrag gestartet werden. |
|
0 |
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Zeichenfolge |
Der Typ der Auftragseingabe. Geben Sie für Eingabedaten, die auf eine einzelne Dateiquelle verweisen, uri_file und für Eingabedaten, die auf eine Ordnerquelle verweisen, uri_folder an. Weitere Informationen finden Sie unter "Weitere Informationen zum Datenzugriff". |
uri_file , , uri_folder mltable mlflow_model |
uri_folder |
path |
Zeichenfolge |
Der Pfad zu den Daten, die als Eingabe verwendet werden sollen. Dieser Wert kann auf verschiedene Arten angegeben werden:
- Ein lokaler Pfad zur Datenquellendatei oder zum Datenquellenordner, z.B. path: ./iris.csv . Die Daten werden während der Auftragsübermittlung hochgeladen.
- Ein URI eines Cloudpfads zur Datei oder zum Ordner, die bzw. der als Eingabe verwendet werden soll. Unterstützte URI-Typen sind azureml , https , wasbs , abfss und adl . Weitere Informationen zur Verwendung des azureml:// URI-Formats finden Sie unter Core yaml-Syntax.
– Ein vorhandenes registriertes Azure Machine Learning-Datenobjekt, das als Eingabe verwendet werden soll. Um auf eine registrierte Datenressource zu verweisen, verwenden Sie die azureml:<data_name>:<data_version> Syntax oder azureml:<data_name>@latest (um auf die neueste Version dieses Datenobjekts zu verweisen), z path: azureml:cifar10-data:1 . B. oder path: azureml:cifar10-data@latest . |
|
|
mode |
Zeichenfolge |
Modus, in dem die Daten an das Computeziel übermittelt werden sollen.
Für die schreibgeschützte Bereitstellung (ro_mount ) werden die Daten als Bereitstellungspfad verwendet. Ein Ordner wird als Ordner bereitgestellt, und eine Datei wird als Datei bereitgestellt. Azure Machine Learning löst die Eingabe in den Bereitstellungspfad auf.
Für download den Modus werden die Daten in das Computeziel heruntergeladen. Azure Machine Learning löst die Eingabe in den heruntergeladenen Pfad auf.
Verwenden Sie den Modus, um nur die URL des Speicherorts des Datenartefaktes oder der Artefakte zu installieren direct oder herunterzuladen. Dies übergibt die URL des Speicherorts als Auftragseingabe. In diesem Fall sind Sie vollständig für die Handhabung der Anmeldeinformationen für den Zugriff auf den Speicher verantwortlich. |
ro_mount , download direct |
ro_mount |
Auftragsausgaben
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
Standardwert |
type |
Zeichenfolge |
Der Auftragsausgabetyp. Für den Standardtyp uri_folder entspricht die Ausgabe einem Ordner. |
uri_file , , uri_folder mltable mlflow_model |
uri_folder |
mode |
Zeichenfolge |
Modus der Übermittlung der Ausgabedatei oder -dateien an den Zielspeicher. Für den Bereitstellungsmodus mit Lese-/Schreibzugriff (rw_mount ) ist das Ausgabeverzeichnis ein bereitgestelltes Verzeichnis. Für den Uploadmodus werden alle geschriebenen Dateien am Ende des Auftrags hochgeladen. |
rw_mount , upload |
rw_mount |
Identitätskonfigurationen
UserIdentityConfiguration
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Identitätstyp |
user_identity |
ManagedIdentityConfiguration
Schlüssel |
type |
BESCHREIBUNG |
Zulässige Werte |
type |
Const |
Erforderlich. Identitätstyp |
managed oder managed_identity |
Sie können den az ml job
Befehl zum Verwalten von Azure Machine Learning-Aufträgen verwenden.
Beispiele
Beispiele finden Sie im GitHub-Repository . Hier sind mehrere aufgeführt:
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:AzureML-sklearn-1.5@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: hello sweep using sobol and a seed value
$schema: https://azuremlschemas.azureedge.net/latest/sweepJob.schema.json
type: sweep
trial:
code: src
command: >-
python main.py
--iris-csv ${{inputs.iris_csv}}
--learning-rate ${{search_space.learning_rate}}
--boosting ${{search_space.boosting}}
environment: azureml:AzureML-lightgbm-3.3@latest
inputs:
iris_csv:
type: uri_file
path: https://azuremlexamples.blob.core.windows.net/datasets/iris.csv
compute: azureml:cpu-cluster
sampling_algorithm:
type: random
rule: sobol
seed: 123
search_space:
learning_rate:
type: uniform
min_value: 0.01
max_value: 0.9
boosting:
type: choice
values: ["gbdt", "dart"]
objective:
goal: minimize
primary_metric: test-multi_logloss
limits:
max_total_trials: 20
max_concurrent_trials: 10
timeout: 7200
display_name: lightgbm-iris-sweep-example
experiment_name: lightgbm-iris-sweep-example
description: Run a hyperparameter sweep job for LightGBM on Iris dataset.
YAML: Grundlegende Optimierung von Python-Modellen mit Hyperparametern
$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:AzureML-sklearn-1.5@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.
Nächste Schritte