Data science e Machine Learning con Azure Databricks

Databricks
Data Lake Storage
Servizio Kubernetes
Machine Learning

Idee per le soluzioni

Questo articolo è un'idea di soluzione. Per espandere il contenuto con altre informazioni, ad esempio casi d'uso potenziali, servizi alternativi, considerazioni sull'implementazione o indicazioni sui prezzi, inviare commenti e suggerimenti su GitHub.

Questa architettura illustra come migliorare le operazioni usando Azure Databricks, Delta Lake e MLflow per data science e Machine Learning. È possibile migliorare l'efficienza complessiva e l'esperienza dei clienti sviluppando, training e distribuendo modelli di Machine Learning.

Architettura

Diagramma dell'architettura che illustra il funzionamento di Azure Databricks con i servizi di archiviazione dati per perfezionare e analizzare i dati e renderli disponibili per altri servizi.

Il diagramma contiene tre rettangoli grigi: uno con etichetta Process, uno con etichetta Serve e uno con etichetta Store. I rettangoli Process e Serve si trovano accanto all'altro nella parte superiore del diagramma. Il rettangolo Serve contiene una casella bianca con icone per Machine Learning e servizio Azure Kubernetes. Un'altra casella bianca si strazza i rettangoli Processo e Serve. Contiene icone per Azure Databricks e MLflow. Una freccia punta da tale casella alla casella bianca nel rettangolo Serve. Sotto il rettangolo Processo è presente il rettangolo Store. Contiene una casella bianca con icone per Data Lake Storage, Delta Lake e tre tabelle di database con etichetta Bronze, Silver e Gold. Tre linee collegano i rettangoli Process e Store, con frecce a ogni estremità di ogni riga.

Scaricare un file di Visio di questa architettura.

La soluzione archivia, elabora e gestisce i dati:

Flusso di dati

Archivio

Data Lake Storage archivia i dati in formato Delta Lake. Delta Lake costituisce il livello curato del data lake. Un'architettura medallion organizza i dati in tre livelli:

  • Le tabelle bronze contengono dati non elaborati.
  • Le tabelle silver contengono dati puliti e filtrati.
  • Le tabelle Gold archiviano i dati aggregati pronti per l'analisi e la creazione di report.

Process

  • Il codice di vari linguaggi, framework e librerie prepara, perfeziona e pulisce i dati non elaborati (1). Le possibilità di codifica includono Python, R, SQL, Spark, Pandas e Koalas.

  • Azure Databricks esegue carichi di lavoro di data science. Questa piattaforma crea ed esegue anche il training di modelli di Machine Learning (2). Azure Databricks usa librerie ottimizzate preinstallate. Gli esempi includono scikit-learn, TensorFlow, PyTorch e XGBoost.

  • Il rilevamento MLflow acquisisce gli esperimenti di Machine Learning, le esecuzioni dei modelli e i risultati (3). Quando il modello migliore è pronto per la produzione, Azure Databricks distribuisce tale modello nel repository del modello MLflow. Questo Registro di sistema centralizzato archivia le informazioni sui modelli di produzione. Il Registro di sistema rende disponibili anche i modelli per altri componenti:

    • Le pipeline Spark e Python possono inserire modelli. Queste pipeline gestiscono carichi di lavoro batch o processi ETL di streaming.
    • Le API REST forniscono l'accesso ai modelli per molti scopi. Gli esempi includono test e assegnazione di punteggi interattivi nelle applicazioni per dispositivi mobili e Web.

Server

Azure Databricks può distribuire modelli in altri servizi, ad esempio Machine Learning e servizio Azure Kubernetes (4).

Componenti

  • Azure Databricks è una piattaforma di analisi dei dati. I cluster Spark completamente gestiti eseguono carichi di lavoro di data science. Azure Databricks usa anche librerie preinstallate e ottimizzate per creare ed eseguire il training di modelli di Machine Learning. L'integrazione di MLflow con Azure Databricks offre un modo per tenere traccia degli esperimenti, archiviare i modelli nei repository e rendere i modelli disponibili per altri servizi. Azure Databricks offre scalabilità:

    • I cluster di calcolo a nodo singolo gestiscono set di dati di piccole dimensioni e esecuzioni a modello singolo.
    • Per set di dati di grandi dimensioni, sono disponibili cluster di calcolo a più nodi o cluster GPU (Graphics Processing Unit). Questi cluster usano librerie e framework come HorovodRunner e Hyperopt per le esecuzioni parallele del modello.
  • Data Lake Storage è un data lake scalabile e sicuro per carichi di lavoro di analisi a elevate prestazioni. Questo servizio gestisce più petabyte di informazioni, mantenendo al tempo stesso centinaia di gigabit di velocità effettiva. I dati possono avere queste caratteristiche:

    • Essere strutturati, semistrutturati o non strutturati.
    • Provengono da più origini eterogenee, ad esempio log, file e supporti.
    • Essere statici, da batch o streaming.
  • Delta Lake è un livello di archiviazione che usa un formato di file aperto. Questo livello viene eseguito sopra l'archiviazione cloud, ad esempio Data Lake Storage. Delta Lake è ottimizzato per la trasformazione e la pulizia dei dati batch e di streaming. Questa piattaforma supporta queste funzionalità e funzionalità:

    • Controllo delle versioni dei dati e rollback.
    • Transazioni di atomicità, coerenza, isolamento e durabilità (ACID) per l'affidabilità.
    • Standard coerente per la preparazione dei dati, il training del modello e la gestione del modello.
    • Tempo di spostamento per snapshot coerenti dei dati di origine. I data scientist possono eseguire il training dei modelli sugli snapshot invece di creare copie separate.
  • MLflow è una piattaforma open source per il ciclo di vita di Machine Learning. I componenti MLflow monitorano i modelli di Machine Learning durante il training e l'esecuzione. Le informazioni archiviate includono codice, dati, informazioni di configurazione e risultati. MLflow archivia anche i modelli e li carica nell'ambiente di produzione. Poiché MLflow usa framework aperti, vari servizi, applicazioni, framework e strumenti possono utilizzare i modelli.

  • Machine Learning è un ambiente basato sul cloud che consente di compilare, distribuire e gestire soluzioni di analisi predittiva. Con questi modelli è possibile prevedere comportamento, risultati e tendenze.

  • Il servizio Azure Kubernetes è un servizio Kubernetes a disponibilità elevata, sicuro e completamente gestito. Il servizio Azure Kubernetes semplifica la distribuzione e la gestione di applicazioni in contenitori.

Dettagli dello scenario

Man mano che l'organizzazione riconosce la potenza dell'analisi scientifica dei dati e del Machine Learning, è possibile migliorare l'efficienza, migliorare le esperienze dei clienti e prevedere le modifiche. Per raggiungere questi obiettivi nei casi d'uso critici per l'azienda, è necessario un modello coerente e affidabile per:

  • Tenere traccia degli esperimenti.
  • Riproduzione dei risultati.
  • Distribuzione di modelli di Machine Learning nell'ambiente di produzione.

Questo articolo descrive una soluzione per un framework di Machine Learning coerente e affidabile. Azure Databricks costituisce il nucleo dell'architettura. Anche il livello di archiviazione Delta Lake e la piattaforma di Machine Learning MLflow svolgono ruoli significativi. Questi componenti si integrano perfettamente con altri servizi, ad esempio Azure Data Lake Storage, Azure Machine Learning e servizio Azure Kubernetes (servizio Azure Kubernetes).

Insieme, questi servizi offrono una soluzione per l'analisi scientifica dei dati e l'apprendimento automatico:

  • Semplice: un data lake aperto semplifica l'architettura. Il data lake contiene un livello curato, Delta Lake. Tale livello fornisce l'accesso ai dati in un formato open source.

  • Open: la soluzione supporta codice open source, standard aperti e framework aperti. Questo approccio riduce al minimo la necessità di aggiornamenti futuri. Azure Databricks e Machine Learning supportano in modo nativo MLflow e Delta Lake. Insieme, questi componenti forniscono operazioni di Machine Learning (MLOps) leader del settore o DevOps per l'apprendimento automatico. Un'ampia gamma di strumenti di distribuzione si integra con il formato del modello standardizzato della soluzione.

  • Collaborazione: i team di data science e MLOps collaborano con questa soluzione. Questi team usano il rilevamento MLflow per registrare ed eseguire query sugli esperimenti. I team distribuiscono anche i modelli nel Registro modelli MLflow centrale. I data engineer usano quindi modelli distribuiti nei processi di inserimento dati, nei processi ETL (extract-transform-load) e nelle pipeline di streaming.

Potenziali casi d'uso

Una piattaforma creata da AGL per la previsione energetica ha ispirato questa soluzione. Questa piattaforma offre formazione, distribuzione e gestione del ciclo di vita rapida e conveniente per migliaia di modelli paralleli.

Oltre ai fornitori di energia, questa soluzione può trarre vantaggio da qualsiasi organizzazione che:

  • Usa l'analisi scientifica dei dati.
  • Compila e esegue il training dei modelli di Machine Learning.
  • Esegue modelli di Machine Learning in produzione.

Gli esempi includono organizzazioni in:

  • Vendita al dettaglio e e-commerce.
  • Banca e finanza.
  • Scienze della salute e della vita.
  • Industrie automobilistiche e produzione.

Passaggi successivi

  • AGL Energy crea una piattaforma standardizzata per migliaia di modelli paralleli. La piattaforma offre training, distribuzione e gestione del ciclo di vita rapido e conveniente per i modelli.
  • Open Grid Europe (OGE) usa modelli di intelligenza artificiale per monitorare le pipeline di gas. OGE usa Azure Databricks e MLflow per sviluppare i modelli.
  • Scandinavian Airlines (SAS) usa Azure Databricks durante una fase di ricerca collaborativa. La compagnia aerea usa anche Machine Learning per sviluppare modelli predittivi. Identificando i modelli nei dati dell'azienda, i modelli migliorano le operazioni quotidiane.