Assegnazione dei punteggi in batch per i modelli Spark in Azure Databricks

Microsoft Entra ID
Azure Databricks
Azure Data Factory
Archiviazione BLOB di Azure

Questa architettura di riferimento illustra come creare una soluzione scalabile per l'assegnazione di punteggi batch a un modello di classificazione Apache Spark in base a una pianificazione usando Azure Databricks. Azure Databricks è una piattaforma di analisi basata su Apache Spark ottimizzata per Azure. Azure Databricks offre tre ambienti per lo sviluppo di applicazioni a elevato utilizzo di dati: Databricks SQL, Databricks Data Science & Engineering e Databricks Machine Learning. Databricks Machine Learning è un ambiente di Machine Learning end-to-end integrato che incorpora servizi gestiti per il rilevamento degli esperimenti, il training dei modelli, lo sviluppo e la gestione delle funzionalità e la gestione di funzionalità e modelli. È possibile usare questa architettura di riferimento come modello che può essere generalizzata in altri scenari. Un'implementazione di riferimento per questa architettura è disponibile in GitHub.

Apache e Apache® Spark® sono marchi o marchi registrati di Apache Software Foundation nei Stati Uniti e/o in altri paesi. L'uso di questi marchi non implica alcuna approvazione da parte di Apache Software Foundation.

Architettura

Diagramma che mostra il punteggio batch dei modelli di classificazione Apache Spark in Azure Databricks.

Scaricare un file di Visio di questa architettura.

Workflow

L'architettura definisce un flusso di dati interamente contenuto in Azure Databricks e basato su un set di notebook eseguiti in sequenza. È costituita dai componenti seguenti:

File di dati. L'implementazione di riferimento usa un set di dati simulato contenuto in cinque file di dati statici.

Inserimento. Il notebook di inserimento dati scarica i file di dati di input in una raccolta di set di dati di Databricks. In uno scenario reale, i dati dei dispositivi IoT passano in streaming nell'archiviazione accessibile da Databricks, ad esempio Azure SQL o Archiviazione BLOB di Azure. Databricks supporta più origini dati.

Pipeline di training. Questo notebook esegue il notebook di progettazione delle funzionalità per creare un set di dati di analisi dai dati inseriti. Esegue quindi un notebook di compilazione modello che esegue il training del modello di Machine Learning usando la libreria di Machine Learning scalabile Apache Spark MLlib.

Pipeline di assegnazione del punteggio. Questo notebook esegue il notebook di progettazione delle funzionalità per creare un set di dati di punteggio dai dati inseriti, quindi esegue il notebook di assegnazione del punteggio. Quest'ultimo usa il modello Spark MLlib sottoposto a training per generare stime per le osservazioni nel set di dati di punteggio. Le stime vengono archiviate nell'archivio risultati, un nuovo set di dati nell'archivio dati di Databricks.

Addetto pianificazione. Un processo pianificato di Databricks gestisce l'assegnazione del punteggio batch con il modello Spark. Il processo esegue il notebook della pipeline di assegnazione del punteggio, passando argomenti di variabile tramite i parametri del notebook per specificare i dettagli per la costruzione del set di dati di punteggio e la posizione in cui archiviare il set di dati dei risultati.

Dettagli della soluzione

Lo scenario viene costruito come un flusso della pipeline. Ogni notebook è ottimizzato per l'esecuzione in un'impostazione batch per ciascuna operazione: inserimento, progettazione delle funzionalità, compilazione del modello e assegnazione del punteggio al modello. Il notebook di progettazione delle funzionalità è progettato per generare un set di dati generale per qualsiasi operazione di training, calibrazione, test o assegnazione dei punteggi. In questo scenario viene usata una strategia di suddivisione temporale per queste operazioni, quindi i parametri del notebook vengono usati per impostare il filtro degli intervalli di date.

Poiché lo scenario crea una pipeline batch, viene fornito un set di notebook di esame facoltativi per esplorare l'output dei notebook di pipeline. È possibile trovare questi notebook nella cartella notebook del repository GitHub:

  • 1a_raw-data_exploring.ipynb
  • 2a_feature_exploration.ipynb
  • 2b_model_testing.ipynb
  • 3b_model_scoring_evaluation.ipynb

Potenziali casi d'uso

un'azienda di un settore che fa largo uso di risorse vuole ridurre al minimo i costi e i tempi di inattività associati a guasti meccanici imprevisti. Usando i dati IoT raccolti dai computer aziendali, è possibile creare un modello di manutenzione predittiva. Questo modello consente all'azienda di gestire i componenti in maniera proattiva, riparandoli prima che si guastino. Ottimizzando l'uso dei componenti meccanici, l'azienda può controllare i costi e ridurre i tempi di inattività.

Un modello di manutenzione predittiva raccoglie i dati dai computer e conserva esempi cronologici dei guasti dei componenti. Il modello può quindi essere usato per monitorare lo stato corrente dei componenti e prevedere se un determinato componente avrà esito negativo a breve. Per casi d'uso e metodi di modellazione comuni, vedere Guida di Azure AI per soluzioni di manutenzione predittiva.

Questa architettura di riferimento è progettata per carichi di lavoro che vengono attivati dalla presenza di nuovi dati dai computer dei componenti. L'elaborazione prevede i passaggi seguenti:

  1. Inserire i dati dall'archivio dati esterno in un archivio dati di Azure Databricks.

  2. Eseguire il training di un modello di Machine Learning trasformando i dati in un set di dati di training e quindi compilando un modello Spark MLlib. MLlib è costituito dagli algoritmi e le utilità di Machine Learning più comuni, ottimizzati per sfruttare i vantaggi delle funzionalità di scalabilità dei dati di Spark.

  3. Applicare il modello sottoposto a training per stimare (classificare) i guasti dei componenti trasformando i dati in un set di dati di punteggio. Assegnare un punteggio ai dati con il modello Spark MLlib.

  4. Archiviare i risultati nell'archivio dati di Databricks per l'utilizzo post-elaborazione.

I notebook vengono forniti in GitHub per eseguire ognuna di queste attività.

Consigli

Databricks è configurato in modo da consentire di caricare e distribuire i modelli sottoposti a training per eseguire stime con i nuovi dati. Databricks offre anche altri vantaggi:

  • Supporto per l'accesso Single Sign-On con le credenziali di Microsoft Entra.
  • Utilità di pianificazione dei processi per eseguire i processi per le pipeline di produzione.
  • Notebook completamente interattivo con funzionalità di collaborazione, dashboard, API REST.
  • Cluster illimitati scalabili a qualsiasi dimensione.
  • Sicurezza avanzata, controllo degli accessi in base al ruolo e log di controllo.

Per interagire con il servizio Azure Databricks, usare l'interfaccia Workspace di Databricks in un Web browser oppure l'Interfaccia della riga di comando. Accedere all'interfaccia della riga di comando di Databricks da qualsiasi piattaforma che supporti Python versioni da 2.7.9 a 3.6.

L'implementazione di riferimento usa i notebook per eseguire le attività in sequenza. Ogni notebook archivia artefatti dei dati intermedi (set di dati di training, test, punteggio o risultati) nello stesso archivio dati dei dati di input. L'obiettivo è semplificarne l'uso in base alle esigenze del proprio caso d'uso. In pratica, occorre connettere l'origine dati all'istanza di Azure Databricks per consentire ai notebook di leggere e scrivere direttamente nell'archivio.

Monitorare l'esecuzione del processo tramite l'interfaccia utente di Databricks, l'archivio dati o l'interfaccia della riga di comando di Databricks in base alle esigenze. Monitorare il cluster usando il log eventi e altre metriche fornite da Databricks.

Considerazioni

Queste considerazioni implementano i pilastri di Azure Well-Architected Framework, che è un set di set di principi guida che possono essere usati per migliorare la qualità di un carico di lavoro. Per altre informazioni, vedere Framework ben progettato di Microsoft Azure.

Prestazioni

Un cluster di Azure Databricks abilita la scalabilità automatica per impostazione predefinita, in modo che, in fase di runtime, Databricks possa riallocare dinamicamente i ruoli di lavoro all'account per le caratteristiche del processo. Alcune parti della pipeline potrebbero essere più impegnative dal livello di calcolo rispetto ad altre. Databricks aggiunge altri ruoli di lavoro durante queste fasi del processo e li rimuove quando non sono più necessari. La scalabilità automatica semplifica l'utilizzo elevato del cluster, perché non è necessario effettuare il provisioning del cluster in modo che corrisponda a un carico di lavoro.

Sviluppare pipeline pianificate più complesse usando Azure Data Factory con Azure Databricks.

Storage

In questa implementazione di riferimento i dati vengono archiviati direttamente nell'archivio di Databricks per semplicità. In un'impostazione di produzione, tuttavia, è possibile archiviare i dati nell'archivio dati cloud, ad esempio Archiviazione BLOB di Azure. Databricks supporta anche Azure Data Lake Store, Azure Synapse Analytics, Azure Cosmos DB, Apache Kafka e Apache Hadoop.

Ottimizzazione dei costi

L'ottimizzazione dei costi riguarda l'analisi dei modi per ridurre le spese non necessarie e migliorare l'efficienza operativa. Per altre informazioni, vedere Panoramica del pilastro di ottimizzazione dei costi.

In linea generale, usare il calcolatore dei prezzi di Azure per stimare i costi. Altre considerazioni sono descritte nella sezione Costo in Microsoft Azure Well-Architected Framework.

Azure Databricks è un'offerta Spark premium a cui è associato un costo. Sono inoltre disponibili piani tariffari standard e premium per Databricks.

Per questo scenario è sufficiente il piano tariffario standard. Tuttavia, se un'applicazione specifica deve poter ridimensionare automaticamente i cluster per gestire carichi di lavoro di grandi dimensioni o dashboard interattivi di Databricks, il livello premium potrebbe aumentare ulteriormente i costi.

I notebook della soluzione possono essere eseguiti su qualsiasi piattaforma basata su Spark con modifiche minime per rimuovere i pacchetti specifici di Databricks. Vedere le soluzioni simili seguenti per diverse piattaforme di Azure:

Distribuire lo scenario

Per distribuire questa architettura di riferimento, seguire la procedura descritta nel repository GitHub per creare una soluzione scalabile per l'assegnazione dei punteggi ai modelli Spark in batch in Azure Databricks.

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi