CLI (v2) verwaltete Onlinebereitstellung: YAML-Schema

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

Das JSON-Quellschema finden Sie unter https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.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

Benennungsregeln sind hier definiert.
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.
model Zeichenfolge oder Objekt 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>:<model-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 darauf verweisen.

Dieses Feld ist für Szenarien mit benutzerdefinierter Containerbereitstellung optional.
model_mount_path Zeichenfolge Der Pfad zum Einbinden des Modells in einen benutzerdefinierten Container. Gilt nur für Szenarien mit benutzerdefinierter Containerbereitstellung. Wenn das Feld model angegeben ist, wird es unter diesem Pfad im Container eingebunden.
code_configuration Objekt (object) Konfiguration für die Logik des Bewertungscodes.

Dieses Feld ist für Szenarien mit benutzerdefinierter Containerbereitstellung optional.
code_configuration.code Zeichenfolge Lokaler Pfad zum Quellcodeverzeichnis für die Bewertung des Modells.
code_configuration.scoring_script Zeichenfolge Relativer Pfad zur Bewertungsdatei im Quellcodeverzeichnis.
environment_variables Objekt (object) Wörterbuch der Schlüssel-Wert-Paare von Umgebungsvariablen, die im Bereitstellungscontainer festgelegt werden. Sie können über Ihre Bewertungsskripts auf diese Umgebungsvariablen zugreifen.
environment Zeichenfolge oder Objekt Erforderlich. 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.

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

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.
instance_type Zeichenfolge Erforderlich. Die VM-Größe, die für die Bereitstellung verwendet werden soll. Eine Liste der unterstützten Größen finden Sie unter SKU-Liste für verwaltete Onlineendpunkte.
instance_count integer Erforderlich. Die Anzahl der Instanzen, die für die Bereitstellung verwendet werden sollen. Geben Sie den Wert basierend auf der erwarteten Workload an. Für die Hochverfügbarkeit empfiehlt Microsoft, den Wert mindestens auf 3 festzulegen.

instance_count kann nach der Erstellung der Bereitstellung mit dem Befehl az ml online-deployment update aktualisiert werden.

Wir reservieren zusätzliche 20 % für die Durchführung von Upgrades. Weitere Informationen finden Sie unter Kontingentzuweisung für virtuelle Computer für die Bereitstellung.
app_insights_enabled boolean Gibt an, ob die Integration mit der Azure Application Insights-Instanz, die Ihrem Arbeitsbereich zugeordnet ist, aktiviert werden soll. false
scale_settings Objekt (object) Die Skalierungseinstellungen für die Bereitstellung. Derzeit wird nur der Skalierungstyp default unterstützt, sodass Sie diese Eigenschaft nicht angeben müssen.

Mit diesem default-Skalierungstyp können Sie entweder die Anzahl der Instanzen nach der Erstellung der Bereitstellung manuell hoch- und herunterskalieren, indem Sie die instance_count-Eigenschaft aktualisieren, oder eine -Richtlinie für die automatische Skalierung erstellen.
scale_settings.type Zeichenfolge Der Skalierungstyp. default default
data_collector Objekt (object) Einstellungen für die Datensammlung bei der Bereitstellung. Die konfigurierbaren Eigenschaften finden Sie unter DataCollector.
request_settings Objekt (object) Einstellungen für die Bewertungsanforderung für die Bereitstellung. Informationen zu den konfigurierbaren Eigenschaften finden Sie unter RequestSettings.
liveness_probe Objekt (object) Livetesteinstellungen zum regelmäßigen Überwachen der Integrität des Containers. Informationen zu den konfigurierbaren Eigenschaften finden Sie unter ProbeSettings.
readiness_probe Objekt (object) Bereitschaftstesteinstellungen zum Überprüfen, ob der Container für die Bereitstellung von Datenverkehr bereit ist. Informationen zu den konfigurierbaren Eigenschaften finden Sie unter ProbeSettings.
egress_public_network_access Zeichenfolge Hinweis: Dieser Schlüssel gilt, wenn Sie die Legacy-Methode für die Netzwerkisolation verwenden, um die ausgehende Kommunikation für eine Bereitstellung zu schützen. Es wird dringend empfohlen, die ausgehende Kommunikation für Bereitstellungen stattdessen mithilfe eines verwalteten Arbeitsbereichs-VNets zu schützen.

Dieses Flag schützt die Bereitstellung, indem die Kommunikation zwischen der Bereitstellung und den von ihr verwendeten Azure-Ressourcen eingeschränkt wird. Legen Sie es auf disabled fest, um sicherzustellen, dass der Download von Modell, Code und Images, die Sie für Ihre Bereitstellung benötigen, über einen privaten Endpunkt abgesichert ist. Dieses Flag gilt nur für verwaltete Onlineendpunkte.
enabled, disabled enabled

RequestSettings

Schlüssel type BESCHREIBUNG Standardwert
request_timeout_ms integer Das Bewertungstimeout in Millisekunden Beachten Sie, dass der zulässige Maximalwert 180000 Millisekunden beträgt. Weitere Informationen finden Sie unter Grenzwerte für Onlineendpunkte . 5000
max_concurrent_requests_per_instance integer Die maximale Anzahl gleichzeitiger Anforderungen pro Instanz, die für die Bereitstellung zulässig sind.

Hinweis: Wenn Sie den Azure Machine Learning-Rückschlussserver oder Azure Machine Learning-Rückschlussimages verwenden, muss Ihr Modell für die Verarbeitung gleichzeitiger Anforderungen konfiguriert werden. Übergeben Sie dazu WORKER_COUNT: <int> als Umgebungsvariable. Weitere Informationen zu WORKER_COUNT finden Sie unter Serverparameter.

Hinweis: Legen Sie die Anzahl der Anforderungen fest, die Ihr Modell gleichzeitig auf einem einzelnen Knoten verarbeiten kann. Wenn Sie diesen Wert höher festlegen als die tatsächliche Parallelität Ihres Modells, kann dies zu höheren Wartezeiten führen. Das Festlegen dieses Werts zu niedrig kann zu unter genutzten Knoten führen. Das Festlegen zu niedrig kann auch dazu führen, dass Anforderungen mit einem 429 HTTP-Statuscode abgelehnt werden, da das System sich dafür entscheiden wird, schnell fehlschlagen zu können. Weitere Informationen finden Sie unter Problembehandlung für Onlineendpunkte: HTTP-Statuscodes.
1
max_queue_wait_ms integer (Veraltet) Die maximale Zeit in Millisekunden bleibt eine Anforderung in der Warteschlange. (Erhöhen Sie jetzt, request_timeout_ms um netzwerk-/warteschlangenverzögerte Verzögerungen zu berücksichtigen) 500

ProbeSettings

Schlüssel type BESCHREIBUNG Standardwert
initial_delay integer Die Anzahl der Sekunden, die nach dem Start des Containers vergehen, bevor der Test initiiert wird. Der Mindestwert ist 1. 10
period integer Gibt an, wie häufig (in Sekunden) ein Test durchgeführt werden soll. 10
timeout integer Die Anzahl von Sekunden, nach denen der Timeout für den Test auftritt. Der Mindestwert ist 1. 2
success_threshold integer Die Anzahl der Erfolge, die mindestens aufeinander folgen müssen, damit ein Test nach einem Fehler wieder als erfolgreich betrachtet wird. Der Mindestwert für den Bereitschaftstest ist 1. Der Wert für den Livetest ist als 1 festgelegt. 1
failure_threshold integer Wenn ein Test fehlschlägt, versucht das System den Vorgang failure_threshold Mal, bevor es aufgibt. Wenn Sie im Falle eines Livetests aufgeben, bedeutet dies, dass der Container neu gestartet wird. Im Falle eines Bereitschaftstests wird der Container als nicht bereit markiert. Der Mindestwert ist 1. 30

DataCollector

Schlüssel type BESCHREIBUNG Standardwert
sampling_rate float Der als Dezimalrate dargestellte Prozentsatz zu sammelnder Daten. Beispielsweise steht der Wert 1,0 für das Sammeln von 100 % der Daten. 1.0
rolling_rate Zeichenfolge Die Rate zum Partitionieren der Daten im Speicher. Folgende Werte sind möglich: Minute, Stunde, Tag, Monat, Jahr. Hour
collections Objekt (object) Gruppe einzelner Sammlungsnamen (collection_name) und ihrer entsprechenden Einstellungen für diese Bereitstellung.
collections.<collection_name> Objekt (object) Logische Gruppierung der zu sammelnden Rückschlussdaten (z. B. model_inputs). Die beiden reservierten Namen request und response entsprechen der Nutzdatensammlung der HTTP-Anforderung bzw. der HTTP-Antwort. Alle anderen Namen sind willkürlich und benutzerseitig definierbar.

Hinweis: Jeder Sammlungsname (collection_name) muss dem Namen des Collector-Objekts entsprechen, das in der Bereitstellung score.py verwendet wird, um die Rückschlussdaten für die Produktion zu sammeln. Weitere Informationen zur Sammlung von Nutzdaten und zur Datensammlung mit dem bereitgestellten Python SDK finden Sie unter Sammeln von Daten von Modellen in der Produktion.
collections.<collection_name>.enabled boolean Gibt an, ob die Datensammlung für den angegebenen Sammlungsnamen (collection_name) aktiviert werden soll. 'False''
collections.<collection_name>.data.name Zeichenfolge Der Name der Datenressource, die mit den gesammelten Daten registriert werden soll. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path Zeichenfolge Der vollständige Azure Machine Learning-Datenspeicherpfad, in dem die gesammelten Daten als Datenobjekt registriert werden sollen. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version integer Die Version der Datenressource, die mit den gesammelten Daten im Blobspeicher registriert werden soll. 1

Bemerkungen

Die az ml online-deployment-Befehle können für die Verwaltung von verwalteten Azure Machine Learning-Onlinebereitstellungen verwendet werden.

Beispiele

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

YAML: Grundlagen

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
endpoint_name: my-endpoint
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score.py
environment: 
  conda_file: ../../model-1/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: green
endpoint_name: my-endpoint
model:
  path: ../../model-2/model/
code_configuration:
  code: ../../model-2/onlinescoring/
  scoring_script: score.py
environment:
  conda_file: ../../model-2/environment/conda.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1

YAML: Systemseitig zugewiesene Identität

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment:
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"

YAML: Benutzerseitig zugewiesene Identität

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json
name: blue
model:
  path: ../../model-1/model/
code_configuration:
  code: ../../model-1/onlinescoring/
  scoring_script: score_managedidentity.py
environment: 
  conda_file: ../../model-1/environment/conda-managedidentity.yaml
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest
instance_type: Standard_DS3_v2
instance_count: 1
environment_variables:
  STORAGE_ACCOUNT_NAME: "storage_place_holder"
  STORAGE_CONTAINER_NAME: "container_place_holder"
  FILE_NAME: "file_place_holder"
  UAI_CLIENT_ID: "uai_client_id_place_holder"

YAML: data_collector

$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint 
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
       model_inputs:
           enabled: 'True' 
       model_outputs:
           enabled: 'True'
$schema: http://azureml/sdk-2-0/OnlineDeployment.json

endpoint_name: my_endpoint
name: blue 
model: azureml:my-model-m1:1 
environment: azureml:env-m1:1 
data_collector:
   collections:
     request: 
         enabled: 'True'
         data: 
           name: my_request_data_asset 
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/request 
           version: 1 
     response:
         enabled: 'True' 
         data: 
           name: my_response_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/response
           version: 1 
     model_inputs:
         enabled: 'True'
         data: 
           name: my_model_inputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_inputs
           version: 1 
     model_outputs:
         enabled: 'True'
         data: 
           name: my_model_outputs_data_asset
           path: azureml://datastores/workspaceblobstore/paths/modelDataCollector/my_endpoint/blue/model_outputs
           version: 1

Nächste Schritte