CLI (v2) Batch-Bereitstellung YAML-Schema
GILT FÜR Azure CLI-ML-Erweiterung v2 (aktuell)
Das JSON-Quellschema finden Sie unter https://azuremlschemas.azureedge.net/latest/batchDeployment.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 durch das Einfügen von $schema am Anfang der Datei Schema- und Ressourcenvervollständigungen aufrufen. |
||
name |
Zeichenfolge | Erforderlich. Name der Bereitstellung | ||
description |
Zeichenfolge | Beschreibung des Bereitstellung. | ||
tags |
Objekt (object) | Wörterbuch der Tags für die Bereitstellung. | ||
endpoint_name |
Zeichenfolge | Erforderlich. Name des Endpunkts, unter dem die Bereitstellung erstellt werden soll. | ||
type |
Zeichenfolge | Erforderlich. Typ der Batchbereitstellung. Verwenden Sie model für Modellimplementierungen und pipeline für Pipelinekomponentenbereitstellungen. Neu in Version 1.7 |
model , pipeline |
model |
settings |
Objekt (object) | Konfiguration der Bereitstellung. Die zulässigen Werte finden Sie in der spezifischen YAML-Referenz für Modell und Pipelinekomponente. Neu in Version 1.7 |
Tipp
Der Schlüssel type
wurde in Version 1.7 der CLI-Erweiterung und höher eingeführt. Um die Abwärtskompatibilität vollständig zu unterstützen, ist diese Eigenschaft standardmäßig auf model
festgelegt. Falls nicht explizit angegeben, wird der Schlüssel settings
jedoch nicht erzwungen, und alle Eigenschaften für die Modellbereitstellungseinstellungen sollten im Stammverzeichnis der YAML-Spezifikation angegeben werden.
YAML-Syntax für Modellbereitstellungen
Bei type: model
wird die folgende Syntax erzwungen:
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
model |
Zeichenfolge oder Objekt | Erforderlich. Das für die Bereitstellung zu verwendende Modell. Dieser Wert kann entweder ein Verweis auf ein vorhandenes versioniertes Modell im Arbeitsbereich oder eine Inline-Modellspezifikation sein. Um auf ein bestehendes Modell zu verweisen, verwenden Sie die Syntax azureml:<model-name>:<version> . Um ein Modell inline zu definieren, folgen Sie dem Modellschema. Als bewährtes Verfahren für Produktionsszenarien sollten Sie das Modell separat erstellen und hier referenzieren. |
||
code_configuration |
Objekt (object) | Konfiguration für die Logik des Scoring-Codes. Diese Eigenschaft ist nicht erforderlich, wenn Ihr Modell im MLflow-Format vorliegt. |
||
code_configuration.code |
Zeichenfolge | Das lokale Verzeichnis, das den gesamten Python-Quellcode für die Bewertung des Modells enthält. | ||
code_configuration.scoring_script |
Zeichenfolge | Die Python-Datei im obigen Verzeichnis. Diese Datei muss über eine Funktion vom Typ init() und über eine Funktion vom Typ run() verfügen. Verwenden Sie die Funktion init() für die kostenintensive oder für die allgemeine Vorbereitung (z. B. wenn Sie das Modell in den Arbeitsspeicher laden). Die Funktion init() wird nur einmal zu Beginn des Prozesses aufgerufen. Verwenden Sie run(mini_batch) , um die einzelnen Einträge zu bewerten. Der Wert von mini_batch ist eine Liste mit Dateipfaden. Die Funktion run() sollte einen Pandas-Datenrahmen oder ein Array zurückgeben. Jedes zurückgegebene Element deutet auf eine erfolgreiche Ausführung eines Eingabeelements im mini_batch hin. Weitere Informationen zum Erstellen des Bewertungsskripts finden Sie unter Grundlegendes zum Bewertungsskript. |
||
environment |
Zeichenfolge oder Objekt | Die für die Bereitstellung zu verwendende Umgebung. Dieser Wert kann entweder ein Verweis auf eine vorhandene versionierte Umgebung im Arbeitsbereich oder eine Inline-Umgebungsspezifikation sein. Diese Eigenschaft ist nicht erforderlich, wenn Ihr Modell im MLflow-Format vorliegt. Um auf eine bestehende Umgebung zu verweisen, verwenden Sie die Syntax azureml:<environment-name>:<environment-version> . Um eine Umgebung inline zu definieren, folgen Sie dem Umgebungsschema. Als bewährtes Verfahren für Produktionsszenarien sollten Sie die Umgebung separat erstellen und hier referenzieren. |
||
compute |
Zeichenfolge | Erforderlich. Name des Rechenziels, auf dem die Batch-Scoring-Aufträge ausgeführt werden sollen. Dieser Wert sollte ein Verweis auf eine bestehende Berechnung im Arbeitsbereich unter Verwendung der azureml:<compute-name> -Syntax sein. |
||
resources.instance_count |
integer | Die Anzahl der Knoten, die für jeden Batch-Scoring-Auftrag verwendet werden sollen. | 1 |
|
settings |
Objekt (object) | Spezifische Konfiguration der Modellbereitstellung. In Version 1.7 geändert. |
||
settings.max_concurrency_per_instance |
integer | Die maximale Anzahl von parallelen scoring_script Läufen pro Instanz. |
1 |
|
settings.error_threshold |
integer | Die Anzahl der Dateifehler, die ignoriert werden sollen. Wenn die Fehlerzahl für die gesamte Eingabe diesen Wert übersteigt, wird der Batchbewertungsauftrag abgebrochen. error_threshold bezieht sich auf den gesamten Input und nicht auf einzelne Mini-Batches. Wird dieser Parameter nicht angegeben, können beliebig viele Dateifehler auftreten, ohne dass der Auftrag abgebrochen wird. |
-1 |
|
settings.logging_level |
Zeichenfolge | Die Ausführlichkeitsstufe des Protokolls. | warning , info , debug |
info |
settings.mini_batch_size |
integer | Die Anzahl der Dateien, die code_configuration.scoring_script in einem run() -Aufruf verarbeiten kann. |
10 |
|
settings.retry_settings |
Objekt (object) | Wiederholungseinstellungen für die Bewertung jeder Mini-Charge. | ||
settings.retry_settings.max_retries |
integer | Die maximale Anzahl der Wiederholungsversuche für einen fehlgeschlagenen oder zeitlich begrenzten Mini-Batch. | 3 |
|
settings.retry_settings.timeout |
integer | Die Zeitüberschreitung in Sekunden für das Erfassen eines einzelnen Mini-Batches. Verwenden Sie größere Werte, wenn die Größe des Mini-Batches größer oder die Ausführung des Modells teurer ist. | 30 |
|
settings.output_action |
Zeichenfolge | Gibt an, wie die Ausgabe in der Ausgabedatei organisiert werden soll. Verwenden Sie summary_only , wenn Sie die Ausgabedateien generieren, wie unter Anpassen von Ausgaben in Modellbereitstellungen angegeben. Verwenden Sie append_row , wenn Sie Vorhersagen als Teil der return -Anweisung der run() -Function zurückgeben. |
append_row , summary_only |
append_row |
settings.output_file_name |
Zeichenfolge | Name der Ausgabedatei für die Stapelauswertung. | predictions.csv |
|
settings.environment_variables |
Objekt (object) | Wörterbuch mit Namen-Wert-Paaren von Umgebungsvariablen, die für jeden Batch-Bewertungsauftrag festzulegen sind. |
YAML-Syntax für Bereitstellungen von Pipelinekomponenten
Bei type: pipeline
wird die folgende Syntax erzwungen:
Schlüssel | type | BESCHREIBUNG | Zulässige Werte | Standardwert |
---|---|---|---|---|
component |
Zeichenfolge oder Objekt | Erforderlich. Die für die Bereitstellung verwendete Pipelinekomponente. Dieser Wert kann entweder ein Verweis auf eine vorhandene Pipelinekomponente mit Versionsangabe im Arbeitsbereich oder auf eine Registrierung oder eine Inlinepipelinespezifikation sein. Verwenden Sie die Syntax azureml:<component-name>:<version> , um auf eine vorhandene Komponente zu verweisen. Um eine Pipelinekomponente inline zu definieren, befolgen Sie das Pipelinekomponentenschema. Als bewährtes Verfahren für Produktionsszenarien sollten Sie die Komponente separat erstellen und hier referenzieren. Neu in Version 1.7 |
||
settings |
Objekt (object) | Die Standardeinstellungen für den Pipelineauftrag. Informationen zu den konfigurierbaren Eigenschaften finden Sie unter Attribute des settings-Schlüssels. Neu in Version 1.7 |
Bemerkungen
Die az ml batch-deployment
-Befehle können für die Verwaltung von Azure Machine Learning-Batch-Bereitstellungen verwendet werden.
Beispiele
Beispiele finden Sie im GitHub-Beispielrepository. Auf einige wird im Anschluss Bezug genommen:
YAML: MLflow-Modellbereitstellung
Eine Modellbereitstellung mit einem MLflow, für die weder code_configuration
noch environment
angegeben werden muss:
$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
type: model
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
instance_count: 2
settings:
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
max_retries: 3
timeout: 300
error_threshold: -1
logging_level: info
YAML: Benutzerdefinierte Modellimplementierung mit Bewertungsskript
Eine Modellbereitstellung, die das zu verwendende Bewertungsskript und die Umgebung angibt:
$schema: https://azuremlschemas.azureedge.net/latest/modelBatchDeployment.schema.json
name: mnist-torch-dpl
description: A deployment using Torch to solve the MNIST classification dataset.
endpoint_name: mnist-batch
type: model
model:
name: mnist-classifier-torch
path: model
code_configuration:
code: code
scoring_script: batch_driver.py
environment:
name: batch-torch-py38
image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
conda_file: environment/conda.yaml
compute: azureml:batch-cluster
resources:
instance_count: 1
settings:
max_concurrency_per_instance: 2
mini_batch_size: 10
output_action: append_row
output_file_name: predictions.csv
retry_settings:
max_retries: 3
timeout: 30
error_threshold: -1
logging_level: info
YAML: Legacymodellbereitstellungen
Wenn das Attribut type
im YAML-Code nicht angegeben ist, wird eine Modellbereitstellung abgeleitet. Der Schlüssel settings
ist jedoch nicht verfügbar, und die Eigenschaften müssen im Stamm des YAML-Codes platziert werden, wie in diesem Beispiel angegeben. Es wird dringend empfohlen, immer die Eigenschaft type
anzugeben.
$schema: https://azuremlschemas.azureedge.net/latest/batchDeployment.schema.json
endpoint_name: heart-classifier-batch
name: classifier-xgboost-mlflow
description: A heart condition classifier based on XGBoost
model: azureml:heart-classifier-mlflow@latest
compute: azureml:batch-cluster
resources:
instance_count: 2
max_concurrency_per_instance: 2
mini_batch_size: 2
output_action: append_row
output_file_name: predictions.csv
retry_settings:
max_retries: 3
timeout: 300
error_threshold: -1
logging_level: info
YAML: Bereitstellung von Pipelinekomponenten
Einfache Bereitstellung von Pipelinekomponenten:
$schema: https://azuremlschemas.azureedge.net/latest/pipelineComponentBatchDeployment.schema.json
name: hello-batch-dpl
endpoint_name: hello-pipeline-batch
type: pipeline
component: azureml:hello_batch@latest
settings:
default_compute: batch-cluster