YAML-schema för hanterad onlinedistribution CLI (v2)

GÄLLER FÖR:Azure CLI ml extension v2 (aktuell)

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 Request Inställningar for the set of configurable properties (Begäran Inställningar 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 Avsökning Inställningar 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 Avsökning Inställningar 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

Begäran Inställningar

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_COUNTfinns 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

Avsökning Inställningar

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_nameoch 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

Nästa steg