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 è denominato 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 le richieste di routing degli endpoint batch per la distribuzione predefinita, mentre più distribuzioni condividono lo stesso endpoint.

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

Distribuzione del modello

La distribuzione del modello consente di rendere operativa l'inferenza del modello su larga scala, in modo da poter elaborare grandi quantità di dati in modo a esecuzione prolungata e asincrona. Azure Machine Learning gestisce automaticamente la scalabilità parallelizzando i processi di inferenza tra 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 di rendere operativi interi grafici di elaborazione (o pipeline) per eseguire l'inferenza batch in modo a esecuzione prolungata 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 all'esterno del 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 modelli, è possibile eseguire l'override delle impostazioni delle risorse di calcolo (ad esempio il numero di istanze) e le impostazioni avanzate (ad esempio mini dimensioni batch, soglia di errore e così via) per ogni singolo processo di inferenza batch. Usando 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 dai nodi deallocati riprogrammando i mini batch interessati. Il sistema mantiene il lavoro da mini batch già completati, ma non fornisce checkpoint a livello di processo. Per altre informazioni sull'uso di 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.

Note

Azure Machine Learning ha dismesso le macchine virtuali a bassa priorità il 31 marzo 2026. Le configurazioni esistenti che richiedono macchine virtuali con priorità bassa ora usano macchine virtuali spot. Per i prezzi correnti e il comportamento di rimozione, 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 mostra come è possibile aggiungere, aggiornare o rimuovere più distribuzioni batch in un URL dell'endpoint stabile.

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 la rete privata nelle aree di lavoro protette e l'autenticazione di Microsoft Entra, usando un'entità utente (ad esempio 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.