Lo Spark AI Summit 2019 ha ospitato un gruppo eterogeneo di programmatori ed utilizzatori di soluzioni per l’analisi dei dati tramite tecniche di Machine Learning. Le sessioni erano ben differenziate per poter soddisfare i diversi livelli di esperienza tecnica del pubblico, mentre le Keynotes, ovvero i discorsi di apertura delle giornate, hanno visto i maggiori esponenti del team di Databricks annunciare nuovi strumenti e tecnologie sviluppate dall’azienda. Questi saranno il focus del mio articolo.
In particolare mi concentrerò su tre novità:
- Koalas
- Delta Lake
- Managed MLFlow
Sommario
Koalas
Parte di Apache Spark 3.0, che verrà rilasciata nei prossimi mesi dell’anno, Koalas ci permette di utilizzare pandas senza dover rinunciare a sfruttare l’intera mole di dati analizzabili, nè obbligarci a migrare il codice in PySpark.
Perché cito queste due limitazioni? Perchè lavorando su un solo nodo, su un solo thread, e in memoria, Pandas è efficiente per dati di piccola e media mole. Finora, se stavamo lavorando con Big Data ma volevamo utilizzare Pandas, dovevamo necessariamente selezionare un sottoinsieme di questi dati. Questo chiaramente significava non sfruttare appieno le informazioni contenute nei dati. D’altra parte, se si volevano utilizzare tutti i dati a disposizione, l’unica soluzione era di migrare il codice Pandas in PySpark per poter così sfruttare la potenza di calcolo di Apache Spark. Nonostante Python e PySpark siano abbastanza simili, esistono comunque differenze che possono rendere la migrazione lenta e difficoltosa.
Usando il package Koalas sarà possibile utilizzare il codice Pandas così com’è, e allo stesso tempo sfruttare pienamente l’ambiente distribuito di Apache Spark. Questo significa poter usare un codice già creato in Python Pandas ma sfruttando un’infrastruttura che permette di lavorare su grandi moli di dati. Inoltre, dato che Koalas utilizza Apache Spark come esecutore, è possibile utilizzare Pandas insieme ad altri linguaggi all’interno dello stesso workbook.
Oltre alle caratteristiche di funzionamento, un’altra caratteristica apprezzabile di Koalas è l’essere open source.
Delta Lake
Il progetto Delta Lake era già stato lanciato da Databricks mesi fa. La novità di questo Summit è che il progetto è diventato open source.
Delta Lake è un livello di storage che si inserisce tra un Data Lake aziendale esistente, e gli strumenti utilizzati per interrogare ed analizzare i dati in esso presenti. Lo scopo principale di Delta Lake è quello di rendere i dati attendibili. Questo viene fatto in diversi modi:
- esistenza di transazioni ACID tra scritture multiple
- controllo automatico che ciò che viene scritto nel Data Lake sia compatibile con uno specifico schema
- inserimento dei metadati nel log delle transazioni piuttosto che nel metastore
- permette di consultare ed utilizzare versioni precedenti di tabelle e directories
- può essere usato sia per dati scritti in batch che per streaming data (sincronizzazione in semi-real time)
- sarà possibile utilizzare i comandi DML: merge, update e delete
- supporterà “data expectations” per tabelle e directories
Managed MLflow
MLflow è stato introdotto da già quasi un anno. Lo strumento aiuta i data scientists a gestire l’intero processo di Machine Learning e tenere traccia dei diversi esperimenti fatti sui dati. Una delle caratteristiche distintive di questa piattaforma open source per il Machine Learning è il fatto di essere stata ideata per poter lavorare con qualsiasi libreria, linguaggio di programmazione, strumenti di deployment, ecc. I contributori sono più di 80, provenienti da circa 40 aziende, in solo 10 mesi.
I tre componenti principali dell’interfaccia MLflow sono:
- tracking, che permette di ispezionare diversi esperimenti fatti all’interno di uno stesso modello (per esempio l’utilizzo di diversi parametri per uno stesso algoritmo), e di confrontare diversi modelli per identificare il più performante e i migliori parametri per lo specifico modello
- projects, semplifica la definizione dei requisiti necessari per utilizzare un dato modello, includendo queste informazioni nel file di archivio, così che chiunque voglia utilizzarlo avrà tutto ciò che serve per poterlo fare
- models, un modo per unificare i modelli creati e farne il deployment utilizzando strumenti integrati, a prescindere dai diversi pacchetti utilizzati per crearli
Ci sono diverse novità per quanto riguarda il progetto MLflow:
- Microsoft si è aggiunta alla comunità di supporters, includendo l’API MLFlow in Azure ML
- MLflow 1.0, una versione più stabile dell’API, adatta per un uso continuativo e a lungo termine
- Due nuovi componenti:
-
- workflows, un modo semplice per creare e condividere pipeline fatte da diversi step
- model registry, che permette di organizzare diverse versioni dei modelli nel server
I video di queste tre keynotes sono disponibili online:
- Delta Lake by Ali Ghodsi & Michael Armbrust
- MLflow by Matei Zaharia
- Koalas by Reynold Xin & Brooke Wenig
Comments are closed.