ALIDA
Introduzione
ALIDA è una Data Science & Machine Learning (DSML) Platform progettata per semplificare la gestione, l'esecuzione e il monitoraggio di progetti di data science e machine learning. La piattaforma offre un ambiente integrato che permette di:
- Gestire dataset e modelli di machine learning
- Creare, eseguire e monitorare workflow basati su microservizi
- Lavorare su dati batch e streaming anche all'interno dello stesso workflow
- Facilitare scalabilità e tracciabilità delle elaborazioni
- Permettere a utenti non esperti di sviluppo la creazione di applicazioni di analisi dati
Tipologie di Utenti (Attori)
ALIDA è pensata per diversi tipi di utenti, ognuno con il suo ruolo e le sue necessità:
- Citizen: è chi, senza essere sviluppatore o data scientist, sfrutta l'interfaccia grafica per creare, configurare ed eseguire workflow in modo intuitivo.
- Data Scientist: usa ALIDA per sviluppare modelli avanzati, impostare analisi sofisticate e ottimizzare workflow di machine learning.
- Data Engineer: si occupa dell'integrazione di nuove fonti dati, della gestione dei flussi e dell'ottimizzazione dei processi.
- Administrator: gestisce utenti, permessi e configura i parametri operativi della piattaforma.
- Developer: crea nuovi microservizi o integra API esterne, estendendo il catalogo di ALIDA.
Concetti base
In ALIDA tutto ruota intorno ad alcuni concetti fondamentali:
- I Service sono micro-applicazioni indipendenti che elaborano input e producono output.
- I Workflow sono sequenze di Service che usano dati e modelli.
- Gli Asset rappresentano risorse fondamentali come dataset, modelli, sorgenti dati e i Workflow stessi.
Ogni Asset ha un livello di accesso:
- Private: visibile e modificabile solo dal proprietario
- Team: visibile e modificabile dai membri del team
- Public: visibile a tutti
e vale la seguente regola di visibilità:
- I Workflow "Team" non possono utilizzare asset "Private"
- I Workflow "Public" non possono utilizzare asset "Team" o "Private"
Project
Un Project è uno spazio di lavoro organizzato dove l'utente può raccogliere e gestire tutti gli elementi necessari per un determinato obiettivo o presentazione. Come una scrivania ben ordinata, un Project permette di:
- Raccogliere dataset, modelli, e workflow in un unico spazio
- Dare un nome significativo al progetto
- Accedere rapidamente a tutto il necessario per uno specifico caso d'uso
Esempio pratico
Project "Previsione Vendite 2025" che raccoglie dataset di vendita, modelli di regressione, e workflow di predizione.
Workflow Designer
ALIDA offre un'interfaccia grafica per costruire Workflow utilizzando Dataset, Service e Model.
Ogni Service:
- Può essere collegato ad altri Service attraverso archi
- Può essere collegato ad altri asset come Dataset e Model addestrati
- Riceve parametri configurabili (es. il valore di "K" per un K-Means)
- Può richiedere risorse specifiche (es. GPU per il training)
Esecuzione dei Workflow
ALIDA consente di:
- Eseguire manualmente un Workflow
- Schedulare esecuzioni periodiche con espressioni Cron
- Esportare il Workflow come Docker Compose per l'esecuzione mediante Docker (su una macchina locale, server, etc...)
Datasource
Una Datasource in ALIDA è un metadato che contiene informazioni utili alla connessione ad uno storage (es. URL, tipo di storage, chiavi di accesso, etc…)
Ogni utente registrato in piattaforma dispone di uno spazio personale dedicato alla gestione delle proprie risorse. Nel dettaglio, ogni utente avrà di default:
- Una Datasource basato su MinIO con livello di accesso Private
- Una Datasource basato su MinIO per ciascun "Team" di appartenenza (se esiste)
- Accesso al Datasource Public
L’utente è libero di creare nuove Datasource, puntando anche a storage esterni, allo scopo di rendere i propri dati visibili e facilmente gestibili all’interno della piattaforma.
Per ulteriori informazioni visita Asset > Data Source
Sistema di Notifica
Il sistema di notifica permette agli utenti di monitorare l'avanzamento e lo stato delle loro elaborazioni in tempo reale tramite Eventi.
Un Evento è un aggiornamento dinamico inviato dal generico Service in esecuzione allo scopo di informare l'utente sullo stato di:
- Processi
- Elaborazioni
- Eventuali risultati intermedi o errori
consentendo attività cruciali quali:
- Monitorare lo stato di esecuzione dei Workflow
- Identificare rapidamente problemi o errori durante l'elaborazione
- Visualizzare risultati intermedi senza attendere il completamento
- Prendere decisioni informate basate sul feedback immediato
Architettura del sistema di notifica
- Ogni Service può emettere notifiche durante l'esecuzione
- Le notifiche vengono inviate tramite Kafka su topic specifici
- Un sistema di gestione:
- Inoltra le notifiche al browser in modalità push
- Salva tutte le notifiche nel catalogo per consultazioni successive
Tipi di notifiche supportate
- Log di esecuzione
- Immagini (es. grafici, anteprime)
- Parametri aggiornati
- File compressi (es. zip)
- File HTML
- Altro contenuto utile per il monitoraggio o il debug
Esempio pratico
Durante il training di un modello K-Means, il Service invia ogni 10 iterazioni:
- Un'immagine del clustering corrente
- Un file di log con i valori di costo (inertia)
- Un file ZIP con snapshot intermedi del modello
L'utente vede tutto in tempo reale, direttamente dal browser.
Storia degli Asset
ALIDA registra per ogni dataset o modello prodotto:
- Workflow che l'ha generato
- Service che l'ha elaborato
- Parametri utilizzati
- Storage di salvataggio
- Formato e caratteristiche tecniche
Questo permette auditing completo e riproducibilità dei processi.
Esempio pratico
Model "Segmentazione Clienti 2025" salvato nello storage “S”, addestrato dal workflow “X”, con l’esecuzione del dd/mm/yyyy hh:mm:ss, dal service K-MEANS “Y” (di versione “V” creato dall’utente “U”) con i parametri “A,B e C”, utilizzando i dataset “D” etc …
Scalabilità
Verticale
I Service possono richiedere GPU.
ALIDA può schedulare il deploy su nodi che dispongono di GPU.
Esempio pratico
Training di una rete neurale su immagini, deployato su nodo GPU.
Orizzontale
I Workflow batch intensivi possono essere distribuiti tramite Spark.
I processi vengono suddivisi in "worker" e deployati su nodi diversi del cluster per una elaborazione parallela.
Architettura e Integrazione
ALIDA si avvale di diversi strumenti Open Source per fornire un ambiente Data Science completo:
- MinIO per lo storage distribuito di dataset e modelli
- Kafka per la gestione di dati in streaming
- Spark per elaborazioni dati distribuite
- Seldon per il deployment di modelli in produzione
- Argo per l'orchestrazione di Workflow
L'architettura è basata su microservizi deployati su Kubernetes.