YAML-schema för hanterad onlinedistribution CLI (v2)
GÄLLER FÖR: Azure CLI ml-tillägget v2 (aktuellt)
JSON-källschemat finns på https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json.
Kommentar
YAML-syntaxen som beskrivs i det här dokumentet baseras på JSON-schemat för den senaste versionen av ML CLI v2-tillägget. Den här syntaxen är garanterad att endast fungera med den senaste versionen av ML CLI v2-tillägget. Du hittar scheman för äldre tilläggsversioner på https://azuremlschemasprod.azureedge.net/.
YAML-syntax
Nyckel | Typ | Beskrivning | Tillåtna värden | Standardvärde |
---|---|---|---|---|
$schema |
sträng | YAML-schemat. Om du använder Azure Machine Learning VS Code-tillägget för att skapa YAML-filen, inklusive $schema längst upp i filen, kan du anropa schema- och resursavslutningar. |
||
name |
sträng | Obligatoriskt. Namn på distributionen. Namngivningsregler definieras här. |
||
description |
sträng | Beskrivning av distributionen. | ||
tags |
objekt | Ordlista med taggar för distributionen. | ||
endpoint_name |
sträng | Obligatoriskt. Namnet på slutpunkten som distributionen ska skapas under. | ||
model |
sträng eller objekt | Den modell som ska användas för distributionen. Det här värdet kan antingen vara en referens till en befintlig version av modellen på arbetsytan eller en infogad modellspecifikation. Om du vill referera till en befintlig modell använder du syntaxen azureml:<model-name>:<model-version> . Om du vill definiera en modell infogad följer du modellschemat. Som bästa praxis för produktionsscenarier bör du skapa modellen separat och referera till den här. Det här fältet är valfritt för scenarier för anpassad containerdistribution . |
||
model_mount_path |
sträng | Sökvägen för att montera modellen i en anpassad container. Gäller endast för scenarier för distribution av anpassade containrar. Om fältet model anges monteras det på den här sökvägen i containern. |
||
code_configuration |
objekt | Konfiguration för bedömningskodlogik. Det här fältet är valfritt för scenarier för anpassad containerdistribution . |
||
code_configuration.code |
sträng | Lokal sökväg till källkodskatalogen för bedömning av modellen. | ||
code_configuration.scoring_script |
sträng | Relativ sökväg till bedömningsfilen i källkodskatalogen. | ||
environment_variables |
objekt | Ordlista över nyckel/värde-par för miljövariabler som ska anges i distributionscontainern. Du kan komma åt dessa miljövariabler från dina bedömningsskript. | ||
environment |
sträng eller objekt | Obligatoriskt. Den miljö som ska användas för distributionen. Det här värdet kan antingen vara en referens till en befintlig version av miljön på arbetsytan eller en infogad miljöspecifikation. Om du vill referera till en befintlig miljö använder du syntaxen azureml:<environment-name>:<environment-version> . Om du vill definiera en infogad miljö följer du miljöschemat. Som bästa praxis för produktionsscenarier bör du skapa miljön separat och referera till den här. |
||
instance_type |
sträng | Obligatoriskt. Den VM-storlek som ska användas för distributionen. Listan över storlekar som stöds finns i SKU-listan för hanterade onlineslutpunkter. | ||
instance_count |
integer | Obligatoriskt. Antalet instanser som ska användas för distributionen. Ange värdet baserat på den arbetsbelastning du förväntar dig. För hög tillgänglighet rekommenderar Microsoft att du ställer in den på minst 3 . instance_count kan uppdateras när distributionen har skapats med hjälp av az ml online-deployment update kommandot . Vi reserverar ytterligare 20 % för att utföra uppgraderingar. Mer information finns i kvotallokering för virtuella datorer för distribution. |
||
app_insights_enabled |
boolean | Om du vill aktivera integrering med Azure Application Insights-instansen som är associerad med din arbetsyta. | false |
|
scale_settings |
objekt | Skalningsinställningarna för distributionen. För närvarande stöds endast skalningstypen default , så du behöver inte ange den här egenskapen. Med den här default skalningstypen kan du antingen skala antalet instanser manuellt upp och ned efter att distributionen instance_count har skapats genom att uppdatera egenskapen eller skapa en autoskalningsprincip. |
||
scale_settings.type |
sträng | Skalningstypen. | default |
default |
data_collector |
objekt | Inställningar för datainsamling för distributionen. Se DataCollector för uppsättningen konfigurerbara egenskaper. | ||
request_settings |
objekt | Bedömningsinställningar för begäran för distributionen. Se RequestSettings för uppsättningen konfigurerbara egenskaper. | ||
liveness_probe |
objekt | Inställningar för livenessavsökning för att regelbundet övervaka containerns hälsotillstånd. Se ProbeSettings för uppsättningen konfigurerbara egenskaper. | ||
readiness_probe |
objekt | Inställningar för beredskapsavsökning för validering om containern är redo att hantera trafik. Se ProbeSettings för uppsättningen konfigurerbara egenskaper. | ||
egress_public_network_access |
sträng | Obs! Den här nyckeln gäller när du använder den äldre metoden för nätverksisolering för att skydda utgående kommunikation för en distribution. Vi rekommenderar starkt att du skyddar utgående kommunikation för distributioner med hjälp av ett arbetsytehanterat virtuellt nätverk i stället. Den här flaggan skyddar distributionen genom att begränsa kommunikationen mellan distributionen och de Azure-resurser som används av den. Ange för att disabled säkerställa att nedladdningen av modellen, koden och avbildningarna som krävs av distributionen skyddas med en privat slutpunkt. Den här flaggan gäller endast för hanterade onlineslutpunkter. |
enabled , disabled |
enabled |
RequestSettings
Nyckel | Typ | Beskrivning | Standardvärde |
---|---|---|---|
request_timeout_ms |
integer | Tidsgränsen för bedömning i millisekunder. Observera att det högsta tillåtna värdet är 180000 millisekunder. Mer information finns i begränsningar för onlineslutpunkter . |
5000 |
max_concurrent_requests_per_instance |
integer | Det maximala antalet samtidiga begäranden per instans som tillåts för distributionen. Obs! Om du använder Azure Machine Learning Inference Server eller Azure Machine Learning Inference Images måste din modell konfigureras för att hantera samtidiga begäranden. Det gör du genom att skicka WORKER_COUNT: <int> som en miljövariabel. Mer information om WORKER_COUNT finns i Azure Machine Learning-slutsatsdragningsserverparametrar Obs! Ange till antalet begäranden som din modell kan bearbeta samtidigt på en enda nod. Om du anger det här värdet högre än modellens faktiska samtidighet kan det leda till längre svarstider. Om du anger det här värdet för lågt kan det leda till underutnyttjade noder. Om du ställer in för lågt kan det också leda till att begäranden avvisas med en HTTP-statuskod på 429, eftersom systemet väljer att misslyckas snabbt. Mer information finns i Felsöka onlineslutpunkter: HTTP-statuskoder. |
1 |
max_queue_wait_ms |
integer | (Inaktuell) Den maximala tiden i millisekunder som en begäran kommer att stanna i kön. (Öka nu request_timeout_ms till konto för eventuella nätverks-/köfördröjningar) |
500 |
ProbeSettings
Nyckel | Typ | Beskrivning | Standardvärde |
---|---|---|---|
initial_delay |
integer | Antalet sekunder efter att containern har startats innan avsökningen initieras. Minimivärdet är 1 . |
10 |
period |
integer | Hur ofta (i sekunder) avsökningen ska utföras. | 10 |
timeout |
integer | Antalet sekunder efter vilken avsökningen överskrider tidsgränsen. Minimivärdet är 1 . |
2 |
success_threshold |
integer | Minsta lyckade resultat i följd för att avsökningen ska anses vara lyckad efter att ha misslyckats. Minsta värde är 1 för beredskapsavsökning. Värdet för liveness-avsökningen har åtgärdats som 1 . |
1 |
failure_threshold |
integer | När en avsökning misslyckas försöker systemet gånger failure_threshold innan det ger upp. Om du ger upp vid en liveness-avsökning kommer containern att startas om. När det gäller en beredskapsavsökning markeras containern Som oläst. Minimivärdet är 1 . |
30 |
DataCollector
Nyckel | Typ | Beskrivning | Standardvärde |
---|---|---|---|
sampling_rate |
flyttal | Procentandelen, som representeras som ett decimaltal, för data som ska samlas in. Till exempel representerar värdet 1,0 att samla in 100 % av data. | 1.0 |
rolling_rate |
sträng | Hastigheten för partitionering av data i lagringen. Värdet kan vara: Minut, Timme, Dag, Månad, År. | Hour |
collections |
objekt | Uppsättning enskilda collection_name och deras respektive inställningar för den här distributionen. |
|
collections.<collection_name> |
objekt | Logisk gruppering av produktionsinferensdata att samla in (exempel: model_inputs ). Det finns två reserverade namn: request och response , som motsvarar http-begärande- respektive svarsnyttolastens datainsamling. Alla andra namn är godtyckliga och kan definieras av användaren. Obs! Var och collection_name en bör motsvara namnet på det Collector objekt som används i distributionen score.py för att samla in produktionsinferensdata. Mer information om insamling av nyttolastdata och datainsamling med den angivna Python-SDK: t finns i Samla in data från modeller i produktion. |
|
collections.<collection_name>.enabled |
boolean | Om du vill aktivera datainsamling för den angivna collection_name . |
'False'' |
collections.<collection_name>.data.name |
sträng | Namnet på den datatillgång som ska registreras med de insamlade data. | <endpoint>-<deployment>-<collection_name> |
collections.<collection_name>.data.path |
sträng | Den fullständiga Azure Machine Learning-datalagersökvägen där insamlade data ska registreras som en datatillgång. | azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name> |
collections.<collection_name>.data.version |
integer | Den version av datatillgången som ska registreras med insamlade data i Blob Storage. | 1 |
Kommentarer
Kommandona az ml online-deployment
kan användas för att hantera azure machine learning-hanterade onlinedistributioner.
Exempel
Exempel är tillgängliga i GitHub-exempellagringsplatsen. Flera visas nedan.
YAML: basic
$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: systemtilldelad identitet
$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: användartilldelad identitet
$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