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.
SI APPLICA A:
Estensione ML dell'interfaccia della riga di comando di Azure v2 (corrente)
Python SDK azure-ai-ml v2 (corrente)
Dopo aver eseguito il training di modelli o pipeline di machine learning o aver trovato modelli adatti dal catalogo dei modelli, è necessario distribuirli nell'ambiente di produzione per consentire ad altri utenti di usarli per l'inferenza. L'inferenza è il processo di applicazione di nuovi dati di input a un modello o a una pipeline di Machine Learning per generare output. Anche se questi output sono in genere denominati "stime", l'inferenza può generare output per altre attività di Machine Learning, ad esempio la classificazione e il clustering. In Azure Machine Learning si esegue l'inferenza usando endpoints.
Endpoint e implementazioni
Un endpoint è un URL stabile e durevole che può essere usato per richiedere o richiamare un modello. Si forniscono gli input necessari all'endpoint e si ricevono gli output. Azure Machine Learning supporta distribuzioni standard, endpoint online ed endpoint batch. Un endpoint fornisce:
- URL stabile e durevole (ad esempio endpoint-name.region.inference.ml.azure.com)
- Un meccanismo di autenticazione
- Un meccanismo di autorizzazione
Una distribuzione è un set di risorse e calcolo necessari per ospitare il modello o il componente che esegue l'inferenza effettiva. Un endpoint contiene una distribuzione. Per gli endpoint online e batch, un endpoint può contenere diverse distribuzioni. Le implementazioni possono ospitare asset indipendenti e utilizzare risorse diverse in base alle esigenze di questi. Un endpoint ha anche un meccanismo di routing che può indirizzare le richieste a una delle relative distribuzioni.
Alcuni tipi di endpoint in Azure Machine Learning usano risorse dedicate nelle distribuzioni. Affinché questi endpoint vengano eseguiti, è necessario disporre della quota di calcolo nella sottoscrizione Azure. Tuttavia, alcuni modelli supportano una distribuzione serverless, che consente di non consumare alcuna quota dal tuo abbonamento. Per le distribuzioni serverless, il costo viene addebitato sulla base del consumo.
Intuizione
Si supponga di lavorare a un'applicazione che stima il tipo e il colore di un'auto da una foto. Per questa applicazione, un utente con determinate credenziali effettua una richiesta HTTP a un URL e fornisce un'immagine di un'automobile come parte della richiesta. In cambio, l'utente riceve una risposta che include il tipo e il colore dell'auto come valori stringa. In questo scenario, l'URL funge da endpoint.
Si supponga ora che un data scientist, Alice, stia implementando l'applicazione. Alice ha un'ampia esperienza tensorFlow e decide di implementare il modello usando un classificatore sequenziale Keras con un'architettura ResNet dell'hub TensorFlow. Dopo aver testato il modello, Alice è soddisfatta dei risultati e decide di usare il modello per risolvere il problema di stima dell'auto. Il modello è di grandi dimensioni e richiede 8 GB di memoria con 4 core da eseguire. In questo scenario, il modello e le risorse di Alice, ad esempio il codice e il calcolo, necessari per eseguire il modello costituiscono una distribuzione nell'endpoint.
Dopo alcuni mesi, l'organizzazione scopre che l'applicazione ha prestazioni scarse sulle immagini con condizioni di illuminazione scarse. Bob, un altro data scientist, ha competenze nelle tecniche di aumento dei dati che aiutano i modelli a creare affidabilità per questo fattore. Tuttavia, Bob preferisce usare PyTorch per implementare il modello ed eseguire il training di un nuovo modello con PyTorch. Bob vuole testare gradualmente questo modello nell'ambiente di produzione fino a quando l'organizzazione non è pronta per ritirare il modello precedente. Il nuovo modello offre prestazioni migliori anche quando viene distribuito nella GPU, quindi la distribuzione deve includere una GPU. In questo scenario, il modello e le risorse di Bob, ad esempio il codice e il calcolo, necessari per eseguire il modello costituiscono un'altra distribuzione nello stesso endpoint.
Endpoint: distribuzioni standard, online e batch
Azure Machine Learning supporta distribuzioni standard, online endpoint e batch.
Le distribuzioni standard e gli endpoint online sono progettati per l'inferenza in tempo reale. Quando si richiama l'endpoint, i risultati vengono restituiti nella risposta dell'endpoint. Le distribuzioni standard non consumano la quota dalla sottoscrizione; invece, vengono fatturate secondo la modalità standard.
Gli endpoint batch sono progettati per l'inferenza batch a esecuzione prolungata. Quando si richiama un endpoint batch, si genera un processo batch che esegue il lavoro effettivo.
Quando usare il deployment standard, gli endpoint online ed i batch
Distribuzione standard:
Usare le distribuzioni standard per utilizzare modelli di base di grandi dimensioni per l'inferenza in tempo reale fuori uso o per ottimizzare tali modelli. Non tutti i modelli sono disponibili per la distribuzione nelle distribuzioni standard. È consigliabile usare questa modalità di distribuzione quando:
- Il modello è un modello di base o una versione ottimizzata di un modello di base disponibile per le distribuzioni standard.
- È possibile trarre vantaggio da una distribuzione senza quota.
- Non è necessario personalizzare lo stack di inferenza usato per eseguire il modello.
Endpoint online:
Usare gli endpoint online per rendere operativi i modelli per l'inferenza in tempo reale nelle richieste sincrone a bassa latenza. È consigliabile usarli quando:
- Il modello è un modello di base o una versione ottimizzata di un modello di base, ma non è supportato nella distribuzione standard.
- Sono previsti requisiti di bassa latenza.
- Il modello può rispondere alla richiesta in un periodo di tempo relativamente breve.
- Gli input del modello rientrano nel payload HTTP della richiesta.
- È necessario scalare in termini di numero di richieste.
Endpoint batch:
Usare endpoint batch per operazionalizzare modelli o pipeline per inferenze asincrone a lunga esecuzione. È consigliabile usarli quando:
- Sono disponibili modelli o pipeline costosi che richiedono tempi di esecuzione più lunghi.
- Si vogliono rendere operative le pipeline di Machine Learning e riutilizzare i componenti.
- È necessario eseguire l'inferenza su grandi quantità di dati distribuiti in più file.
- Non sono previsti requisiti di bassa latenza.
- Gli input del modello vengono archiviati in un account di archiviazione o in un asset di dati Azure Machine Learning.
- È possibile sfruttare i vantaggi della parallelizzazione.
Confronto tra endpoint di distribuzione, online e batch standard
Tutte le distribuzioni standard, gli endpoint online e gli endpoint batch si basano sull'idea degli endpoint, pertanto è possibile passare facilmente da uno all'altro. Gli endpoint online e batch sono anche in grado di gestire più distribuzioni per lo stesso endpoint.
Endpointi
La tabella seguente mostra un riepilogo delle diverse funzionalità disponibili per le distribuzioni standard, gli endpoint online e gli endpoint batch a livello di endpoint.
| Funzionalità | Distribuzioni standard | Gli endpoint online | Endpoint batch |
|---|---|---|---|
| URL di invocazione stabile | Sì | Sì | Sì |
| Supporto per più distribuzioni | No | Sì | Sì |
| Routing della distribuzione | Nessuno | Suddivisione del traffico | Passare all'impostazione predefinita |
| Rispecchiare il traffico per una distribuzione sicura | No | Sì | No |
| Supporto di Swagger | Sì | Sì | No |
| Autenticazione | Chiave | Chiave e Microsoft Entra ID (anteprima) | Microsoft Entra ID |
| Supporto della rete privata (legacy) | No | Sì | Sì |
| Isolamento della rete gestita | Sì | Sì | Sì (vedere configurazione aggiuntiva necessaria) |
| Chiavi gestite dal cliente | NA | Sì | Sì |
| Base costi | Per endpoint, al minuto1 | Nessuno | Nessuno |
1Una piccola frazione è addebitata al minuto per la distribuzione standard. Vedere la sezione Distribuzioni per gli addebiti relativi al consumo, che vengono fatturati per token.
Distribuzioni
La tabella seguente mostra un riepilogo delle diverse funzionalità disponibili per le distribuzioni standard, gli endpoint online e gli endpoint batch a livello di distribuzione. Questi concetti si applicano a ogni distribuzione nell'endpoint (per gli endpoint online e batch) e si applicano alle distribuzioni standard (in cui il concetto di distribuzione è integrato nell'endpoint).
| Funzionalità | Distribuzioni standard | Gli endpoint online | Endpoint batch |
|---|---|---|---|
| Tipi di distribuzione | Modelli | Modelli | Modelli e componenti della pipeline |
| Distribuzione del modello MLflow | No, solo modelli specifici nel catalogo | Sì | Sì |
| Distribuzione di modelli personalizzati | No, solo modelli specifici nel catalogo | Sì, con lo script di assegnazione dei punteggi | Sì, con lo script di assegnazione dei punteggi |
| Server di inferenza 2 | API di inferenza del modello di intelligenza artificiale Azure | - Azure Machine Learning server di inferenza -Triton - Personalizzato (tramite BYOC) |
Inferenza batch |
| Risorsa di calcolo utilizzata | Nessuno (senza server) | Istanze o risorse granulari | Istanze del cluster |
| Tipo di calcolo | Nessuno (senza server) | Calcolo gestito e Kubernetes | Calcolo gestito e Kubernetes |
| Calcolo con priorità bassa | NA | No | Sì |
| Ridimensionamento delle risorse di calcolo su zero | Incorporato | No | Sì |
| Calcolo con scalabilità automatica3 | Incorporato | Sì, in base all'uso delle risorse | Sì, in base al numero di lavori |
| Gestione della sovraccapacità | Regolazione | Regolazione | Accodamento |
| Costo di base4 | Per token | Per distribuzione: istanze di calcolo in esecuzione | Per processo: le istanze di calcolo utilizzate nel processo (con un limite al numero massimo di istanze del cluster) |
| Test locali delle distribuzioni | No | Sì | No |
2Il server di inferenza fa riferimento alla tecnologia di gestione che accetta richieste, li elabora e crea risposte. Il server di inferenza determina anche il formato dell'input e degli output previsti.
3La scalabilità automatica è la possibilità di aumentare o ridurre dinamicamente le risorse allocate della distribuzione in base al carico. Le distribuzioni online e batch usano strategie diverse per la scalabilità automatica. Mentre le distribuzioni online aumentano e si riduceno in base all'utilizzo delle risorse (ad esempio CPU, memoria, richieste e così via), gli endpoint batch aumentano o si riduceno in base al numero di processi creati.
4 Sia le implementazioni online che quelle batch addebitano i costi in base alle risorse consumate. Nelle distribuzioni online viene effettuato il provisioning delle risorse in fase di distribuzione. Nelle distribuzioni batch le risorse non vengono utilizzate in fase di distribuzione, ma al momento dell'esecuzione del processo. Di conseguenza, non è previsto alcun costo associato alla distribuzione batch stessa. Analogamente, i processi in coda non consumano nemmeno le risorse.
Interfacce per sviluppatori
Gli endpoint sono progettati per aiutare le organizzazioni a rendere operativi i carichi di lavoro a livello di produzione in Azure Machine Learning. Gli endpoint sono risorse affidabili e scalabili e offrono le migliori funzionalità per implementare flussi di lavoro MLOps.
È possibile creare e gestire endpoint batch e online con diversi strumenti di sviluppo:
- AZURE CLI e PYTHON SDK
- AZURE RESOURCE MANAGER/API REST
- portale Web di studio di Azure Machine Learning
- portale di Azure (IT/Admin)
- Supporto per le pipeline CI/CD MLOps tramite l'interfaccia interfaccia della riga di comando di Azure e l'interfaccia REST/ARM