Endpoint batch

Azure Machine Learning consente di implementare endpoint e distribuzioni batch per eseguire l'inferenza asincrona a esecuzione prolungata con modelli e pipeline di Machine Learning. Quando si esegue il training di un modello o di una pipeline di Machine Learning, è necessario distribuirlo in modo che altri utenti possano usarlo con nuovi dati di input per generare stime. Questo processo di generazione di previsioni con il modello o la pipeline è detto inferenza.

Gli endpoint batch ricevono puntatori ai dati ed eseguono processi in modo asincrono per elaborare i dati in parallelo nei cluster di calcolo. Gli endpoint batch archivia gli output in un archivio dati per un'ulteriore analisi. Usa gli endpoint batch 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, distribuite 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.

Distribuzioni batch

Una distribuzione è un set di risorse e calcoli necessari per implementare la funzionalità fornita dall'endpoint. Un endpoint può ospitare più distribuzioni, ognuna con la propria configurazione, separando l'interfaccia dell'endpoint dai dettagli dell'implementazione della distribuzione. Quando viene richiamato un endpoint batch, instrada automaticamente il client alla distribuzione predefinita. Questa distribuzione predefinita può essere configurata e modificata in qualsiasi momento.

Diagramma che mostra la relazione tra un endpoint batch e le relative distribuzioni.

Due tipi di distribuzioni sono possibili in Azure Machine Learning endpoint batch:

Distribuzione del modello

La distribuzione del modello consente l'operazionalizzazione dell'inferenza del modello su larga scala, consentendo di elaborare grandi quantità di dati in modo a bassa latenza e asincrona. Azure Machine Learning strumenta automaticamente la scalabilità tramite la parallelizzazione dei processi di inferenze su più nodi in un cluster di calcolo.

Utilizzare la distribuzione del modello quando:

  • Sono disponibili modelli costosi che richiedono tempi più lunghi per l'esecuzione dell'inferenza.
  • È necessario eseguire l'inferenza su grandi quantità di dati, distribuite in più file.
  • Non sono previsti requisiti di bassa latenza.
  • È possibile sfruttare i vantaggi della parallelizzazione.

Il vantaggio principale delle distribuzioni di modelli è che è possibile usare gli stessi asset distribuiti per l'inferenza in tempo reale agli endpoint online, ma ora è possibile eseguirli su larga scala in batch. Se il modello richiede semplici pre-elaborazione o post-elaborazione, è possibile creare uno script di assegnazione dei punteggi che esegue le trasformazioni dei dati necessarie.

Per creare una distribuzione del modello in un endpoint batch, è necessario specificare gli elementi seguenti:

  • Modello
  • Cluster di calcolo
  • Script di assegnazione dei punteggi (facoltativo per i modelli MLflow)
  • Ambiente (facoltativo per i modelli MLflow)

Distribuzione dei componenti della pipeline

La distribuzione dei componenti della pipeline consente l'operazionalizzazione di interi grafici di elaborazione (o pipeline) per eseguire l'inferenza batch in modo a bassa latenza e asincrona.

Usare la distribuzione dei componenti della pipeline quando:

  • È necessario rendere operativi i grafici di calcolo completi che possono essere scomposti in più passaggi.
  • È necessario riutilizzare i componenti dalle pipeline di training nella pipeline di inferenza.
  • Non sono previsti requisiti di bassa latenza.

Il vantaggio principale delle distribuzioni dei componenti della pipeline è la riutilizzabilità dei componenti già esistenti nella piattaforma e la capacità di rendere operative routine di inferenza complesse.

Per creare una distribuzione di componenti della pipeline in un endpoint batch, è necessario specificare gli elementi seguenti:

  • Componente della pipeline
  • Configurazione del cluster di calcolo

Gli endpoint batch consentono anche di creare distribuzioni di componenti della pipeline da un processo della pipeline esistente. In questo caso, Azure Machine Learning crea automaticamente un componente della pipeline fuori dal processo. Questo semplifica l'uso di queste tipologie di distribuzioni. Tuttavia, è consigliabile creare sempre componenti della pipeline in modo esplicito per semplificare la procedura MLOps.

Gestione costi

La chiamata di un endpoint batch attiva un processo di inferenza batch asincrona. Azure Machine Learning effettua automaticamente il provisioning delle risorse di calcolo all'avvio del processo e le dealloca automaticamente al termine del processo. In questo modo, si paga solo per il calcolo quando viene usato.

Suggerimento

Quando si distribuiscono i modelli, è possibile eseguire l'override delle impostazioni delle risorse di calcolo (ad esempio il numero di istanze) e le impostazioni avanzate (ad esempio le dimensioni mini batch, la soglia di errore e così via) per ogni singolo processo di inferenza batch. Sfruttando queste configurazioni specifiche, è possibile velocizzare l'esecuzione e ridurre i costi.

Gli endpoint batch possono essere eseguiti anche in macchine virtuali con priorità bassa. Gli endpoint batch possono eseguire automaticamente il ripristino dalle macchine virtuali deallocate e riprendere il lavoro da dove è stato lasciato durante la distribuzione dei modelli per l'inferenza. Per altre informazioni su come usare macchine virtuali con priorità bassa per ridurre il costo dei carichi di lavoro di inferenza batch, vedere Usare macchine virtuali con priorità bassa negli endpoint batch.

Infine, Azure Machine Learning non comporta addebiti per gli endpoint batch o le distribuzioni batch stesse, in modo da poter organizzare gli endpoint e le distribuzioni in base al proprio scenario. Gli endpoint e le distribuzioni possono usare cluster indipendenti o condivisi, in modo da ottenere un controllo granulare su quale calcolo utilizzano i processi. Usare scale-to-zero nei cluster per assicurarsi che non vengano utilizzate risorse quando sono inattive.

Semplificare la procedura MLOps

Gli endpoint batch possono gestire più distribuzioni nello stesso endpoint, consentendo di modificare l'implementazione dell'endpoint senza modificare l'URL usato dai consumer per richiamarlo.

È possibile aggiungere, rimuovere e aggiornare distribuzioni senza influire sull'endpoint stesso.

Diagramma che descrive come usare più distribuzioni nello stesso endpoint.

Origini dati flessibili e archiviazione

Gli endpoint batch leggono e scrivono i dati direttamente dall'archiviazione. È possibile specificare i datastore di Azure Machine Learning, gli asset di dati di Azure Machine Learning o gli account di archiviazione come input. Per altre informazioni sulle opzioni di input supportate e su come specificarle, vedere Creare processi e dati di input per gli endpoint batch.

Sicurezza

Gli endpoint batch offrono tutte le funzionalità necessarie per gestire i carichi di lavoro a livello di produzione in un'impostazione aziendale. Supportano private networking nelle aree di lavoro protette e autenticazione di Microsoft Entra, usando un principale utente (ad esempio un account utente) o un principale servizio (come un'identità gestita o non gestita). I processi generati da un endpoint batch vengono eseguiti con l'identità del invoker, che offre la flessibilità necessaria per implementare qualsiasi scenario. Per altre informazioni sull'autorizzazione durante l'uso degli endpoint batch, vedere Come eseguire l'autenticazione sugli endpoint batch.