YAML-Schema für einen CLI-Pipelineauftrag (v2)
GILT FÜR Azure CLI-ML-Erweiterung v2 (aktuell)
Das JSON-Quellschema finden Sie unter https://azuremlschemas.azureedge.net/latest/pipelineJob.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. | pipeline |
|
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. 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. |
||
tags |
Objekt | Das Wörterbuch der Tags für den Auftrag | ||
settings |
Objekt (object) | Die Standardeinstellungen für den Pipelineauftrag. Besuchen Sie Attribute des settings Schlüssels für den Satz konfigurierbarer Eigenschaften. |
||
jobs |
Objekt | Erforderlich. Das Wörterbuch der einzelnen Aufträge, die als Schritte innerhalb der Pipeline ausgeführt werden sollen. Diese Aufträge werden als untergeordnete Aufträge des übergeordneten Pipelineauftrags betrachtet. Der Schlüssel ist der Name des Schritts im Kontext des Pipelineauftrags. Dieser Name unterscheidet sich vom eindeutigen Auftragsnamen des untergeordneten Auftrags. Der Wert ist die Auftragsspezifikation, die dem Befehlsauftragsschema oder dem Aufräumen des Auftragsschemas folgen kann. Derzeit können nur Befehlsaufträge und Aufräumaufträge in einer Pipeline ausgeführt werden. In späteren Releases werden andere Auftragstypen unterstützt. |
||
inputs |
Objekt (object) | Das Wörterbuch der Eingaben für den Pipelineauftrag. Der Schlüssel ist ein Name für die Eingabe im Kontext des Auftrags. Der Wert ist der Eingabewert. Die Eingaben eines einzelnen Schrittauftrags in der Pipeline können mit dem ${{ parent.inputs.<input_name> }} Ausdruck auf diese Pipelineeingaben verweisen. Weitere Informationen zum Binden der Eingaben eines Pipelineschritts an die Eingaben des Pipelineauftrags der obersten Ebene finden Sie unter Ausdruckssyntax zum Binden von Eingaben und Ausgaben zwischen Schritten in einem Pipelineauftrag. |
||
inputs.<input_name> |
number, integer, boolean, string oder object | Ein Literalwert (vom Typ Zahl, Integer, boolescher Wert oder Zeichenfolge) oder ein Objekt, das eine Datenspezifikation für Auftragseingaben enthält. | ||
outputs |
Objekt (object) | Das Wörterbuch der Ausgabekonfigurationen des Pipelineauftrags. Der Schlüssel ist ein Name für die Ausgabe im Kontext des Auftrags. Der Wert ist die Ausgabekonfiguration. Die Ausgaben eines einzelnen Schrittauftrags in der Pipeline können mit dem ${{ parents.outputs.<output_name> }} Ausdruck auf diese Pipelineausgaben verweisen. Weitere Informationen zum Binden der Ausgaben eines Pipelineschritts an die Ausgaben des Pipelineauftrags der obersten Ebene finden Sie in der Ausdruckssyntax zum Binden von Eingaben und Ausgaben zwischen Schritten in einem Pipelineauftrag. |
||
outputs.<output_name> |
Objekt | Sie können das Objekt leer lassen. In diesem Fall ist die Ausgabe standardmäßig vom Typ uri_folder , und Azure Machine Learning generiert einen Ausgabespeicherort für die Ausgabe basierend auf diesem templatisierten Pfad: {settings.datastore}/azureml/{job-name}/{output-name}/ . Dateien in das Ausgabeverzeichnis werden über eine Lese-/Schreibzugriffs-Bereitstellung geschrieben. Um einen anderen Ausgabemodus anzugeben, stellen Sie ein Objekt bereit, das die Auftragsausgabespezifikation enthält. |
||
identity |
Objekt | Die Identität wird für den Datenzugriff verwendet. Dafür kann UserIdentityConfiguration, ManagedIdentityConfiguration oder „Kein“ verwendet werden. Wenn es sich um UserIdentityConfiguration handelt, 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. |
Attribute des settings
-Schlüssels
Schlüssel | type | BESCHREIBUNG | Standardwert |
---|---|---|---|
default_datastore |
Zeichenfolge | Der Name des Datenspeichers, der als Standarddatenspeicher für den Pipelineauftrag verwendet werden soll. Dieser Wert muss ein Verweis auf einen vorhandenen Datenspeicher im Arbeitsbereich sein, wobei die azureml:<datastore-name> Syntax verwendet wird. Alle in der outputs Eigenschaft des übergeordneten Pipelineauftrags oder untergeordneten Schrittaufträge definierten Ausgaben werden in diesem Datenspeicher gespeichert. Wenn diese Angabe weggelassen wird, werden Die Ausgaben im Blob-Datenspeicher des Arbeitsbereichs gespeichert. |
|
default_compute |
Zeichenfolge | Der Name des Computeziels, das als Standardberechnung für alle Schritte in der Pipeline verwendet werden soll. Die auf Schrittebene definierte Berechnung setzt diese Standardberechnung für diesen bestimmten Schritt außer Kraft. Der default_compute Wert muss ein Verweis auf eine vorhandene Berechnung im Arbeitsbereich sein, wobei die azureml:<compute-name> Syntax verwendet wird. |
|
continue_on_step_failure |
boolean | Diese Einstellung bestimmt, was geschieht, wenn ein Schritt in der Pipeline fehlschlägt. Standardmäßig wird die Pipeline auch dann weiterhin ausgeführt, wenn ein Schritt fehlschlägt. Dies bedeutet, dass alle Schritte, die nicht vom fehlgeschlagenen Schritt abhängen, weiterhin ausgeführt werden. Wenn Sie diese Einstellung jedoch in "False" ändern, wird die gesamte Pipeline nicht mehr ausgeführt, und alle derzeit ausgeführten Schritte werden abgebrochen, wenn ein Schritt fehlschlägt. | True |
force_rerun |
boolean | Gibt an, ob die erneute Ausführung der gesamten Pipeline erzwungen werden soll. Der Standardwert ist False . Dies bedeutet, dass die Pipeline standardmäßig versucht, die Ausgabe des vorherigen Auftrags wiederzuverwenden, wenn sie die Wiederverwendungskriterien erfüllt. Wenn diese Option als True festgelegt ist, werden alle Schritte in der Pipeline erneut ausgeführt. |
False |
Auftragseingaben
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. Dies 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. B. path: azureml:cifar10-data:1 oder path: azureml:cifar10-data@latest . |
||
mode |
Zeichenfolge | Modus, in dem die Daten an das Computeziel übermittelt werden sollen. Bei einer schreibgeschützten Einbindung ( ro_mount ) werden die Daten als Einbindungspfad 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 die 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 |
Hinweise
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: Hallo Pipeline
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline
jobs:
hello_job:
command: echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
world_job:
command: echo "world"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
YAML: Eingabe-/Ausgabeabhängigkeit
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_io
jobs:
hello_job:
command: echo "hello" && echo "world" > ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
outputs:
world_output:
world_job:
command: cat ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
compute: azureml:cpu-cluster
inputs:
world_input: ${{parent.jobs.hello_job.outputs.world_output}}
YAML: Allgemein Einstellungen für Pipelineaufträge
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_settings
settings:
default_datastore: azureml:workspaceblobstore
default_compute: azureml:cpu-cluster
jobs:
hello_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
world_job:
command: echo 202204190 & echo "hello"
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
YAML: Eingabe auf oberster Ebene und Überschreiben allgemeiner Einstellungen für Pipelineaufträge
$schema: https://azuremlschemas.azureedge.net/latest/pipelineJob.schema.json
type: pipeline
display_name: hello_pipeline_abc
settings:
default_compute: azureml:cpu-cluster
inputs:
hello_string_top_level_input: "hello world"
jobs:
a:
command: echo hello ${{inputs.hello_string}}
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
hello_string: ${{parent.inputs.hello_string_top_level_input}}
b:
command: echo "world" >> ${{outputs.world_output}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
outputs:
world_output:
c:
command: echo ${{inputs.world_input}}/world.txt
environment: azureml://registries/azureml/environments/sklearn-1.5/labels/latest
inputs:
world_input: ${{parent.jobs.b.outputs.world_output}}