MLOps: vantaggi, principi e strumenti open source
Nei campi dello sviluppo software e delle operazioni, esistono da molto tempo varie best practice e metodologie. La più nota è DevOps, un acronimo formato dalle parole development (sviluppo) e operations (operazioni), che mira a colmare il divario tra queste aree di competenza. Il suo obiettivo è accelerare il ciclo di vita dello sviluppo software, fornendo allo stesso tempo aggiornamenti e release di alta qualità in modo continuo. Questa metodologia, matura e ampiamente adottata, include e trascende lo sviluppo software agile ed è supportata da diverse soluzioni tecnologiche. Con l’emergere di nuovi paradigmi tecnologici come Big Data, intelligenza artificiale (AI) e 5G, le metodologie DevOps devono però adattarsi a cicli di vita e processi sempre più complessi, che vanno oltre le tradizionali soluzioni software.
Questo divario si concretizza in una delle maggiori sfide nelle pratiche di AI oggi: l’operazionalizzazione delle soluzioni di AI. Molte aziende cercano di trasformare le intuizioni dei data scientist in valore tangibile, cosa che si è rivelata un’impresa ardua. Richiede infatti l’unificazione di molteplici processi tra team diversi, dalla definizione degli obiettivi aziendali all’acquisizione dei dati, lo sviluppo e il deployment dei modelli. Questa unificazione si ottiene attraverso un insieme di best practice per la comunicazione e la collaborazione tra i data engineer che ottengono i dati, i data scientist che preparano i dati e sviluppano il modello, e le operations che servono i modelli. È in questa contesto che è stato concepito MLOps, che aspira a semplificare il processo di operazionalizzazione dell’AI.
> Leggi anche: Tipologie e algoritmi di machine learning
Che cos’è MLOps?
MLOps, acronimo di Machine Learning Operations è una disciplina che si occupa di unire lo sviluppo di modelli di machine learning (ML) con le pratiche operative del ciclo di vita del software. In altre parole, si propone di ottimizzare e automatizzare l’intero processo di creazione, implementazione e manutenzione dei modelli di ML, dalla fase concettuale alla produzione e al monitoraggio continuo.
Analogamente a come DevOps ha rivoluzionato lo sviluppo software tradizionale, MLOps mira a colmare il divario tra data science e ingegneria operativa. Il suo obiettivo primario è semplificare e accelerare il deployment di modelli di machine learning robusti e scalabili, garantendo al contempo qualità, riproducibilità e conformità normativa.
I vantaggi di implementare MLOps in azienda
MLOps offre una serie di vantaggi alle organizzazioni che cercano di snellire la distribuzione e la gestione dei modelli di apprendimento automatico. I vantaggi principali includono una migliore collaborazione e tempi di consegna ridotti, maggiore riproducibilità, migliore governance e conformità e riduzione dei costi.
- Miglioramento della collaborazione e riduzione dei tempi di consegna: MLOps abbatte le barriere interdisciplinari, promuovendo una collaborazione fluida tra data scientist, ingegneri ML e team IT. Superando i workflow manuali tradizionali, spesso fonte di inefficienze e incongruenze, MLOps instaura un ecosistema di automazione che riduce drasticamente gli errori di deployment. Questa sinergia operativa consente alle organizzazioni di distribuire più modelli più velocemente e iterare più frequentemente, garantendo che i modelli siano precisi e aggiornati.
- Riproducibilità: un vantaggio fondamentale di MLOps è la capacità di riprodurre esperimenti e risultati di apprendimento automatico. Ciò è possibile grazie alla possibilità di tenere traccia e gestire le modifiche al codice, ai dati e ai file di configurazione associati a diversi modelli. Questa riproducibilità garantisce la coerenza nei progetti di apprendimento automatico e consente ai team di ripercorrere i passaggi precedenti, comprendere le decisioni prese e riprodurre i risultati in modo affidabile.
- Miglioramento della governance e della conformità: le metodologie MLOps consentono alle organizzazioni di applicare misure di sicurezza e garantire la conformità alle normative sulla privacy dei dati. Il monitoraggio delle prestazioni è una parte fondamentale del mantenimento della governance e della conformità. Questo monitoraggio consente alle organizzazioni di identificare potenziali problemi e adottare misure proattive per mantenere nel tempo un’elevata accuratezza predittiva.
- Riduzione dei costi: l’automazione introdotta da MLOps nel ciclo di vita dello sviluppo ML si traduce in significativi risparmi economici. Processi iterativi come il fine-tuning dei modelli, tradizionalmente onerosi in termini di tempo e risorse se eseguiti manualmente, beneficiano di una sostanziale riduzione dei costi grazie all’automazione. Questo non solo minimizza gli errori umani, ma ottimizza l’allocazione delle risorse, liberando capitale umano per attività a più alto valore aggiunto.
Questi vantaggi di MLOps vanno oltre i miglioramenti tecnici. Consentono alle organizzazioni di sviluppare, distribuire e gestire modelli di apprendimento automatico in modo più efficiente, collaborativo e affidabile, portando in ultima analisi a un maggiore successo aziendale nelle loro iniziative di intelligenza artificiale.
I principi di MLOps
MLOps (Machine Learning Operations) è un paradigma che comprende best practice, concetti e una cultura di sviluppo per la concettualizzazione, l’implementazione, il monitoraggio, il deployment e la scalabilità end-to-end di prodotti di machine learning. Si appoggia si una serie di principi fondamentali, quali:
- Versionamento: proprio come il controllo delle versioni è essenziale nello sviluppo di software, è fondamentale anche in MLOps. Questo principio si estende non solo al codice, ma anche ai dataset, ai parametri dei modelli e alle configurazioni e garantisce una tracciabilità completa, la capacità di replicare o di tornare alle versioni precedenti.
- Test: MLOps enfatizza il test completo in tutte le fasi del ciclo di vita di ML. Ciò include il test del codice, dei dati, dei modelli e dell’infrastruttura per garantire la qualità e l’affidabilità dei modelli ML.
- Automazione: un obiettivo chiave di MLOps è automatizzare il maggior numero possibile di passaggi del flusso di lavoro dell’apprendimento automatico. Questo include attività ripetitive come l’addestramento, il test e la distribuzione dei modelli, nonché il monitoraggio e la gestione dei modelli in produzione. I trigger per l’addestramento e la distribuzione automatizzati del modello possono essere eventi del calendario, messaggistica, eventi di monitoraggio, modifiche ai dati, al codice di addestramento del modello e al codice dell’applicazione.
- Riproducibilità: garantire che gli esperimenti di machine learning possano essere riprodotti con gli stessi risultati. Questo include il controllo delle versioni di i dati, modelli, iperparametri e ambiente di esecuzione.
- Integrazione e distribuzione continua (CI/CD): MLOps estende i principi CI/CD dallo sviluppo di software all’apprendimento automatico. Ciò significa che le modifiche ai dati, al codice del modello o all’infrastruttura possono essere testate, convalidate e distribuite automaticamente in produzione, con conseguente distribuzione più rapida e affidabile dei modelli. > Leggi anche: Metodo CI/CD: una best practice DevOps
- Monitoraggio: MLOps prevede il monitoraggio continuo delle prestazioni del modello in produzione. Questo monitoraggio aiuta a identificare problemi come la deriva del modello, in cui le prestazioni del modello si deteriorano nel tempo a causa di modifiche nei dati o nell’ambiente.
Strumenti open source
L’adozione di MLOps è facilitata da un ricco ecosistema di strumenti open source. Eccone alcuni:
- Kubeflow: è un framework Kubernetes native e open source per lo sviluppo, la gestione e l’esecuzione dei carichi di lavoro di machine learning. Offre un’architettura modulare e scalabile che consente di gestire installazioni semplici, adattabili ed efficienti in base alle proprie esigenze
- MLflow: è una piattaforma che semplifica lo sviluppo del machine learning. Include funzionalità quali il tracciamento degli esperimenti, l’impacchettamento del codice in esecuzioni riproducibili e la condivisione e distribuzione dei modelli. MLflow offre un insieme di API leggere che possono essere utilizzate con qualsiasi applicazione o libreria di machine learning esistente (TensorFlow, PyTorch, XGBoost)
- DVC ( Data Version Control): parte dell’ecosistema Iterative.ai, DVC è uno strumento di controllo delle versioni dei dati open-source che si integra con Git. Consente di tracciare e gestire grandi set di dati, semplificando la riproducibilità degli esperimenti e il ritorno a versioni precedenti.
- ClearML: sviluppato da Allegro.ai, ClearML offre strumenti open-source per accelerare la distribuzione dei prodotti. Funziona come uno spazio dedicato all’esplorazione, al coordinamento, alla configurazione e alla creazione di archivi dati.
- MLReef: si tratta di un progetto open-source basato su Git. Fornisce un hub centralizzato per la gestione del processo di sviluppo del machine learning. MLReef gestisce il lavoro nei repository, consentendo un miglioramento iterativo del codice e dei modelli.
- DataRobot: la piattaforma MLOps di DataRobot fornisce un luogo centralizzato per lo sviluppo, dove i modelli in fase di sviluppo possono essere configurati, monitorati e gestiti indipendentemente da come, dove o quando sono stati creati. Include un registro ben organizzato dove tutti i modelli in sviluppo possono essere archiviati e gestiti.
- Streamlit: è uno strumento Python che facilita lo sviluppo di applicazioni web per la visualizzazione dei dati. La sua semplicità d’uso lo rende ideale per creare rapidamente dashboard interattive per monitorare le prestazioni dei modelli.
La selezione dello strumento MLOps ottimale richiede una valutazione attenta delle esigenze progettuali, dell’infrastruttura preesistente e delle competenze del team. Fattori chiave da considerare includono: la scalabilità, l’interoperabilità con i sistemi esistenti, la curva di apprendimento e il supporto della community.
Una delle principali sfide future per MLOps è la crescente complessità dei modelli di machine learning e delle relative pipeline. Con il crescente utilizzo di tecniche di deep learning e l’emergere di nuovi paradigmi, come il federated learning, gestire e distribuire questi modelli complessi sta diventando sempre più difficile. Inoltre, la crescente enfasi sull’automazione e sull’intelligenza artificiale nelle operazioni IT (AIOps) ha implicazioni significative per MLOps.
Man mano che i modelli di machine learning vengono sempre più implementati in settori critici, come l’assistenza sanitaria, la finanza e i trasporti, garantire la loro affidabilità, sicurezza e correttezza è fondamentale. I futuri framework MLOps devono dare priorità a questi aspetti integrando funzionalità come la convalida del modello, la spiegazione e il monitoraggio continuo per mitigare i rischi e costruire fiducia nei sistemi di machine learning.
Fonti:
Diaz-De-Arcaya, J., Torre-Bastida, A. I., Zárate, G., Miñón, R., & Almeida, A. (2023). A joint study of the challenges, opportunities, and roadmap of mlops and aiops: A systematic survey. ACM Computing Surveys, 56(4), 1-30.
Kreuzberger, D., Kühl, N., & Hirschl, S. (2023). Machine learning operations (mlops): Overview, definition, and architecture. IEEE access, 11, 31866-31879.
Kumara, I., Arts, R., Di Nucci, D., Van Den Heuvel, W. J., & Tamburri, D. A. (2023). Requirements and reference architecture for MLOps: insights from industry. Authorea Preprints.
Machine learning: Cos’è MLOps? (2023). Redhat.com. https://www.redhat.com/it/topics/ai/what-is-mlops
ml-ops.org. (n.d.). Ml-Ops.org. Retrieved August 5, 2024, from https://ml-ops.org/content/mlops-principles
Wazir, S., Kashyap, G. S., & Saxena, P. (2023). Mlops: A review. arXiv preprint arXiv:2308.10908.