Data science e Machine Learning con Azure Databricks

Azure Databricks
Azure Data Lake Storage
Servizio Azure Kubernetes
Azure Machine Learning

Idee per le soluzioni

Questo articolo è un'idea di soluzione. Per espandere il contenuto con altre informazioni, ad esempio potenziali casi d'uso, 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, addestrando e distribuendo modelli di Machine Learning.

Architecture

Architecture diagram showing how Azure Databricks works with data storage services to refine and analyze data and make it available for other services.

Il diagramma contiene tre rettangoli grigi: un processo etichettato, uno con etichetta Serve e uno con etichetta Store. I rettangoli Processo e Servizio si trovano uno 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 allontana dai rettangoli Processo e Servizio. 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 Archiviazione, Delta Lake e tre tabelle di database con etichetta Bronze, Silver e Gold. Tre righe connettono i rettangoli Processo e Archivia, 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

Store

Data Lake Archiviazione 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 archivia dati aggregati pronti per l'analisi e la creazione di report.

Processo

  • Il codice di vari linguaggi, framework e librerie prepara, affina 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 di modelli 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 compilare ed eseguire il training di modelli di Machine Learning. L'integrazione di MLflow con Azure Databricks consente di tenere traccia degli esperimenti, archiviare i modelli nei repository e rendere disponibili modelli ad 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 di modelli paralleli.
  • 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 e supporta 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 sull'archiviazione cloud, ad esempio Data Lake Archiviazione. 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 atomiche, 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 anziché 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 usare 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 delle applicazioni in contenitori.

Dettagli dello scenario

Man mano che l'organizzazione riconosce la potenza dell'analisi scientifica dei dati e dell'apprendimento automatico, è 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:

  • Eseguire il rilevamento 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 Archiviazione, 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 leader del settore (MLOps) 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 interagiscono con questa soluzione. Questi team usano il rilevamento MLflow per registrare ed eseguire query sugli esperimenti. I team distribuiscono anche i modelli nel registro dei modelli MLflow centrale. I data engineer usano quindi modelli distribuiti nei processi di inserimento dati, estrazione-trasformazione-caricamento (ETL) e pipeline di streaming.

Potenziali casi d'uso

Una piattaforma creata da AGL per la previsione dell'energia 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 provider di energia, questa soluzione può trarre vantaggio da qualsiasi organizzazione che:

  • Usa l'analisi scientifica dei dati.
  • Compila ed esegue il training di modelli di Machine Learning.
  • Esegue modelli di Machine Learning nell'ambiente di produzione.

Gli esempi includono le organizzazioni in:

  • Vendita al dettaglio ed e-commerce.
  • Banche e finanze.
  • Sanità e scienze della vita.
  • Industria automobilistica e produzione.

Passaggi successivi

  • AGL Energy crea una piattaforma standardizzata per migliaia di modelli paralleli. La piattaforma offre formazione, distribuzione e gestione del ciclo di vita rapida 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.
  • Nordic 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 aziendali, i modelli migliorano le operazioni quotidiane.