Come costruire un flusso di dati ETL nel Machine Learning
'Costruzione di un flusso di dati ETL per il Machine Learning'
Dalla elaborazione dei dati alle rapide intuizioni, le robuste pipeline sono fondamentali per qualsiasi sistema di apprendimento automatico. Spesso il Team dei Dati, composto da Data e ML Engineer, deve costruire questa infrastruttura e questa esperienza può essere dolorosa. Tuttavia, l’uso efficiente delle pipeline ETL nell’apprendimento automatico può aiutare a rendere la loro vita molto più facile.
Questo articolo esplora l’importanza delle pipeline ETL nell’apprendimento automatico, un esempio pratico di costruzione di pipeline ETL con un tool popolare e suggerisce i migliori modi per migliorare e sostenere le pipeline dei data engineer. Discutiamo anche i diversi tipi di pipeline ETL per casi d’uso di ML e forniamo esempi concreti del loro utilizzo per aiutare i data engineer a scegliere quella giusta. Prima di addentrarci nei dettagli tecnici, facciamo una revisione di alcuni concetti fondamentali.
Cosa è una pipeline di dati ETL nell’apprendimento automatico?
Una pipeline di dati ETL è una collezione di strumenti e attività utilizzati per eseguire Extract (E), Transform (T) e Load (L) dei dati necessari.
![](https://i0.wp.com/neptune.ai/wp-content/uploads/2023/05/ETL-pipeline-2.png?resize=1920%2C1005&ssl=1)
- Costruzione di una piattaforma di ML nel settore del commercio al dettaglio e dell’eCommerce
- Cosa significa GPT-3 per il futuro di MLOps? Con David Hershey
- Come creare un flusso di lavoro per l’addestramento di modelli di Machine Learning
Queste attività implicano l’estrazione dei dati da un sistema, la loro trasformazione e successiva elaborazione in un altro sistema di destinazione in cui possono essere archiviati e gestiti.
L’apprendimento automatico si basa molto sulle pipeline ETL, poiché l’accuratezza ed efficacia di un modello sono direttamente influenzate dalla qualità dei dati di addestramento. Queste pipeline aiutano gli scienziati dei dati a risparmiare tempo ed efforti garantendo che i dati siano puliti, correttamente formattati e pronti per l’utilizzo nelle attività di apprendimento automatico.
Inoltre, le pipeline ETL svolgono un ruolo cruciale nel superare i silos di dati e stabilire una singola fonte di verità. Esaminiamo l’importanza delle pipeline ETL in dettaglio.
Perché abbiamo bisogno di una pipeline ETL nell’apprendimento automatico?
La significatività delle pipeline ETL risiede nel fatto che consentono alle organizzazioni di ottenere informazioni preziose da grandi e complessi set di dati. Ecco alcune ragioni specifiche per cui sono importanti:
- Integrazione dei dati: Le organizzazioni possono integrare dati da diverse fonti utilizzando le pipeline ETL. Questo fornisce agli scienziati dei dati una visione unificata dei dati e li aiuta a decidere come addestrare il modello, i valori per gli iperparametri, ecc.
- Controllo della qualità dei dati: Man mano che i dati fluiscono attraverso la fase di integrazione, le pipeline ETL possono aiutare a migliorare la qualità dei dati standardizzandoli, pulendoli e convalidandoli. Ciò assicura che i dati utilizzati per l’apprendimento automatico siano accurati, affidabili e consistenti.
- Risparmio di tempo: Le pipeline ETL automatizzano il processo dei 3 passaggi principali – Extract, Transform e Load, il che aiuta a risparmiare molto tempo e riduce anche la probabilità di errori umani. Ciò consente agli scienziati dei dati di concentrarsi sulla creazione di modelli o sul loro miglioramento continuo.
- Scalabilità: Le moderne pipeline ETL sono scalabili, cioè possono essere dimensionate verso l’alto o verso il basso a seconda della quantità di dati che devono elaborare. Fondamentalmente, offrono la flessibilità e l’agilità per apportare eventuali modifiche in base alle esigenze aziendali.
Qual è la differenza tra una pipeline ETL e una pipeline di dati?
La pipeline di dati è un termine generale per la categoria di spostamento dei dati tra diversi sistemi e la pipeline di dati ETL è un tipo di pipeline di dati.
— Xoriant
È comune utilizzare in modo intercambiabile i termini pipeline di dati ETL e pipeline di dati. Anche se entrambi questi termini si riferiscono alle funzionalità e ai processi di trasferimento dei dati da varie fonti a un unico repository, non sono la stessa cosa. Esploriamo perché non dovremmo usarli in modo sinonimo.
Confronto |
Pipeline ETL |
Pipeline di dati |
Terminologia |
Come suggerisce l’abbreviazione, ETL coinvolge una serie di processi, l’estrazione dei dati, la loro trasformazione e infine il caricamento nella fonte di destinazione. |
Una pipeline di dati coinvolge anche lo spostamento dei dati da una fonte all’altra ma non necessariamente deve passare attraverso la trasformazione dei dati. |
Area di focus |
ETL aiuta a trasformare i dati grezzi in un formato strutturato che può essere facilmente utilizzato dagli scienziati dei dati per creare modelli e interpretare per qualsiasi decisione basata sui dati. |
Una pipeline di dati viene creata con l’obiettivo di trasferire dati da una varietà di fonti in un data warehouse. Successivamente, processi o flussi di lavoro possono utilizzare facilmente questi dati per creare soluzioni di business intelligence e analisi. |
Operazione |
La pipeline ETL viene eseguita su un programma, ad esempio giornaliero, settimanale o mensile. Le pipeline ETL di base sono orientate per batch, in cui i dati vengono spostati a blocchi secondo un programma specificato. |
Le pipeline di dati spesso vengono eseguite in tempo reale. I dati vengono continuamente aggiornati e supportano la generazione di report e l’analisi in tempo reale. |
In sintesi, i pipeline ETL sono un tipo di pipeline dati progettata specificamente per estrarre dati da diverse fonti, trasformarli in un formato comune e caricarli in un data warehouse o in un altro sistema di archiviazione. Mentre una pipeline dati può includere vari tipi di pipeline, la pipeline ETL è solo un sottoinsieme specifico di una pipeline dati.
Abbiamo esaminato l’architettura di base di una pipeline ETL e abbiamo visto come ogni passaggio possa essere eseguito per scopi diversi, e possiamo scegliere tra vari strumenti per completare ogni passaggio. L’architettura ELT e il suo tipo differiscono da organizzazione a organizzazione in quanto hanno diversi insiemi di tecnologie, fonti di dati e requisiti aziendali.
Quali sono i diversi tipi di pipeline ETL in ML?
Le pipeline ETL possono essere categorizzate in base al tipo di dati in elaborazione e al modo in cui vengono elaborati. Ecco alcuni dei tipi:
- Pipeline ETL a batch: Questo è un approccio ETL tradizionale che prevede l’elaborazione di grandi quantità di dati in batch. I dati vengono estratti da una o più fonti, trasformati nel formato desiderato e caricati in un sistema di destinazione, come un data warehouse. La pipeline ETL a batch è particolarmente utile per addestrare modelli su dati storici o eseguire lavori periodici di elaborazione in batch.
- Pipeline ETL in tempo reale: Questo processo i dati man mano che arrivano in tempo quasi reale o in tempo reale; l’elaborazione continua dei dati significa che è richiesta una capacità di elaborazione inferiore in un determinato momento e si possono evitare picchi di utilizzo. La pipeline ETL in tempo reale è particolarmente utile per applicazioni come la rilevazione delle frodi, dove l’elaborazione in tempo reale è fondamentale. Le pipeline ETL in tempo reale richiedono strumenti e tecnologie come i motori di elaborazione in streaming e i sistemi di messaggistica.
- Pipeline ETL incrementale: Queste pipeline estraggono e elaborano solo i dati che sono cambiati dall’ultima esecuzione anziché elaborare l’intero set di dati. Sono utili in situazioni in cui i dati di origine cambiano frequentemente, ma il sistema di destinazione ha solo bisogno degli ultimi dati, ad esempio nelle applicazioni come i sistemi di raccomandazione, dove i dati cambiano frequentemente ma non in tempo reale.
- Pipeline ETL cloud: La pipeline ETL cloud per ML prevede l’utilizzo di servizi basati su cloud per estrarre, trasformare e caricare i dati in un sistema ML per l’addestramento e la distribuzione. I fornitori di cloud come AWS, Microsoft Azure e GCP offrono una serie di strumenti e servizi che possono essere utilizzati per costruire queste pipeline. Ad esempio, AWS fornisce servizi come AWS Glue per ETL, Amazon S3 per l’archiviazione dei dati e Amazon SageMaker per l’addestramento e la distribuzione di ML.
- Pipeline ETL ibrida: Queste pipeline combinano l’elaborazione a batch e in tempo reale, sfruttando i punti di forza di entrambi gli approcci. Le pipeline ETL ibride possono elaborare grandi batch di dati a intervalli prestabiliti e catturare anche gli aggiornamenti in tempo reale dei dati man mano che arrivano. La pipeline ETL ibrida è particolarmente utile per applicazioni come la manutenzione predittiva, dove è necessaria una combinazione di dati storici e in tempo reale per addestrare i modelli.
Strumenti per le pipeline ETL
Per creare una pipeline ETL, come discusso nella sezione precedente, sono necessari strumenti, strumenti che possono fornirci la funzionalità dei seguenti passaggi di base dell’architettura ETL. Ci sono diversi strumenti disponibili sul mercato, ecco alcuni dei più popolari, insieme alle funzionalità che offrono.
Strumento |
Basato su cloud |
Connettori predefiniti |
Serverless |
Opzioni di trasformazione predefinite |
Supporto API |
Completamente gestito |
Hevo Data |
|
|
|
|
|
|
AWS Glue |
|
|
|
|
|
|
GCP Cloud Data Fusion |
|
|
|
|
|
|
Apache Spark |
|
|
|
|
|
|
Talend |
|
|
|
|
|
|
Apache Airflow |
|
|
|
|
|
Come costruire una pipeline ETL per l’apprendimento automatico?Nella sezione precedente, abbiamo esplorato brevemente alcuni concetti e strumenti di base per l’ETL, in questa sezione parleremo di come sfruttarli per costruire una pipeline ETL. Prima di tutto, parliamo della sua architettura. Architettura ETL
L’architettura ETL spesso include un diagramma come quello sopra che illustra il flusso delle informazioni nella pipeline ETL, dalle fonti di dati alla destinazione finale. Comprende tre aree principali: area di arrivo, area di staging e area del data warehouse.
L’architettura della pipeline ETL è a strati. Ogni sottosistema è essenziale e, sequenzialmente, ogni sottosistema alimenta il successivo fino a quando i dati raggiungono la loro destinazione. ![]()
Costruiamo ora la nostra pipeline ETL utilizzando uno degli strumenti discussi! Costruzione di una pipeline ETL utilizzando AirFlowImmaginiamo di voler creare un modello di classificazione per l’apprendimento automatico in grado di classificare i fiori in 3 diverse categorie: Setosa, Versicolour, Virginica. Utilizzeremo un dataset che viene aggiornato, ad esempio, ogni settimana. Questo sembra un compito adatto per una pipeline ETL di tipo batch. Per configurare una pipeline ETL di tipo batch, utilizzeremo Apache Airflow, che è un sistema di gestione del flusso di lavoro open source e offre un modo semplice per scrivere, pianificare e monitorare i flussi di lavoro ETL. Segui i passaggi descritti di seguito per configurare la tua pipeline ETL di tipo batch. Ecco i passaggi generici che possiamo seguire per creare un flusso di lavoro ETL in AirFlow:
Crea un file DAG – airflow_classification_ml_pipeline.py con il codice seguente:
L’integrazione dei modelli di apprendimento automatico con l’analisi dei dati fornisce alle organizzazioni capacità avanzate per prevedere la domanda con maggiore precisione. Esistono diverse best practice per la creazione di una pipeline ETL (Estrazione, Trasformazione, Caricamento) per le applicazioni di Machine Learning (ML). Ecco alcune delle più importanti:
ConclusioniIn tutto questo articolo, abbiamo esaminato diversi aspetti della pipeline di dati ETL in ML.
Spero che questo articolo ti sia stato utile. Consultando questo articolo e svolgendo l’esercizio pratico sulla creazione della pipeline batch, dovresti essere in grado di crearne uno autonomamente. Puoi scegliere uno qualsiasi degli strumenti menzionati nell’articolo e iniziare il tuo percorso. Buon apprendimento! Riferimenti
![]() AIEsplora il mondo dell'Intelligenza Artificiale e il suo potenziale trasformativo |