Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un modello di distribuzione è un artefatto riutilizzabile a livello di registro che comprende l'infrastruttura e le impostazioni di runtime necessarie a un modello per gestire il traffico su un endpoint online gestito. Gli autori di modelli pubblicano un modello di distribuzione insieme al modello in modo che i consumer possano distribuire il modello in modo coerente senza apprendere tutti i dettagli dell'infrastruttura. In qualità di consumatore, effettuare la distribuzione del modello con un breve payload YAML o REST perché il template di distribuzione specifica già l'ambiente, le variabili di ambiente, i probe e altre impostazioni.
Note
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/.
Perché usare i modelli di distribuzione?
I modelli di distribuzione consentono di separare i problemi di creazione di modelli dall'utilizzo del modello:
- Riusabilità. Creare un modello di distribuzione una sola volta e riutilizzarlo in molti modelli nel Registro di sistema o in più versioni dello stesso modello.
- Barriere di protezione. Limitare i tipi di istanza che i consumer possono usare impostando
allowed_instance_typessul modello e pubblicare un set curato di modelli di distribuzione per i consumer impostandoallowed_deployment_templatessul modello. - Coerenza. Ogni utente che distribuisce il modello ottiene la stessa immagine dell'ambiente, la stessa porta di scoring, gli stessi probe e le stesse impostazioni delle richieste, riducendo così le differenze tra le distribuzioni.
- Ciclo di vita disaccoppiato. Aggiornare una versione di un modello di distribuzione senza modificare l'artefatto del modello, quindi puntare
default_deployment_templatedel modello alla nuova versione quando si vuole che i client adottino tale versione.
Concetti chiave
Un modello di distribuzione presenta le caratteristiche seguenti:
- Ambito registro. I modelli di distribuzione si trovano in un registro di Azure Machine Learning, non in un'area di lavoro. Puoi farvi riferimento tramite l'URI dell'asset del registro:
azureml://registries/<registry-name>/deploymenttemplates/<template-name>/versions/<version>. - Versionato. Ogni modello di distribuzione ha un nome e una versione. Gli utenti fanno riferimento a una versione specifica, quindi gli aggiornamenti al modello non modificano le distribuzioni in esecuzione finché gli utenti non eseguono una nuova distribuzione.
- Digitare
Managed. I modelli di distribuzione supportano attualmente ilManagedtipo, destinato agli endpoint online gestiti. - Associato a un ambiente di registro. Il campo
environmentin un modello di distribuzione deve fare riferimento a un ambiente con ambito registro. Gli ambienti con ambito dell'area di lavoro e le definizioni inline di ambiente non sono supportati.
Un modello che usa i modelli di distribuzione ha due campi correlati:
-
default_deployment_template— il modello di distribuzione che viene applicato quando un utente distribuisce il modello senza specificare una sovrascrittura. -
allowed_deployment_templates: un elenco facoltativo e curato di modelli di distribuzione che l'autore del modello consiglia agli utenti di usare come override.
Una distribuzione che fa riferimento a un modello con default_deployment_template può sovrascriverlo impostando properties."azureml.deploymentTemplateOverride" sull'URI dell'asset del registro del modello sostitutivo.
Flusso di lavoro in breve
Il flusso completo ha tre ruoli: il proprietario dell'ambiente, l'autore del modello e l'utilizzatore del modello. La stessa persona può svolgere tutti e tre i ruoli.
- Creare un ambiente. Il proprietario dell'ambiente crea un ambiente in un'area di lavoro e lo condivide in un registro.
- Creare un modello di distribuzione. L'autore del modello crea un modello di distribuzione nel registro che fa riferimento all'ambiente con ambito di registro e imposta proprietà dell'infrastruttura come
default_instance_type,allowed_instance_types, percorso di scoring e porta, variabili di ambiente e probe. - Registrare il modello. L'autore del modello registra il modello nel registro durante il caricamento dei pesi del modello e l'impostazione di
default_deployment_template(e facoltativamenteallowed_deployment_templates) sul modello. - Distribuire il modello. Il consumatore crea un endpoint online gestito in un'area di lavoro e crea una distribuzione che fa riferimento al modello del registro. La distribuzione usa il modello di distribuzione predefinito del modello o specifica un override presente nell'elenco di elementi consentiti del modello.
Per istruzioni dettagliate, vedere:
- Gestire i modelli con i modelli di distribuzione (autore del modello)
- Distribuire modelli che usano template di distribuzione (utilizzatore del modello)
Relazione con ambienti e modelli
I modelli di distribuzione si trovano tra ambienti e modelli nel Registro di sistema:
- Un ambiente descrive l'immagine del contenitore e le dipendenze di Python che eseguono il codice di scoring. È possibile fare riferimento a un ambiente con ambito registro da molti modelli di distribuzione.
- Un modello di distribuzione descrive come eseguire un modello in un endpoint online gestito facendo riferimento a un ambiente con ambito registro e impostazioni dell'infrastruttura.
- Un modello nel Registro di sistema può aggiungere un modello di distribuzione predefinito e, facoltativamente, limitare il set di sostituzioni consentite del modello di distribuzione. Modelli diversi possono riutilizzare lo stesso modello di distribuzione o fissare modelli di distribuzione diversi.
Modificabilità
I modelli di distribuzione e i modelli seguono regole di mutabilità diverse in modo che una versione del modello di distribuzione rimanga una destinazione stabile e riproducibile mentre una versione del modello può raccogliere le associazioni di infrastruttura aggiornate.
- La versione del modello di distribuzione non è modificabile. Dopo aver creato una versione di un modello di distribuzione, solo i campi
tagsedescriptiondi quella versione possono essere aggiornati direttamente. I campi che influiscono sul comportamento di runtime, ad esempioenvironment,environment_variablesdefault_instance_type,allowed_instance_typesrequest_settingsliveness_probe, ereadiness_probe, non sono modificabili. Per modificare uno di questi, creare una nuova versione del modello di distribuzione. Ciò garantisce che un utente che si vincola a una versione specifica del modello di distribuzione riceva sempre la stessa configurazione dell'infrastruttura. - La versione del modello è modificabile per i riferimenti al modello di distribuzione. In una versione di modello esistente, è possibile aggiornare
default_deployment_templateeallowed_deployment_templatesin modo che puntino a nuovi modelli di distribuzione o a nuove versioni di un modello di distribuzione esistente. Non è necessario creare una nuova versione del modello per implementare una nuova configurazione dell'infrastruttura; aggiornare invece la versione del modello di distribuzione e aggiornare i puntatori del modello, a meno che non si scelga di creare una nuova versione del modello.
Limitazioni e considerazioni
- I modelli di distribuzione sono in anteprima. Lo schema e il comportamento possono cambiare.
- I modelli di distribuzione supportano solo il
Managedtipo. Usarli con endpoint online gestiti, non con endpoint online di Kubernetes o endpoint batch. - Il campo
environmentdeve fare riferimento a un ambiente con ambito registro. Condividi gli ambienti dell'area di lavoro in un registro prima di farvi riferimento. - L'elenco
allowed_deployment_templatesdel modello è un'indicazione per l'autore, non una restrizione vincolante. Un autore di modelli lo usa per pubblicare un set curato di modelli di override convalidati, ma la piattaforma non blocca una distribuzione che esegue l'override di un modello all'esterno dell'elenco. - Un
instance_typespecificato in una distribuzione deve essere presente nell'elencoallowed_instance_typesdel modello di distribuzione, se tale elenco è impostato nel modello.