Condividi tramite


Schema YAML della distribuzione online gestita dell'interfaccia della riga di comando (v2)

SI APPLICA A: estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)

Lo schema JSON di origine è disponibile in https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json.

Nota

La sintassi YAML descritta in dettaglio in questo documento si basa sullo schema JSON per la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. Il funzionamento di questa sintassi è garantito solo con la versione più recente dell'estensione dell'interfaccia della riga di comando di Machine Learning v2. È possibile trovare gli schemi per le versioni di estensione precedenti in https://azuremlschemasprod.azureedge.net/.

Sintassi YAML

Chiave Type Descrizione Valori consentiti Valore predefinito
$schema string Schema YAML. Se si usa l'estensione Azure Machine Learning per Visual Studio Code per creare il file YAML, l'inclusione di $schema nella parte superiore del file consente di richiamare i completamenti dello schema e delle risorse.
name string Obbligatorio. Nome della distribuzione.

Le regole di denominazione sono definite qui.
description string Descrizione della distribuzione.
tags oggetto Dizionario dei tag per la distribuzione.
endpoint_name string Obbligatorio. Nome dell'endpoint in cui creare la distribuzione.
model stringa o oggetto Modello da usare per la distribuzione. Questo valore può essere un riferimento a un modello con controllo delle versioni esistente nell'area di lavoro o a una specifica del modello inline.

Per fare riferimento a un modello esistente, usare la sintassi azureml:<model-name>:<model-version>.

Per definire un modello inline, seguire lo schema del modello.

Come procedura consigliata per gli scenari di produzione, è necessario creare il modello separatamente e farvi riferimento qui.

Questo campo è facoltativo per gli scenari di distribuzione di contenitori personalizzati.
model_mount_path string Percorso di montaggio del modello in un contenitore personalizzato. Applicabile solo per scenari di distribuzione di contenitori personalizzati. Se il model campo viene specificato, viene montato in questo percorso nel contenitore.
code_configuration oggetto Configurazione per la logica del codice di assegnazione dei punteggi.

Questo campo è facoltativo per gli scenari di distribuzione di contenitori personalizzati.
code_configuration.code string Percorso locale della directory del codice sorgente per l'assegnazione del punteggio al modello.
code_configuration.scoring_script string Percorso relativo del file di assegnazione punteggi nella directory del codice sorgente.
environment_variables oggetto Dizionario delle coppie chiave-valore della variabile di ambiente da impostare nel contenitore di distribuzione. È possibile accedere a queste variabili di ambiente dagli script di assegnazione dei punteggi.
environment stringa o oggetto Obbligatorio. Ambiente da usare per la distribuzione. Questo valore può essere un riferimento a un ambiente con controllo delle versioni esistente nell'area di lavoro o a una specifica dell'ambiente inline.

Per fare riferimento a un ambiente esistente, usare la sintassi azureml:<environment-name>:<environment-version>.

Per definire un ambiente inline, seguire lo schema Ambiente.

Come procedura consigliata per gli scenari di produzione, è necessario creare l'ambiente separatamente e farvi riferimento qui.
instance_type string Obbligatorio. Dimensioni della macchina virtuale da usare per la distribuzione. Per l'elenco delle dimensioni supportate, vedere Elenco di SKU degli endpoint online gestiti.
instance_count integer Obbligatorio. Numero di istanze da usare per la distribuzione. Specificare il valore in base al carico di lavoro previsto. Per la disponibilità elevata, Microsoft consiglia di impostarla almeno 3su .

instance_count può essere aggiornato dopo la creazione della distribuzione usando il az ml online-deployment update comando .

Si riserva un ulteriore 20% per l'esecuzione degli aggiornamenti. Per altre informazioni, vedere Allocazione della quota di macchine virtuali per la distribuzione.
app_insights_enabled boolean Se abilitare l'integrazione con l'istanza di app Azure lication Insights associata all'area di lavoro. false
scale_settings oggetto Impostazioni di scalabilità per la distribuzione. Attualmente è supportato solo il default tipo di scala, quindi non è necessario specificare questa proprietà.

Con questo default tipo di scalabilità, è possibile aumentare e ridurre manualmente il numero di istanze dopo la creazione della distribuzione aggiornando la instance_count proprietà oppure creare un criterio di scalabilità automatica.
scale_settings.type string Tipo di scala. default default
data_collector oggetto Impostazioni di raccolta dati per la distribuzione. Per il set di proprietà configurabili, vedere DataCollector .
request_settings oggetto Impostazioni della richiesta di assegnazione dei punteggi per la distribuzione. Vedere RequestSettings per il set di proprietà configurabili.
liveness_probe oggetto Impostazioni del probe di attività per monitorare regolarmente l'integrità del contenitore. Vedere ProbeSettings per il set di proprietà configurabili.
readiness_probe oggetto Impostazioni probe di idoneità per la convalida se il contenitore è pronto per gestire il traffico. Vedere ProbeSettings per il set di proprietà configurabili.
egress_public_network_access string Nota: questa chiave è applicabile quando si usa il metodo di isolamento della rete legacy per proteggere le comunicazioni in uscita per una distribuzione. È consigliabile proteggere le comunicazioni in uscita per le distribuzioni usando invece una rete virtuale gestita dell'area di lavoro.

Questo flag protegge la distribuzione limitando la comunicazione tra la distribuzione e le risorse di Azure usate. Impostare su per disabled assicurarsi che il download del modello, del codice e delle immagini necessarie per la distribuzione sia protetto con un endpoint privato. Questo flag è applicabile solo per gli endpoint online gestiti.
enabled, disabled enabled

RequestSettings

Chiave Type Descrizione Default value
request_timeout_ms integer Timeout di assegnazione dei punteggi in millisecondi. Si noti che il valore massimo consentito è 180000 in millisecondi. Per altre informazioni, vedere Limiti per gli endpoint online. 5000
max_concurrent_requests_per_instance integer Numero massimo di richieste simultanee consentite per ogni istanza per la distribuzione.

Nota: se si usa Azure Machine Learning Inference Server o Azure Machine Learning Inference Images, il modello deve essere configurato per gestire le richieste simultanee. A tale scopo, passare WORKER_COUNT: <int> come variabile di ambiente. Per altre informazioni su WORKER_COUNT, vedere Parametri del server di inferenza di Azure Machine Learning

Nota: impostare sul numero di richieste che il modello può elaborare contemporaneamente in un singolo nodo. Un'impostazione di questo valore superiore alla concorrenza effettiva del modello può causare latenze più elevate, L'impostazione di questo valore troppo basso potrebbe portare a nodi sottoutilizzati. L'impostazione di un valore troppo basso potrebbe comportare anche il rifiuto delle richieste con un codice di stato HTTP 429, perché il sistema opterà per il fail fast. Per altre informazioni, vedere Risoluzione dei problemi relativi agli endpoint online: codici di stato HTTP.
1
max_queue_wait_ms integer (Deprecato) La quantità massima di tempo in millisecondi per cui una richiesta rimarrà nella coda. (Ora aumentare request_timeout_ms per tenere conto di eventuali ritardi di rete/coda) 500

ProbeSettings

Chiave Type Descrizione Default value
initial_delay integer Numero di secondi dopo l'avvio del contenitore prima dell'avvio del probe. Il valore minimo è 1. 10
period integer Frequenza (in secondi) per eseguire il probe. 10
timeout integer Numero di secondi dopo il quale si verifica il timeout del probe. Il valore minimo è 1. 2
success_threshold integer I successi consecutivi minimi per il probe devono essere considerati riusciti dopo aver avuto esito negativo. Il valore minimo è 1 relativo al probe di idoneità. Il valore del probe di attività è fisso come 1. 1
failure_threshold integer Quando un probe non riesce, il sistema proverà i failure_threshold tempi prima di rinunciare. Rinunciare nel caso di un probe di attività significa che il contenitore verrà riavviato. Nel caso di un probe di idoneità, il contenitore verrà contrassegnato come non letto. Il valore minimo è 1. 30

DataCollector

Chiave Type Descrizione Default value
sampling_rate float Percentuale, rappresentata come velocità decimale, di dati da raccogliere. Ad esempio, un valore pari a 1,0 rappresenta la raccolta del 100% dei dati. 1.0
rolling_rate string Velocità di partizionamento dei dati nell'archiviazione. Il valore può essere: Minute, Hour, Day, Month, Year. Hour
collections oggetto Set di singoli collection_namee le rispettive impostazioni per questa distribuzione.
collections.<collection_name> oggetto Raggruppamento logico dei dati di inferenza di produzione da raccogliere (ad esempio: model_inputs). Esistono due nomi riservati: request e response, che corrispondono rispettivamente alla raccolta di dati del payload della richiesta HTTP e della risposta. Tutti gli altri nomi sono arbitrari e definibili dall'utente.

Nota: ognuno collection_name deve corrispondere al nome dell'oggetto Collector usato nella distribuzione score.py per raccogliere i dati di inferenza di produzione. Per altre informazioni sulla raccolta e la raccolta di dati del payload con Python SDK fornito, vedere Raccogliere dati dai modelli nell'ambiente di produzione.
collections.<collection_name>.enabled boolean Indica se abilitare la raccolta dati per l'oggetto specificato collection_name. 'False''
collections.<collection_name>.data.name string Nome dell'asset di dati da registrare con i dati raccolti. <endpoint>-<deployment>-<collection_name>
collections.<collection_name>.data.path string Percorso completo dell'archivio dati di Azure Machine Learning in cui i dati raccolti devono essere registrati come asset di dati. azureml://datastores/workspaceblobstore/paths/modelDataCollector/<endpoint_name>/<deployment_name>/<collection_name>
collections.<collection_name>.data.version integer Versione dell'asset di dati da registrare con i dati raccolti nell'archivio BLOB. 1

Osservazioni:

I az ml online-deployment comandi possono essere usati per gestire le distribuzioni online gestite di Azure Machine Learning.

Esempi

Gli esempi sono disponibili nel repository GitHub di esempi. Di seguito sono riportati alcuni esempi.

YAML: di base

$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: identità assegnata dal sistema

$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: identità assegnata dall'utente

$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

Passaggi successivi