Endpoint batch

Azure Machine Learning consente di implementare endpoint e distribuzioni batch per eseguire inferenze asincrone e 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 stime 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 archiviano gli output in un archivio dati per un'ulteriore analisi. Usare gli endpoint batch quando:

  • Si dispone di modelli o pipeline dispendiosi 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 si dispone di requisiti di bassa latenza.
  • Gli input del modello vengono archiviati in un account di archiviazione o in un asset di dati di Azure Machine Learning.
  • È possibile sfruttare la parallelizzazione.

Distribuzioni batch

Una distribuzione è un set di risorse e calcoli necessari per implementare la funzionalità fornita dall'endpoint. Ogni endpoint può ospitare diverse distribuzioni con configurazioni diverse e questa funzionalità consente di separare l'interfaccia dell'endpoint dai dettagli di implementazione definiti dalla 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 negli endpoint batch di Azure Machine Learning:

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 instrumenta automaticamente la scalabilità fornendo la parallelizzazione dei processi di inferenza in più nodi in un cluster di calcolo.

Usare 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, distribuiti in più file.
  • Non si dispone di requisiti di bassa latenza.
  • È possibile sfruttare la 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 una semplice pre-elaborazione o post-elaborazione, è possibile creare uno script di assegnazione dei punteggi che esegue le trasformazioni dei dati necessarie.

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

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

Distribuzione di 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 si dispone di 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 pipeline
  • Configurazione del cluster di elaborazione

Gli endpoint batch consentono anche di creare distribuzioni di componenti della pipeline da un processo della pipeline esistente. Quando si esegue questa operazione, Azure Machine Learning crea automaticamente un componente della pipeline fuori dal processo. Ciò semplifica l'uso di questi tipi 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 asincrono. 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 era stato interrotto 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 addebita l'addebito 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 le distribuzioni senza influire sull'endpoint stesso.

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

Origini dati e archiviazione flessibili

Gli endpoint batch leggono e scrivono i dati direttamente dall'archiviazione. È possibile specificare archivi dati di Azure Machine Learning, asset di dati di Azure Machine Learning o account 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 ambiente aziendale. Supportano la rete privata nelle aree di lavoro protette e l'autenticazione di Microsoft Entra, usando un'entità utente (come un account utente) o un'entità 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.