YAML-Schema der CLI-Befehlskomponente (v2)

GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)

Das JSON-Quellschema finden Sie unter https://azuremlschemas.azureedge.net/latest/commandComponent.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 Typ 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 durch das Einfügen von $schema am Anfang der Datei Schema- und Ressourcenvervollständigungen aufrufen.
type const Der Typ der Komponente. command command
name Zeichenfolge Erforderlich. Der Name der Komponente. Muss mit einem Kleinbuchstaben beginnen. Zulässige Zeichen sind Kleinbuchstaben, Zahlen und Unterstriche (_). Die maximale Länge beträgt 255 Zeichen.
version Zeichenfolge Version der Komponente. Wenn hier nichts angegeben wird, generiert Azure Machine Learning automatisch eine Version.
display_name Zeichenfolge Anzeigename der Komponente auf der Studio-Benutzeroberfläche Kann innerhalb des Arbeitsbereichs auch nicht eindeutig sein
description Zeichenfolge Die Beschreibung der Komponente
tags Objekt (object) Wörterbuch der Tags für die Komponente
is_deterministic boolean Diese Option steuert, ob die Komponente die gleiche Ausgabe für die gleichen Eingabedaten erzeugt. Für Komponenten, die Daten aus externen Quellen laden (also beispielsweise Daten aus einer URL importieren) sollte diese Einstellung in der Regel auf false festgelegt werden. Der Grund ist, dass sich die Daten unter der URL im Laufe der Zeit ändern können. true
command Zeichenfolge Erforderlich. Den auszuführenden Befehl.
code Zeichenfolge Lokaler Pfad zum Quellcodeverzeichnis, das hochgeladen und für die Komponente verwendet werden soll
environment Zeichenfolge oder Objekt Erforderlich. Die Umgebung, die für die Komponente verwendet werden soll. Dieser Wert kann entweder ein Verweis auf eine vorhandene Umgebung mit Versionsangabe im Arbeitsbereich oder eine Inlineumgebungsspezifikation sein.

Verwenden Sie die Syntax azureml:<environment-name>:<environment-version>, um auf eine vorhandene Umgebung zu verweisen.

Um eine Umgebung inline zu definieren, befolgen Sie das Umgebungsschema. Schließen Sie die Eigenschaften name und version aus, da sie für Inline-Umgebungen nicht unterstützt werden.
distribution Objekt (object) Die Verteilungskonfiguration für verteilte Trainingsszenarien Eine von MpiConfiguration, PyTorchConfigurationoder TensorFlowConfiguration.
resources.instance_count integer Die Anzahl von Knoten, die für den Auftrag verwendet werden sollen 1
inputs Objekt (object) Wörterbuch der Komponenteneingaben Der Schlüssel ist ein Name für die Eingabe im Kontext der Komponente, und der Wert ist die Komponenteneingabedefinition.

Eingaben können im command mit dem Ausdruck ${{ inputs.<input_name> }} verwiesen werden.
inputs.<input_name> Objekt (object) Die Komponenteneingabedefinition Informationen zu den konfigurierbaren Eigenschaften finden Sie unter Komponenteneingabe.
outputs Objekt (object) Wörterbuch der Komponentenausgaben Der Schlüssel ist ein Name für die Ausgabe im Kontext der Komponente, und der Wert ist die Komponentenausgabedefinition.

Ausgaben können im command mit dem Ausdruck ${{ outputs.<output_name> }} verwiesen werden.
outputs.<output_name> Objekt (object) Die Komponentenausgabedefinition Informationen zu den konfigurierbaren Eigenschaften finden Sie unter Komponentenausgabe.

Verteilungskonfigurationen

MpiConfiguration

Schlüssel Typ 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 Typ 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 Typ 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

Komponenteneingabe

Schlüssel Typ BESCHREIBUNG Zulässige Werte Standardwert
type Zeichenfolge Erforderlich. Der Typ der Komponenteneingabe Erfahren Sie mehr über Datenzugriff. number, integer, boolean, string, uri_file, uri_folder, mltable, mlflow_model
description Zeichenfolge Die Beschreibung der Eingabe
default number, integer, boolean oder string Der Standardwert für die Eingabe
optional boolean Gibt an, ob die Eingabe erforderlich ist Wenn diese Einstellung auf true festgelegt ist, müssen Sie den Befehl zum Einschließen optionaler Eingaben mit $[[]] verwenden false
min ganze Zahl oder Zahl Der minimale akzeptierte Wert für die Eingabe Dieses Feld kann nur angegeben werden, wenn das Feld typenumber oder integer ist.
max ganze Zahl oder Zahl Der maximale akzeptierte Wert für die Eingabe Dieses Feld kann nur angegeben werden, wenn das Feld typenumber oder integer ist.
enum array Die Liste der zulässigen Werte für die Eingabe Trifft nur zu, wenn das Feld typestring ist.

Komponentenausgabe

Schlüssel Typ BESCHREIBUNG Zulässige Werte Standardwert
type Zeichenfolge Erforderlich. Der Typ der Komponentenausgabe uri_file, uri_folder, mltable, mlflow_model
description Zeichenfolge Beschreibung der Ausgabe

Hinweise

Mit den Befehlen az ml component können Sie Azure Machine Learning-Komponenten verwalten.

Beispiele

Beispiele für Befehlskomponenten finden Sie im GitHub-Beispielrepository. Ausgewählte Beispiele sind unten dargestellt.

Beispiele finden Sie im GitHub-Beispielrepository. Im Folgenden sind mehrere aufgeführt.

YAML: Hallo Welt-Befehlskomponente

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
type: command

name: hello_python_world
display_name: Hello_Python_World
version: 1

code: ./src

environment: 
  image: python

command: >-
  python hello.py

YAML: Komponente mit unterschiedlichen Eingabetypen

$schema: https://azuremlschemas.azureedge.net/latest/commandComponent.schema.json
name: train_data_component_cli
display_name: train_data
description: A example train component
tags:
  author: azureml-sdk-team
version: 9
type: command
inputs:
  training_data: 
    type: uri_folder
  max_epocs:
    type: integer
    optional: true
  learning_rate: 
    type: number
    default: 0.01
    optional: true
  learning_rate_schedule: 
    type: string
    default: time-based
    optional: true
outputs:
  model_output:
    type: uri_folder
code: ./train_src
environment: azureml://registries/azureml/environments/sklearn-1.0/labels/latest
command: >-
  python train.py 
  --training_data ${{inputs.training_data}} 
  $[[--max_epocs ${{inputs.max_epocs}}]]
  $[[--learning_rate ${{inputs.learning_rate}}]]
  $[[--learning_rate_schedule ${{inputs.learning_rate_schedule}}]]
  --model_output ${{outputs.model_output}}

Definieren optionaler Eingaben in der Befehlszeile

Wenn die Eingabe als optional = true festgelegt ist, müssen Sie $[[]] verwenden, um die Befehlszeile mit Eingaben zu nutzen. Beispiel: $[[--input1 ${{inputs.input1}}]. Die Befehlszeile zur Laufzeit verfügt möglicherweise über unterschiedliche Eingaben.

  • Wenn Sie nur die erforderlichen Parameter training_data und model_output angeben, sieht die Befehlszeile wie folgt aus:
python train.py --training_data some_input_path --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Wird zur Laufzeit kein Wert angegeben, nutzen learning_rate und learning_rate_schedule den Standardwert.

  • Wenn alle Eingaben/Ausgaben Werte während der Laufzeit bereitstellen, sieht die Befehlszeile wie folgt aus:
python train.py --training_data some_input_path --max_epocs 10 --learning_rate 0.01 --learning_rate_schedule time-based --model_output some_output_path

Häufige Fehler und Empfehlungen

Im Folgenden finden Sie einige häufige Fehler und entsprechende empfohlene Vorschläge, wenn Sie eine Komponente definieren.

Schlüssel Errors Empfehlung
command 1. $[[]] kann nur optionale Eingaben enthalten.
2. Die Verwendung von \, um eine neue Zeile zu erzeugen, wird im Befehl nicht unterstützt.
3. Eingaben oder Ausgaben werden nicht gefunden.
1. Überprüfen Sie, ob alle im Befehl verwendeten Eingaben oder Ausgaben bereits in den Abschnitten inputs und outputs definiert sind, und verwenden Sie das richtige Format für optionale Eingaben $[[]] oder erforderliche Eingaben ${{}}.
2. Verwenden Sie nicht \, um eine neue Zeile zu erzeugen.
Environment 1. Es ist keine Definition für die Umgebung {envName}, Version {envVersion}, vorhanden.
2. Für den Namen {envName}, Version {envVersion}, ist keine Umgebung vorhanden.
3. Die Ressource mit der ID {envAssetId} wurde nicht gefunden.
1. Stellen Sie sicher, dass der Umgebungsname und die Version, auf die Sie in der Komponentendefinition verweisen, vorhanden sind.
2. Sie müssen die Version angeben, wenn Sie auf eine registrierte Umgebung verweisen.
Eingaben/Ausgaben 1. Eingabe-/Ausgabenamen stehen in Konflikt mit reservierten Systemparametern.
2. Doppelte Namen von Eingaben oder Ausgaben.
1. Verwenden Sie keine dieser reservierten Parameter als Eingabe-/Ausgabenamen: path, ld_library_path, user, logname, home, pwd, shell.
2. Stellen Sie sicher, dass die Namen von Ein- und Ausgaben nicht doppelt sind.

Nächste Schritte