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_name e 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.