CLI (v2) verwaltete Onlinebereitstellung: YAML-Schema
GILT FÜR Azure 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