CLI (v2): YAML-Schema des Auftrags zur Bildklassifizierung mit AutoML
GILT FÜR Azure CLI-ML-Erweiterung v2 (aktuell)
Das JSON-Quellschema finden Sie unter https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLImageClassificationJob.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 der Benutzer die VS Code-Erweiterung für Azure Machine Learning zum Erstellen einer YAML-Datei verwendet, kann er durch Einfügen von $schema am Anfang der Datei Schema- und Ressourcenvervollständigungen aufrufen. |
||
type |
const | Erforderlich. Typ des Auftrags. | automl |
automl |
task |
const | Erforderlich. Der Typ der AutoML-Aufgabe. | image_classification |
image_classification |
name |
Zeichenfolge | Der Name des Auftrags. Muss für alle Aufträge im Arbeitsbereich eindeutig sein. Wenn hier nichts angegeben wird, 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. Wenn hier nichts angegeben wird, generiert Azure Machine Learning automatisch einen für Menschen lesbaren Bezeichner für den Anzeigenamen. | ||
experiment_name |
Zeichenfolge | Der Experimentname zum Organisieren des Auftrags. Die Ausführungsaufzeichnung jedes Auftrags wird auf der Studio-Registerkarte „Experimente“ unter dem entsprechenden Experiment eingeordnet. Wenn hier nichts angegeben wird, verwendet Azure Machine Learning standardmäßig den Namen des Arbeitsverzeichnisses, in dem der Auftrag erstellt wurde. | ||
description |
Zeichenfolge | Die Beschreibung des Auftrags | ||
tags |
Objekt (object) | Wörterbuch der Tags für den Auftrag. | ||
compute |
Zeichenfolge | Name des Computeziels, auf dem der Auftrag ausgeführt werden soll. Diese Compute kann entweder ein Verweis auf eine im Arbeitsbereich vorhandene Compute (mithilfe der Syntax azureml:<compute_name> ) oder local zum Festlegen der lokalen Ausführung sein. Weitere Informationen zu Compute für AutoML-Bildaufträge finden Sie im Abschnitt Compute zum Ausführen des Experiments.Hinweis: Aufträge in der Pipeline unterstützen local nicht als compute . * |
local |
|
log_verbosity |
number | Verschiedene Ebenen der Protokollausführlichkeit. | not_set , , debug info , warning , , error critical |
info |
primary_metric |
Zeichenfolge | Die Metrik, die AutoML für die Modellauswahl optimiert. | accuracy |
accuracy |
target_column_name |
Zeichenfolge | Erforderlich. Der Name der Spalte, die als Ziel für Vorhersagen verwendet werden soll. Sie muss stets angegeben werden. Dieser Parameter gilt für training_data und validation_data . |
||
training_data |
Objekt (object) | Erforderlich. Die innerhalb des Auftrags zu verwendenden Daten. Sie müssen sowohl Trainingsfeaturespalten als auch eine Zielspalte enthalten. Der Parameter training_data muss stets angegeben werden. Weitere Informationen zu Schlüsseln und deren Beschreibungen finden Sie im Abschnitt Trainings- oder Validierungsdaten. Ein Beispiel finden Sie im Abschnitt Nutzen von Daten. | ||
validation_data |
Objekt (object) | Die im Experiment zu verwendenden Validierungsdaten. Sie sollte sowohl Trainingsfeatures als auch eine Bezeichnungsspalte (optional eine Spalte mit Stichprobengewichtungen) enthalten. Wenn validation_data angegeben wird, müssen die Parameter training_data und target_column_name angegeben werden. Weitere Informationen zu Schlüsseln und deren Beschreibungen finden Sie im Abschnitt Trainings- oder Validierungsdaten. Ein Beispiel finden Sie im Abschnitt Nutzen von Daten. |
||
validation_data_size |
float | Der Teil der Daten, der für die Validierung zurückbehalten werden soll, wenn keine Benutzervalidierungsdaten angegeben werden. | Ein Wert im Bereich (0,0, 1,0) | |
limits |
Objekt (object) | Wörterbuch von Grenzwertkonfigurationen des Auftrags. Der Schlüssel ist ein Name des Grenzwerts im Kontext des Auftrags, der Wert ist der Grenzwert selbst. Weitere Informationen finden Sie im Abschnitt Konfigurieren von Experimenteinstellungen. | ||
training_parameters |
Objekt (object) | Wörterbuch mit Trainingsparametern für den Auftrag. Geben Sie ein Objekt mit Schlüsseln an, wie in den folgenden Abschnitten aufgeführt. - Modellunabhängige Hyperparameter - Spezifische Hyperparameter für die Bildklassifizierung (mehrere Klassen und mehrere Bezeichnungen) Ein Beispiel finden Sie im Abschnitt Unterstützte Modellarchitekturen. |
||
sweep |
Objekt (object) | Wörterbuch mit Sweep-Parametern für den Auftrag. Es verfügt über zwei Schlüssel: sampling_algorithm (erforderlich) und early_termination . Weitere Informationen und ein Beispiel finden Sie in den Abschnitten Samplingmethoden für den Sweep und Richtlinien zum vorzeitigen Beenden. |
||
search_space |
Objekt (object) | Wörterbuch des Suchbereichs für Hyperparameter. Der Schlüssel ist der Name des Hyperparameters, und der Wert ist der Parameterausdruck. Der Benutzer kann die möglichen Hyperparameter anhand von Parametern finden, die für den Schlüssel training_parameters angegeben sind. Ein Beispiel finden Sie im Abschnitt Durchführen von Sweeps für Hyperparameter für Ihr Modell. |
||
search_space.<hyperparameter> |
Objekt | Es gibt zwei Arten von Hyperparametern: - Diskrete Hyperparameter werden als choice unter diskreten Werten angegeben. choice kann einen oder mehrere durch Komma getrennte Werte annehmen bzw. ein range -Objekt oder beliebiges list -Objekt sein. Erweiterte diskrete Hyperparameter können ferner mithilfe einer Verteilung angegeben werden: randint , qlognormal , qnormal , qloguniform , quniform . Weitere Informationen finden Sie in diesem Abschnitt. - Kontinuierliche Hyperparameter werden als Verteilung über einen kontinuierlichen Wertebereich angegeben. Derzeit unterstützte Verteilungen sind: lognormal , normal , loguniform , uniform . Weitere Informationen finden Sie in diesem Abschnitt. Weitere Informationen zu den möglichen Ausdrücken finden Sie unter Parameterausdrücke. |
||
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. | ||
outputs.best_model |
Objekt (object) | Wörterbuch der Ausgabekonfigurationen für das beste Modell. Weitere Informationen finden Sie unter Ausgabekonfiguration für das beste Modell. |
Trainings- oder Validierungsdaten
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
description |
Zeichenfolge | Die detaillierten Informationen, die diese Eingabedaten beschreiben. | ||
path |
Zeichenfolge | Für „Pfad“ sind ein file -Pfad, folder -Pfad und pattern -Pfade zulässig. pattern gibt ein Suchmuster an, das das Verwenden von Platzhaltern (* und ** ) für Dateien und Ordner mit Daten zulässt. Unterstützte URI-Typen sind azureml , https , wasbs , abfss und adl . Weitere Informationen zum Verwenden des URI-Formats azureml:// finden Sie unter YAML-Kernsyntax. URI des Speicherorts der Artefaktdatei. Wenn dieser URI kein Schema hat (z. B. http:, azureml: usw.), wird er als lokaler Verweis betrachtet. Die Datei, auf die er verweist, wird bei Erstellung der Entität in den standardmäßigen Blobspeicher des Arbeitsbereichs hochgeladen. |
||
mode |
Zeichenfolge | Mechanismus zur Zustellung des Datasets. | direct |
direct |
type |
const | Um Modelle für maschinelles Sehen zu erstellen, müssen Benutzer als Eingabe für das Modelltraining bezeichnete Bilddaten in Form einer MLTable bereitstellen. | MLTable | MLTable |
Ausgabekonfiguration für das beste Modell
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
type |
Zeichenfolge | Erforderlich. Typ des besten Modells. AutoML lässt nur MLflow-Modelle zu. | mlflow_model |
mlflow_model |
path |
Zeichenfolge | Erforderlich. URI des Speicherorts, an dem die Modellartefaktdateien gespeichert sind. Wenn dieser URI kein Schema hat (z. B. http:, azureml: usw.), wird er als lokaler Verweis betrachtet. Die Datei, auf die er verweist, wird bei Erstellung der Entität in den standardmäßigen Blobspeicher des Arbeitsbereichs hochgeladen. | ||
storage_uri |
Zeichenfolge | Die HTTP-URL des Modells. Verwenden Sie diese URL mit az storage copy -s THIS_URL -d DESTINATION_PATH --recursive , um die Daten herunterzuladen. |
Hinweise
Mit dem Befehl az ml job
können Sie Azure Machine Learning-Aufträge verwalten.
Beispiele
Beispiele finden Sie im GitHub-Beispielrepository. Nachstehend finden Sie Links zu für den Bildklassifizierungsauftrag relevanten Beispielen.
YAML: AutoML-Auftrag zur Bildklassifizierung
$schema: https://azuremlsdk2.blob.core.windows.net/preview/0.0.1/autoMLJob.schema.json
type: automl
experiment_name: dpv2-cli-automl-image-classification-experiment
description: A multi-class Image classification job using fridge items dataset
compute: azureml:gpu-cluster
task: image_classification
log_verbosity: debug
primary_metric: accuracy
target_column_name: label
training_data:
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/training-mltable-folder
type: mltable
validation_data:
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/validation-mltable-folder
type: mltable
limits:
timeout_minutes: 60
max_trials: 10
max_concurrent_trials: 2
training_parameters:
early_stopping: True
evaluation_frequency: 1
sweep:
sampling_algorithm: random
early_termination:
type: bandit
evaluation_interval: 2
slack_factor: 0.2
delay_evaluation: 6
search_space:
- model_name:
type: choice
values: [vitb16r224, vits16r224]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
number_of_epochs:
type: choice
values: [15, 30]
- model_name:
type: choice
values: [seresnext, resnet50]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
layers_to_freeze:
type: choice
values: [0, 2]
YAML: AutoML-Pipelineauftrag zur Bildklassifizierung
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
description: Pipeline using AutoML Image Multiclass Classification task
display_name: pipeline-with-image-classification
experiment_name: pipeline-with-automl
settings:
default_compute: azureml:gpu-cluster
inputs:
image_multiclass_classification_training_data:
type: mltable
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/training-mltable-folder
image_multiclass_classification_validation_data:
type: mltable
# Update the path, if prepare_data.py is using data_path other than "./data"
path: data/validation-mltable-folder
jobs:
image_multiclass_classification_node:
type: automl
task: image_classification
log_verbosity: info
primary_metric: accuracy
limits:
timeout_minutes: 180
max_trials: 10
max_concurrent_trials: 2
target_column_name: label
training_data: ${{parent.inputs.image_multiclass_classification_training_data}}
validation_data: ${{parent.inputs.image_multiclass_classification_validation_data}}
sweep:
sampling_algorithm: random
early_termination:
type: bandit
evaluation_interval: 2
slack_factor: 0.2
delay_evaluation: 6
search_space:
- model_name:
type: choice
values: [vitb16r224, vits16r224]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
number_of_epochs:
type: choice
values: [15, 30]
- model_name:
type: choice
values: [seresnext, resnet50]
learning_rate:
type: uniform
min_value: 0.001
max_value: 0.01
layers_to_freeze:
type: choice
values: [0, 2]
training_parameters:
early_stopping: True
evaluation_frequency: 1
# currently need to specify outputs "mlflow_model" explicitly to reference it in following nodes
outputs:
best_model:
type: mlflow_model
register_model_node:
type: command
component: file:./components/component_register_model.yaml
inputs:
model_input_path: ${{parent.jobs.image_multiclass_classification_node.outputs.best_model}}
model_base_name: fridge_items_multiclass_classification_model