Vai al paragrafo

Cos'è MLOps?

Copia URL

Con MLOps (Machine Learning Operations per esteso) si intende un insieme di metodologie per i flussi di lavoro progettato per semplificare il processo di distribuzione e gestione dei modelli di machine learning (ML). 

Ispirato ai principi DevOps e GitOps, MLOps punta a creare una serie di passaggi in continua evoluzione per l'integrazione dei modelli di ML nei processi di sviluppo software. Adottando un approccio MLOps, data scientist, ingegneri e team IT lavorano in sinergia per garantire che i modelli di machine learning siano sempre accurati e aggiornati con una semplificazione del ciclo di addestramento iterativo. Ciò prevede di applicare pratiche di monitoraggio, riaddestramento e deployment continui in modo da riuscire ad adattare i modelli all'evoluzione dei dati e garantire quindi prestazioni elevate nel tempo.

 

Leggi l'infografica su MLOps

I modelli di machine learning individuano degli schemi nei dati e li utilizzano per eseguire analisi predittive. Quando il modello si evolve e riceve nuovi dati su cui non è stato addestrato, insorge un problema chiamato "data drift" (deviazione dei dati). Il fenomeno del data drift si verifica naturalmente nel corso del tempo, quando le proprietà statistiche utilizzate per addestrare un modello di ML diventano obsolete, e può avere un impatto negativo sulle aziende se non viene affrontato e corretto.

Per evitarlo, è importante che le organizzazioni monitorino i propri modelli e mantengano la massima precisione predittiva. L'applicazione di metodologie MLOps va a vantaggio dei team in quanto migliora la qualità e l'accuratezza dei modelli predittivi e al contempo semplifica il processo di gestione, esclude il rischio del data drift e ottimizza l'efficienza dei data scientist.

Di seguito vengono illustrati alcuni vantaggi che MLOps può offrire in contesti aziendali:

Riproducibilità: le organizzazioni possono contare sulla coerenza degli esperimenti di ML, poiché un framework MLOps aiuta a monitorare e gestire le modifiche al codice, ai dati e ai file di configurazione associati ai diversi modelli. 

Integrazione continua e deployment continuo (CI/CD): i framework MLOps si integrano con le pipeline CI/CD e consentono l'automazione di test, convalida e distribuzione. In questo modo si accelerano i cicli di sviluppo e di distribuzione e si promuove una cultura del miglioramento continuo.

Maggiore collaborazione e tempistiche ridotte: MLOps favorisce la collaborazione efficace fra i team, elimina gli ostacoli e aumenta la produttività. Inoltre, l'automazione delle attività manuali consente alle organizzazioni di distribuire più modelli più velocemente e iterarli con maggiore frequenza per garantire la massima accuratezza.

Riduzione dei costi: applicare le modifiche e i miglioramenti necessari per garantire l'accuratezza del modello di ML è un'attività molto ripetitiva, soprattutto se eseguita manualmente. L'automazione introdotta con l'approccio MLOps aiuta le organizzazioni a risparmiare sulle risorse che potrebbero essere impiegate diversamente. Riduce anche il rischio di errori manuali e aumenta i benefici, generando più valore in meno tempo e snellendo il processo di deployment.

Miglioramento della governance e della conformità: le metodologie MLOps consentono alle organizzazioni di applicare le misure di sicurezza e di garantire la conformità alle normative sulla privacy dei dati. Il monitoraggio di prestazioni e accuratezza permette inoltre di individuare eventuali problemi di data drift nel modello dopo l'integrazione di nuovi dati e di adottare misure proattive per mantenere un elevato livello di accuratezza nel tempo.

L'adozione di un approccio MLOps permette di automatizzare le lunghe attività manuali necessarie per la manutenzione di un modello di machine learning e garantisce prestazioni e affidabilità continue. Migliorando la collaborazione fra i team, MLOps promuove lo sviluppo agile e i processi decisionali basati sui dati. 

MLOps, che consente di automatizzare e snellire il processo di sviluppo di modelli di ML, può apportare notevoli vantaggi in molti settori: Di seguito alcuni scenari di utilizzo di MLOps:

Manutenzione predittiva: previsione dei guasti e programmazione della manutenzione in maniera proattiva.

Rilevamento delle frodi: creazione e distribuzione di modelli che monitorano in continuo le transazioni alla ricerca di attività sospette.

Elaborazione del linguaggio naturale (NLP): verifica del funzionamento efficace e affidabile di applicazioni come chatbot, traduttori e altri modelli linguistici di grandi dimensioni (LLM).

Visione artificiale: supporto di attività quali analisi di immagini mediche, rilevamento di oggetti e guida autonoma. 

Rilevamento delle anomalie: individuazione dei discostamenti da una norma. I contesti di applicazione in questo caso sono svariati: sicurezza delle reti, processi industriali, dispositivi IoT, ecc.

Sanità: distribuzione di modelli capaci di elaborare diagnosi, definizione di previsioni sull'esito di una cura o analisi automatica di immagini mediche. 

Vendita al dettaglio: gestione degli inventari, elaborazione di previsioni della domanda, ottimizzazione dei prezzi e miglioramento dell'esperienza di acquisto dei clienti.

MLOps è un'evoluzione dell'approccio DevOps e si basa sugli stessi principi fondamentali di collaborazione, automazione e miglioramento continuo, applicati però allo sviluppo di modelli di ML. Sia MLOps che DevOps puntano a migliorare la collaborazione con il team operativo IT: un rapporto indispensabile per poter gestire in maniera ottimale un software o un modello di ML durante tutto il suo ciclo di vita. 

Mentre DevOps si concentra sull'automazione delle attività operative di routine e sulla standardizzazione degli ambienti per lo sviluppo e il deployment, MLOps ha una natura più sperimentale ed è dedicato principalmente alla ricerca di strategie per la gestione delle pipeline di dati. I dati utilizzati dai modelli di ML sono in continua evoluzione e il modello deve mutare di conseguenza, ma questo richiede un lavoro costante di adattamento e una messa a punto. 

Test, deployment e produzione sono diversi per MLOps rispetto a DevOps. Per questo motivo, in un progetto di ML i team spesso comprendono anche data scientist che non lavorano sugli aspetti più propriamente di ingegneria del software, ma che si concentrano sull'analisi esplorativa dei dati e sullo sviluppo e sperimentazione dei modelli. Alcune attività previste dall'approccio MLOps che in genere non vengono prese in considerazione dalle metodologie DevOps sono:

  • Svolgere test per la convalida dei dati, valutare la qualità del modello addestrato, convalidare il modello.
  • Creare una pipeline in più fasi che permetta di automatizzare il riaddestramento e la ridistribuzione del modello di ML quando si acquisiscono nuovi dati.
  • Tenere traccia delle statistiche dei dati e monitorare le prestazioni online del modello per osservare quando i valori si discostano dalle aspettative.

Infine, quando si parla di integrazione continua e deployment continuo (CI/CD) nell'approccio MLOps, CI non riguarda più solo il test e la convalida del codice e dei componenti (come nel caso di DevOps), ma prevede anche di testare e convalidare i dati, gli schemi dei dati e i modelli. CD invece non è più legato solo alla distribuzione di un singolo pacchetto software o un servizio, ma si concentra sul deployment di un sistema (una pipeline di addestramento di ML) che dovrebbe distribuire automaticamente un altro servizio (servizio di previsione del modello).

Non esiste un unico modo per creare e rendere operativi i modelli di ML, ma c'è sempre bisogno di raccogliere e preparare i dati, sviluppare i modelli, convertirli in applicazioni basate su intelligenza artificiale e trarre profitto da tali applicazioni.

Red Hat® OpenShift® include funzionalità chiave per adottare le metodologie MLOps in modo coerente in datacenter, cloud computing pubblico ed edge computing. Il suo approccio è suddiviso in 5 fasi:

Fase 1: raccolta e preparazione dei dati
Si raccolgono, si puliscono e si etichettano i dati strutturati o non strutturati in un formato adatto all'addestramento e al test dei modelli di ML.

Fase 2: addestramento dei modelli

I modelli di ML vengono addestrati tramite notebook Jupyter su Red Hat OpenShift.

Fase 3: automazione

Red Hat OpenShift Pipelines è una funzionalità di integrazione continua guidata dagli eventi che consente di creare pacchetti dei modelli di ML come immagini container.

Fase 4: deployment

Red Hat OpenShift GitOps automatizza il deployment dei modelli di ML in modo scalabile e in qualunque ambiente (cloud pubblico, privato, ibrido o all'edge).

Fase 5: monitoraggio

Grazie agli strumenti messi a disposizione dal nostro ecosistema di partner, le aziende possono monitorare i modelli e riaddestrarli e ridistribuirli se necessario, per mantenerli sempre aggiornati. Ogni volta che si acquisiscono nuovi dati, il ciclo ricomincia. 

Che si tratti di organizzazioni che stanno ancora valutando la possibilità di introdurre il machine learning in azienda o di realtà più avanzate che già lavorano con pipeline di ML, è utile comprendere come i flussi di lavoro e i processi aziendali si inseriscono nell'ambito dell'approccio MLOps. La maturità di un processo di machine learning si valuta in tre livelli in base al grado di automazione presente nel flusso di lavoro. 

Livello 0 di MLOps: si esegue tutto manualmente

In genere, i team che iniziano ad approcciarsi al machine learning utilizzano flussi di lavoro completamente manuali. In questa fase i data scientist che creano il modello sono sconnessi dagli ingegneri che operano sul modello e tutte le fasi del processo (preparazione dei dati, addestramento dei modelli, automazione, deployment e monitoraggio) sono svolte senza automazione. Non sono presenti né integrazione continua (CI), né deployment continuo (CD). Il controllo delle versioni per il nuovo modello viene adottato raramente e quando si distribuisce un nuovo modello la probabilità che questo non riesca ad adattarsi ai cambiamenti è molto elevata. 

Livello 1 di MLOps: pipeline di ML automatizzata

Introdurre l'automazione nel flusso di lavoro è utile se il modello deve adattarsi in modo proattivo a nuovi fattori. Con una pipeline automatizzata, i nuovi dati vengono inseriti nel ciclo per l'addestramento continuo (CT). In questo modo il modello può accedere alle informazioni più rilevanti per i servizi di previsione. 

Livello 2 di MLOps: sistema CI/CD automatizzato

In questa fase gli aggiornamenti al modello di ML sono rapidi e affidabili. Il modello viene riaddestrato con nuovi dati ogni giorno, se non ogni ora, e gli aggiornamenti vengono distribuiti su migliaia di server contemporaneamente. Questo sistema consente ai data scientist e agli ingegneri di operare in armonia in un ambiente unico e collaborativo. 

Meglio creare da zero o acquistare?

Le risorse e le tempistiche sono due aspetti da tenere in considerazione quando si decide se acquistare una piattaforma MLOps o crearla da zero. Realizzare ex novo un'infrastruttura di ML funzionante può richiedere oltre un anno e può volerci ancora più tempo per creare una pipeline che produca effettivamente valore per l'organizzazione. Inoltre, occorre ricordare che un'infrastruttura richiede anche un team dedicato che si occupi della gestione del ciclo di vita. Se il team interno non dispone delle competenze e non ha la possibilità di acquisirle, investire su una piattaforma MLOps end to end è la soluzione giusta. 

Red Hat OpenShift AI coniuga le comprovate funzionalità di Red Hat OpenShift e di Red Hat OpenShift Data Science. Si tratta di una piattaforma applicativa coerente e adatta ai contesti enterprise che favorisce la collaborazione tra i data scientist e gli sviluppatori software e permette di integrare l'intelligenza artificiale nelle applicazioni in maniera sicura, uniforme e scalabile.

Red Hat OpenShift AI include funzionalità chiave per adottare le metodologie MLOps in modo coerente in datacenter, cloud computing pubblico ed edge computing. 

Kubeflow è un framework Kubernetes native e open source per lo sviluppo, la gestione e l'esecuzione dei carichi di lavoro di machine learning. Kubeflow eseguito su OpenShift facilita la standardizzazione di MLOps perché aiuta a gestire i progetti e permette di sfruttare tutti i vantaggi del cloud computing. Alcuni degli scenari di utilizzo principali di Kubeflow includono la preparazione dei dati, l'addestramento, la valutazione, l'ottimizzazione e il deployment dei modelli.

Approfondisci

Articolo

Cosa sono gli operatori Red Hat OpenShift?

Red Hat OpenShift Operators automate the creation, configuration, and management of instances of Kubernetes-native applications.

Articolo

Scopri perché scegliere Red Hat OpenShift Serverless

Red Hat OpenShift Serverless estende Kubernetes per l'implementazione e la gestione di carichi di lavoro serverless.

Articolo

Perché scegliere Red Hat OpenShift Service Mesh

Red Hat OpenShift Service Mesh offre un metodo unificato per la connessione, la gestione e il monitoraggio delle applicazioni basate su microservizi.

Scopri di più su OpenShift

Prodotti

Una piattaforma applicativa aziendale che offre servizi verificati per consentire la distribuzione delle app sulle infrastrutture preferite.

Una soluzione di storage software defined che fornisce uno spazio di archiviazione dati permanente durante l'avvio e l'arresto dei container tra gli ambienti.

Una sandbox completamente supportata per lo sviluppare, addestrare e testare i modelli di machine learning (ML) in modo rapido nel cloud pubblico prima di distribuirli in produzione.

Una soluzione che permette di controllare cluster e applicazioni Kubernetes da una singola console dotata di criteri di sicurezza integrati.

Risorse

Serie Open Answers: Cos'è Red Hat OpenShift?

Sviluppo cloud native con Red Hat e Amazon Web Services

Formazione

Corso di formazione gratuito

Running Containers with Red Hat Technical Overview

Corso di formazione gratuito

Developing Cloud-Native Applications with Microservices Architectures

Corso di formazione gratuito

Containers, Kubernetes and Red Hat OpenShift Technical Overview