Salta al contenuto principale

ChaM3Leon: da workflow visuale a Machine Learning pipeline

star ellipse

Devs /

ChaM3Leon: da workflow visuale a Machine Learning pipeline

Trasforma le tue idee di Machine Learning in workflow eseguibili senza scrivere codice. ChaM3Leon abbatte le barriere tecniche tra design e implementazione grazie a un approccio model-driven e all'integrazione intelligente con l'IA generativa.

Foto profilo di Stefano Di Meo

Stefano Di Meo

fa 8 min.

Nello sviluppo di soluzioni di Machine Learning, il problema ricorrente non è la disponibilità di algoritmi o framework, ma la traduzione di un'idea sperimentale in una pipeline eseguibile, riproducibile e manutenibile. 
La costruzione di un workflow ML richiede l'orchestrazione di fasi interdipendenti (acquisizione dati, feature engineering, addestramento, validazione e deployment) che impongono competenze eterogenee e una conoscenza approfondita dei framework sottostanti.
Per colmare questo divario nasce quindi ChaM3Leon, integrando progettazione visuale, generazione di codice template-based e arricchimento tramite Large Language Models (LLM) in un'unica piattaforma.

ChaM3Leon è, di fatto, una piattaforma open-source progettata come ambiente integrato per la generazione automatica di workflow di Machine Learning. Il sistema combina un'interfaccia grafica drag-and-drop basata su React Flow, Jinja  (un motore di templating) per la generazione strutturale del codice, e un layer di intelligenza artificiale generativa che arricchisce gli output con best practice (“MLOps”), error handling e ottimizzazioni contestuali.

Il ruolo della piattaforma è quello di abbattere le barriere tecniche tra la concezione di una pipeline ML e la sua implementazione concreta, permettendo agli utenti di concentrarsi sulla logica del processo anziché sui dettagli sintattici del framework. 
ChaM3Leon è progettato per privilegiare workflow chiari e codice interpretabile, con un'architettura che consenta di aumentare progressivamente la complessità delle pipeline man mano che crescono le esigenze del progetto.


Chem3leon schema della struttura
 

In questa prospettiva, ChaM3Leon ambisce ad essere una piattaforma abilitante per team di data science con competenze eterogenee, costruendo un ponte tra la semplicità della rappresentazione visuale e la potenza espressiva del codice Python. La denominazione richiama l'idea di un sistema capace di adattarsi rapidamente a differenti contesti e requisiti, proprio come il camaleonte si adatta al suo ambiente.

 

Approccio model-driven e generazione ibrida

ChaM3Leon adotta, quindi, un approccio model-driven ibrido rispetto alla generazione di pipeline ML. L'idea alla base è che il valore di uno strumento di workflow non risiede nella sofisticazione dell'output generato in sé, ma nella sua capacità di produrre codice utilizzabile in esercizio: sintatticamente corretto, conforme alle specifiche del framework target e arricchito con pratiche ingegneristiche consolidate.

Durante la progettazione del sistema è emerso un vincolo tipico dei contesti reali: la creazione manuale di pipeline ML richiede competenze approfondite in framework specifici come Metaflow, la comprensione di pattern architetturali complessi e la capacità di gestire aspetti infrastrutturali che spesso esulano dalle competenze core di un data scientist. Questa barriera tecnica rallenta l'iterazione sperimentale e limita l'accessibilità delle best practice delle Machine Learning Operations a team ristretti di specialisti.

Per questi motivi si è scelto di privilegiare due scelte operative:

  • Separare la rappresentazione concettuale del workflow dalla sua implementazione eseguibile, abilitando trasformazioni automatiche che preservano la semantica del modello originale;
  • Combinare generazione deterministica (template-based) con arricchimento intelligente (LLM), mantenendo una traiettoria evolutiva: i modelli e le pipeline possono essere raffinati e sostituiti progressivamente, senza compromettere l'impianto complessivo della piattaforma.

 

Schermata di Cham3leon


Workflow visuali: dai nodi al codice

ChaM3Leon, per quanto detto precedentemente, ha la capacità di trasformare una composizione visuale di nodi e archi in codice Python eseguibile, in modo che la logica del workflow sia definibile senza scrivere una riga di codice. L'esecuzione è strutturata in un flusso guidato che conduce dall'interfaccia di design all'ambiente di esecuzione. Una volta completata la generazione, il codice viene trasferito automaticamente dal backend Django al container ml_runner tramite connessione SSH, organizzato in strutture di directory che prevengono conflitti e facilitano l'isolamento delle risorse. Contestualmente, l'utente viene reindirizzato verso un'interfaccia Jupyter già configurata all'interno del medesimo container, dove può visualizzare, analizzare e modificare il codice prima dell'esecuzione. Il link generato dalla piattaforma incorpora parametri che identificano univocamente il workflow e il file corrispondente, garantendo una transizione fluida tra ambiente di progettazione e ambiente di esecuzione.

Su questa base si innestano due requisiti che rendono il sistema realmente utilizzabile in contesto operativo. Il primo riguarda la serializzazione strutturata: il workflow visuale viene tradotto in formato JSON, catturando la topologia del grafo, i metadati di ciascun nodo, i decoratori Metaflow e i parametri di configurazione, senza alcuna perdita di informazione semantica. Il secondo requisito è la portabilità: l'utente può scaricare il JSON di configurazione per backup o versionamento manuale, mantenendo un modello di gestione del workflow aperto e indipendente dalla piattaforma stessa.

 

Templating intelligente con Jinja

Una caratteristica strutturale di ChaM3Leon è l'utilizzo del motore di templating Jinja per trasformare la rappresentazione JSON del workflow in codice Python eseguibile. Questo passaggio è essenziale per garantire correttezza strutturale: la generazione deterministica assicura che aspetti critici (la corretta concatenazione degli step tramite self.next(), la definizione dei decoratori @step, la struttura della classe FlowSpec) siano sempre corretti, eliminando intere classi di errori sintattici.

Il template Jinja definisce la struttura comune del codice Metaflow con segnaposto dinamici, che vengono popolati a partire dai metadati estratti dalla configurazione JSON. La scelta di Jinja come motore si fonda sulla sua capacità di arricchire template testuali con cicli iterativi, costrutti condizionali e macro riutilizzabili, adattandosi dinamicamente al numero di step e alla complessità del workflow definito dall'utente.

Dal punto di vista ingegneristico, questa generazione template-based è impostata come un processo modulare e replicabile. Il template definisce il "come" (la struttura Python), mentre il JSON del workflow definisce il "cosa" (la logica e la topologia), implementando un modello dichiarativo guidato dai metadati.

Metaflow Cham3leon

 

Funzionalità di arricchimento: integrazione con Large Language Models

Per rendere la piattaforma utile anche oltre la generazione di scheletri strutturali, ChaM3Leon integra una funzionalità di arricchimento del codice costruita sull'integrazione con Large Language Models (ChatGPT, Claude, Gemini). L'obiettivo è produrre implementazioni production-ready senza richiedere interventi manuali significativi.

Esempio di Cham3leon

Il processo di arricchimento si articola come un pipeline multi-fase con un filo logico preciso.
L'utente, una volta completata la definizione visuale del workflow, fornisce una descrizione testuale del comportamento desiderato tramite una casella di prompt integrata nell'interfaccia. Questa descrizione viene combinata con un system prompt che configura l'LLM stabilendo istruzioni precise sul formato e sullo stile dell'output atteso. A partire da queste premesse, il codice scheletro generato dal motore di templating viene inviato al modello linguistico insieme al contesto fornito dall'utente, implementando un pattern di prompting stratificato che bilancia vincoli strutturali e flessibilità contestuale. La temperatura del modello viene calibrata a 0.3 (significativamente più bassa del valore di default) per favorire un output deterministico e consistente, caratteristica prioritaria rispetto alla creatività quando si tratta di generazione di codice.
La risposta del modello viene post-processata per rimuovere eventuali artefatti di formattazione e il codice arricchito sovrascrive il template iniziale, risultando immediatamente pronto per il deployment nell'ambiente di esecuzione.

Il valore di questa scelta è duplice: consente di produrre codice con best practice, gestione degli errori e logging strutturato senza richiedere expertise avanzata; mantiene il processo controllabile: l'arricchimento LLM è opzionale, con un meccanismo di fallback graceful che garantisce il completamento della generazione base anche in caso di indisponibilità del servizio.

Worflow di Cham3leon
 

Workflow di esecuzione operativa


Il codice generato e arricchito è pensato come output utilizzabile direttamente dall'utente tramite un workflow di deployment dedicato. L'esecuzione è strutturata in un flusso guidato che conduce dall'interfaccia di design all'ambiente di esecuzione. Una volta completata la generazione, il codice viene trasferito automaticamente dal backend Django al container ml_runner tramite connessione SSH, organizzato in strutture di directory che prevengono conflitti e facilitano l'isolamento delle risorse. Contestualmente, l'utente viene reindirizzato verso un'interfaccia Jupyter già configurata all'interno del medesimo container, dove può visualizzare, analizzare e modificare il codice prima dell'esecuzione. Il link generato dalla piattaforma incorpora parametri che identificano univocamente il workflow e il file corrispondente, garantendo una transizione fluida tra ambiente di progettazione e ambiente di esecuzione. La piattaforma orchestra l'intero processo e restituisce un ambiente strutturato, con il codice pronto per essere lanciato tramite il comando Metaflow, quale permette tracking automatico di parametri, metriche e artefatti durante le esecuzioni, facilitando comparazione di run e identificazione di configurazioni ottimali.

 

Risultati e validazione

L'analisi dei risultati ottenuti dalla sperimentazione conferma l'efficacia dell'approccio model-driven ibrido adottato. La valutazione è stata condotta su più dimensioni.

Tutti i workflow generati includono correttamente gli step start ed end obbligatori, implementano catene di transizione valide e utilizzano i decoratori in modo conforme alle specifiche di Metaflow. La validazione semantica ha verificato l'assenza di dead code, step irraggiungibili o cicli nel grafo di esecuzione.

L'analisi qualitativa del codice arricchito tramite LLM ha evidenziato l'incorporazione di logging strutturato, validazione di input, gestione di edge case e ottimizzazioni che sarebbero tipicamente assenti in codice generato puramente in modo meccanico. L'integrazione LLM aggiunge valore tangibile oltre la generazione strutturale, arricchendo le implementazioni con pattern qualitativi derivanti dal pre-training su vasti corpus di codice open-source.

Il sistema ha mostrato tempi di generazione competitivi e buona scalabilità al crescere della complessità dei workflow, con l'architettura containerizzata che facilita deployment distribuito e isolamento tra esecuzioni multiple. L'integrazione nativa con Metaflow abilita inoltre la distribuzione dell'elaborazione su infrastrutture cloud.

 

Conclusione

Il valore di ChaM3Leon non sta nella singola feature, ma nella continuità del flusso all'interno di un'unica piattaforma governata. La scelta di combinare generazione template-based e arricchimento LLM è coerente con i vincoli reali dello sviluppo ML, dove la correttezza strutturale del codice è imprescindibile ma l'incorporazione di best practice contestuali rappresenta un differenziale competitivo. È un punto di partenza solido, che consente di generare pipeline funzionali senza introdurre fragilità.

La prospettiva più interessante è l'evoluzione: con l'estensione del supporto a strutture condizionali e iterative (coerenti con Metaflow 2.18), l'automazione dell'esecuzione remota via SSH e l'integrazione con sistemi di versioning e collaboration, ChaM3Leon può trasformarsi da strumento di generazione di codice a piattaforma MLOps enterprise-grade. Smart Shaped ha già confermato l'intenzione di proseguire gli sviluppi in questa direzione. In questo senso, è una piattaforma pensata per crescere in modo incrementale, non un prototipo isolato.