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.
Importante
Alcuni dei comandi di Azure CLI in questo articolo usano l'estensione azure-cli-ml o v1 per Azure Machine Learning. Il supporto per l'interfaccia della riga di comando v1 è terminato il 30 settembre 2025. Microsoft non fornirà più supporto tecnico o aggiornamenti per questo servizio. I flussi di lavoro esistenti che usano l'interfaccia della riga di comando v1 continueranno a funzionare dopo la data di fine del supporto. Tuttavia, potrebbero essere esposti a rischi per la sicurezza o a modifiche di rilievo nel caso di cambiamenti dell'architettura del prodotto.
È consigliabile passare all'estensione ml, o v2, il prima possibile. Per altre informazioni sull'estensione v2, vedere Azure Machine Learning estensione dell'interfaccia della riga di comando e Python SDK v2.
Importante
Questo articolo fornisce informazioni sull'uso di Azure Machine Learning SDK v1. SDK v1 è deprecato a partire dal 31 marzo 2025. Il supporto per questo terminerà il 30 giugno 2026. È possibile installare e usare l'SDK v1 fino a tale data. I flussi di lavoro esistenti che usano SDK v1 continueranno a funzionare dopo la data di fine del supporto. Tuttavia, potrebbero essere esposti a rischi per la sicurezza o a modifiche di rilievo nel caso di cambiamenti dell'architettura del prodotto.
È consigliabile passare all'SDK v2 prima del 30 giugno 2026. Per altre informazioni sull'SDK v2, vedere Cosa è Azure Machine Learning CLI and Python SDK v2? e il riferimento dell'SDK v2.
Importante
Questo articolo illustra come usare interfaccia della riga di comando e SDK v1 per distribuire un modello. Per l'approccio consigliato per v2, vedere Distribuire e assegnare un punteggio a un modello di Machine Learning usando un endpoint online.
Informazioni su come usare Azure Machine Learning per distribuire un modello come servizio Web in Azure Container Instances (ACI). Usa Azure Container Instances se:
- si preferisce non gestire il proprio cluster Kubernetes
- sono in grado di accettare la presenza di una sola replica del servizio, che potrebbe influire sulla disponibilità operativa
Per informazioni sulla disponibilità di quote e aree per ACI, vedere l'articolo Quote e disponibilità dell'area per Istanze di Azure Container.
Importante
Eseguire il debug in locale prima della distribuzione nel servizio Web. Per altre informazioni, vedere Debug locale.
È anche possibile fare riferimento a Azure Machine Learning - Deploy in Notebook locale.
Prerequisiti
Un'area di lavoro Azure Machine Learning. Per altre informazioni, vedere Creare un'area di lavoro Azure Machine Learning.
Un modello di Machine Learning registrato nell'area di lavoro. Se non si ha un modello registrato, vedere Come e dove distribuire i modelli.
Estensione Azure CLI (v1) per il servizio di Machine Learning, Azure Machine Learning Python SDK o Estensione di Visual Studio Code per Azure Machine Learning.
I frammenti di codice Python in questo articolo presuppongono che siano impostate le variabili seguenti:
-
ws- Impostare l'area di lavoro. -
model- Impostare il modello registrato. -
inference_config- Impostare la configurazione dell'inferenza per il modello.
Per altre informazioni sull'impostazione di queste variabili, vedere Come e dove distribuire i modelli.
-
I frammenti di CLI in questo articolo presuppongono che abbiate creato un
inferenceconfig.jsonfile. Per altre informazioni sulla creazione di questo file, vedere Come e dove distribuire i modelli.
Limitazioni
Nota
- La distribuzione di Azure Container Instances in una rete virtuale non è supportata. Per l'isolamento della rete, considerare invece l'uso di endpoint online gestiti.
- Per garantire un supporto efficace, è necessario fornire i log necessari per i contenitori ACI. Senza questi log, il supporto tecnico non può essere garantito. Usare gli strumenti di Log Analytics specificando
enable_app_insights=Truenella configurazione di distribuzione per gestire e analizzare in modo efficiente i log dei contenitori ACI.
Distribuire in ACI
Per distribuire un modello in Azure Container Instances, creare una configurazione di deployment che descrive le risorse di calcolo necessarie, ad esempio il numero di core e memoria. È necessaria anche una configurazione di inferenza che descriva l'ambiente necessario per ospitare il modello e il servizio Web. Per altre informazioni sulla creazione della configurazione dell'inferenza, vedere Come e dove distribuire i modelli.
Nota
- ACI è adatto solo per modelli piccoli con dimensioni minori di 1 GB.
- Utilizza AKS a nodo singolo per lo sviluppo e i test di modelli più grandi.
- È possibile distribuire fino a 1.000 modelli per distribuzione (per contenitore).
Uso dell'SDK
SI APPLICA A:
Azure Machine Learning SDK v1 per Python
from azureml.core.webservice import AciWebservice, Webservice
from azureml.core.model import Model
deployment_config = AciWebservice.deploy_configuration(cpu_cores = 1, memory_gb = 1)
service = Model.deploy(ws, "aciservice", [model], inference_config, deployment_config)
service.wait_for_deployment(show_output = True)
print(service.state)
Per altre informazioni sulle classi, i metodi e i parametri usati in questo esempio, vedere gli articoli di riferimento seguenti:
Uso del Azure CLI
APPLICABILE A:
Azure CLI ml extension v1
Per eseguire la distribuzione tramite l'interfaccia della riga di comando, eseguire il comando seguente. Sostituire mymodel:1 con il nome e la versione del modello registrato. Sostituire myservice con il nome per assegnare questo servizio:
az ml model deploy -n myservice -m mymodel:1 --ic inferenceconfig.json --dc deploymentconfig.json
Le voci nel file deploymentconfig.json vengono mappate ai parametri per AciWebservice.deploy_configuration. La tabella seguente descrive il mapping tra le entità nel file JSON e i parametri per il metodo :
| Entità JSON | Parametro per il metodo | Descrizione |
|---|---|---|
computeType |
ND | La destinazione di calcolo. Per Istanze di Azure Container, il valore deve essere ACI. |
containerResourceRequirements |
ND | Contenitore per le entità CPU e memoria. |
cpu |
cpu_cores |
Il numero di core di CPU da allocare. Impostazione predefinita: 0.1 |
memoryInGB |
memory_gb |
La quantità di memoria (in GB) da allocare per questo servizio Web. Impostazione predefinita: 0.5 |
location |
location |
Area Azure in cui distribuire il servizio Web. Se non si specifica questo valore, viene usata la posizione dell'area di lavoro. Per altri dettagli sulle aree disponibili, vedere Aree ACI. |
authEnabled |
auth_enabled |
Indica se abilitare l'autenticazione per questo servizio Web. L'impostazione predefinita è False |
sslEnabled |
ssl_enabled |
Indica se abilitare TLS per questo servizio Web. L'impostazione predefinita è False. |
appInsightsEnabled |
enable_app_insights |
Indica se abilitare AppInsights per questo servizio Web. L'impostazione predefinita è False |
sslCertificate |
ssl_cert_pem_file |
Il file cert necessario se TLS è abilitato |
sslKey |
ssl_key_pem_file |
Il file della chiave necessario se TLS è abilitato |
cname |
ssl_cname |
Il CNAME se TLS è abilitato |
dnsNameLabel |
dns_name_label |
Etichetta del nome DNS per l'endpoint di assegnazione dei punteggi. Se non si specifica questo valore, viene generata un'etichetta del nome DNS univoco per l'endpoint di assegnazione dei punteggi. |
Il codice JSON seguente è un esempio di configurazione della distribuzione da usare con l'interfaccia della riga di comando:
{
"computeType": "aci",
"containerResourceRequirements":
{
"cpu": 0.5,
"memoryInGB": 1.0
},
"authEnabled": true,
"sslEnabled": false,
"appInsightsEnabled": false
}
Per altre informazioni, vedere il riferimento alla distribuzione modello az ml.
Uso di VS Code
Vedere come gestire le risorse in VS Code.
Importante
Non è necessario creare un contenitore ACI da testare in anticipo. La soluzione crea contenitori ACI in base alle esigenze.
Importante
La soluzione aggiunge un ID dell'area di lavoro crittografato a tutte le risorse ACI sottostanti che crea. Tutti i nomi ACI della stessa area di lavoro hanno lo stesso suffisso. Il nome del servizio di Azure Machine Learning rimane identico a quello fornito dal cliente service_name. Le API SDK Azure Machine Learning che gli utenti vedono non necessitano di alcuna modifica. La soluzione non offre alcuna garanzia sui nomi delle risorse sottostanti che crea.
Passaggi successivi
- Come distribuire un modello usando un'immagine Docker personalizzata
- Risoluzione dei problemi di distribuzione
- Aggiornare il servizio Web
- Usare TLS per proteggere un servizio Web tramite Azure Machine Learning
- Usare un modello di Machine Learning distribuito come servizio Web
- Monitora i modelli di Azure Machine Learning con Application Insights