Condividi tramite


Schema YAML per la distribuzione online di Kubernetes con abilitazione dell'interfaccia della riga di comando (v2) di Azure Arc

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/kubernetesOnlineDeployment.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 Tipo di istanza usato per posizionare il carico di lavoro di inferenza. Se omesso, il carico di lavoro di inferenza verrà inserito nel tipo di istanza predefinito del cluster Kubernetes specificato nel campo dell'endpoint compute . Se specificato, il carico di lavoro di inferenza verrà inserito nel tipo di istanza selezionato.

Il set di tipi di istanza per un cluster Kubernetes viene configurato tramite la definizione di risorsa personalizzata del cluster Kubernetes, di conseguenza non fanno parte dello schema YAML di Azure Machine Learning per collegare il calcolo Kubernetes. Per altre informazioni, vedere Creare e selezionare Tipi di istanza kubernetes.
instance_count integer Numero di istanze da usare per la distribuzione. Specificare il valore in base al carico di lavoro previsto. Questo campo è obbligatorio solo se si usa il default tipo di scala (scale_settings.type: default).

instance_count può essere aggiornato dopo la creazione della distribuzione usando il az ml online-deployment update comando .
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. I due tipi di impostazioni di scalabilità supportate sono il default tipo di scala e il target_utilization tipo di scala.

Con il default tipo di scalabilità (scale_settings.type: default), è possibile ridimensionare manualmente il conteggio delle istanze dopo la creazione della distribuzione aggiornando la instance_count proprietà .

Per configurare il target_utilization tipo di scala (scale_settings.type: target_utilization), vedere TargetUtilizationScaleSettings per il set di proprietà configurabili .
scale_settings.type string Tipo di scala. default, target_utilization target_utilization
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.
resources oggetto Requisiti delle risorse del contenitore.
resources.requests oggetto Richieste di risorse per il contenitore. Per il set di proprietà configurabili, vedere ContainerResourceRequests .
resources.limits oggetto Limiti delle risorse per il contenitore. Per il set di proprietà configurabili, vedere ContainerResourceLimits .

RequestSettings

Chiave Type Descrizione Default value
request_timeout_ms integer Timeout di assegnazione dei punteggi in millisecondi. 5000
max_concurrent_requests_per_instance integer Numero massimo di richieste simultanee consentite per ogni istanza per la distribuzione.

Non modificare questa impostazione dal valore predefinito a meno che non venga richiesto dal supporto tecnico Microsoft o da un membro del team di Azure Machine Learning.
1
max_queue_wait_ms integer La quantità massima di tempo in millisecondi per cui una richiesta rimarrà nella coda. 500

ProbeSettings

Chiave Type Descrizione Default value
period integer Frequenza (in secondi) per eseguire il probe. 10
initial_delay integer Numero di secondi dopo l'avvio del contenitore prima dell'avvio del probe. Il valore minimo è 1. 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. 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

TargetUtilizationScaleSettings

Chiave Type Descrizione Default value
type const Tipo di scala target_utilization
min_instances integer Numero minimo di istanze da usare. 1
max_instances integer Numero massimo di istanze da ridimensionare. 1
target_utilization_percentage integer Utilizzo della CPU di destinazione per il ridimensionamento automatico. 70
polling_interval integer Frequenza con cui il ridimensionamento automatico deve tentare di ridimensionare la distribuzione, in secondi. 1

ContainerResourceRequests

Chiave Type Descrizione
cpu stringa Numero di core CPU richiesti per il contenitore.
memory string Dimensioni della memoria richieste per il contenitore
nvidia.com/gpu string Numero di schede GPU Nvidia richieste per il contenitore

ContainerResourceLimits

Chiave Type Descrizione
cpu stringa Limite per il numero di core CPU per il contenitore.
memory string Limite per le dimensioni della memoria per il contenitore.
nvidia.com/gpu string Limite per il numero di schede GPU Nvidia per il contenitore

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 di Azure Machine Learning Kubernetes.

Esempi

Gli esempi sono disponibili nel repository GitHub di esempi.

Passaggi successivi