CLI (v2) Batch-Bereitstellung YAML-Schema

GILT FÜRAzure 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

Nächste Schritte