Corso
MLOps, ovvero Machine Learning Operations, è un aspetto essenziale del flusso di lavoro di machine learning e si sta consolidando come disciplina a sé. Combina il machine learning con le migliori pratiche dell’ingegneria del software per garantire che i modelli passino dalla fase di sperimentazione alla produzione, riducendo al contempo il debito tecnico nei data team.
Per avere successo con il machine learning su larga scala, è fondamentale considerare il livello di maturità MLOps della tua organizzazione. Spesso esistono barriere al deployment dei modelli, come infrastruttura, cultura organizzativa o l’impossibilità di riaddestrare il modello quando deraglia. Questo può portare a ottenere molto meno valore dal machine learning del previsto (o peggio, a potenziali danni per gli stakeholder che interagiscono con i tuoi modelli). Il risultato può essere una sfiducia nella capacità del data team di generare valore con il machine learning. Per realizzare appieno il potenziale del machine learning e dell’AI, serve un approccio MLOps ben congegnato.
MLOps permette anche ai data scientist di concentrarsi su ciò che conta davvero: raccogliere e pulire i dati, sviluppare modelli e utilizzare le tecniche giuste. Questo perché MLOps aumenta sensibilmente l’automazione in ogni fase del ciclo di vita del machine learning.
Questo articolo presuppone che tu abbia una conoscenza operativa di MLOps e ne comprenda l’importanza; per maggiori informazioni su MLOps, dai un’occhiata ai nostri articoli Introduzione a MLOps e Best practice MLOps.
Perché usare i livelli di maturità?
MLOps non riguarda solo l’adozione di strumenti o il cambiare modo di lavorare. L’implementazione richiede un approccio olistico all’uso di strumenti e tecnologie per abbattere i silos all’interno dei team tecnici e aumentare l’automazione. Questo può significare ristrutturare un’organizzazione o spostare persone, ma la soluzione di ogni azienda sarà diversa e unica.
Considerare MLOps attraverso la lente della maturità, ovvero una misura di quanto la tua azienda sia avanti nel processo di implementazione MLOps, aiuta a stabilire dove si trova un’organizzazione e cosa può fare per aumentare la maturità, oltre a chiarire cosa offrirà questo incremento di maturità. Significa anche che la maturità MLOps può scalare con l’organizzazione. Le piccole aziende con pochi modelli non avranno bisogno dello stesso livello di maturità di organizzazioni grandi e complesse. Tuttavia, anche realtà piccole il cui valore principale dipende dal machine learning avranno bisogno di una pratica MLOps relativamente matura.
Vale anche la pena sottolineare che scalare il modello di maturità non è lineare. La tua organizzazione può avere elementi della pratica MLOps con alta maturità, ma bassa maturità in altre aree. Nella sezione seguente, illustreremo il modello di maturità MLOps di Microsoft, che offre una panoramica olistica di come MLOps evolve all’interno di un’organizzazione.
Il modello di maturità MLOps di Microsoft
Il modello di maturità MLOps di Microsoft definisce tre ampie dimensioni con cui valutare la maturità MLOps:
- Persone: I diversi ruoli all’interno di un data team e come interagiscono tra loro
- Ciclo di vita del Machine Learning: Come viene gestito il ciclo di vita del machine learning, dalla raccolta dati alla creazione e al rilascio del modello.
- Applicazione: Come i modelli di machine learning vengono testati, implementati, distribuiti e riaddestrati.
Inoltre, il modello di maturità MLOps di Microsoft definisce cinque stadi di maturità per una pratica MLOps, come segue:
- Nessun MLOps: Sistemi eterogenei e a scatola nera con team dati isolati e training, deployment e test dei modelli eseguiti manualmente.
- DevOps ma non MLOps: Il data team addestra i modelli mentre un team separato li distribuisce. Il ciclo di feedback sulle prestazioni del modello è opaco, con riproducibilità limitata.
- Training automatizzato: I modelli sono riproducibili e i rilasci sono meno manuali. Il training è automatico e le pipeline sono ampiamente utilizzate.
- Deployment automatizzato: I deployment sono automatizzati e tracciabili fino ai dati originali. I modelli possono essere testati in A/B dopo il deployment e i test sono automatizzati.
- MLOps completo: Il sistema è completamente automatizzato dall’ingestione dei dati al deployment e al testing del modello, con analisi centralizzate e monitorate sulle prestazioni dei modelli. Questi sistemi sono spesso costruiti su misura.
La sezione seguente coprirà ciascun livello di maturità, con una tabella di riepilogo dei punti chiave.
Nessun MLOps
In questa fase, c’è pochissima automazione e il data team è isolato sia dal resto dell’organizzazione sia al suo interno. L’adozione degli strumenti è bassa e alcune funzioni, come la data engineering, potrebbero non esistere o essere svolte dai data scientist. A questo livello di maturità, distribuire anche un solo modello è difficile e richiede tempo, e riaddestrare i modelli significa rieseguire completamente analisi e job di training. Dopo il deployment non c’è tracciamento del modello, quindi analizzarne l’impatto potrebbe non essere possibile.
|
Persone |
Data Scientist |
Non comunicano con il team più ampio, lavorano in modo indipendente. |
|
Data Engineer |
Potrebbero non esistere. |
|
|
Software Engineer |
Ricevono modelli dai data scientist e sono isolati dal data team. |
|
|
Ciclo di vita ML |
Preparazione dati |
Anche se i database possono esistere, i dati vengono raccolti manualmente per l’addestramento dei modelli. |
|
Training del modello |
Gli esperimenti non sono tracciati e non esistono pipeline di dati e di machine learning. |
|
|
Deployment del modello |
I modelli sono solitamente consegnati manualmente con input e output. Non c’è controllo di versione e lo scoring script è creato manualmente; il deployment è solitamente gestito dai data scientist. |
|
|
Applicazione |
Integrazione |
Testing e rilascio completamente manuali ogni volta che un modello è pronto per il deployment, con forte dipendenza dai data scientist. |
DevOps ma non MLOps
Con l’integrazione delle best practice DevOps, il data team resta comunque isolato, anche se potrebbero esserci data engineer dedicati. Tecnologie di cloud computing possono essere adottate, ma non sfruttate al massimo. In questa fase, la raccolta dei dati dai database e la preparazione per il machine learning sono automatizzate in pipeline riutilizzabili. Potrebbero esserci anche test di integrazione quando i modelli vengono distribuiti. I data scientist indossano molti cappelli e sono molto coinvolti nel testing dei modelli dopo il deployment.
|
Persone |
Data Scientist |
Non comunicano con il team più ampio, lavorano in modo indipendente. |
|
Data Engineer |
Non comunicano con il team più ampio, lavorano in modo indipendente. |
|
|
Software Engineer |
Ricevono modelli dai data scientist e sono isolati dal data team. |
|
|
Ciclo di vita ML |
Preparazione dati |
Pipeline di dati automatizzate sono disponibili e possono essere eseguite su risorse cloud gestite. |
|
Training del modello |
Gli esperimenti non sono riproducibili e non tutti sono tracciati in modo prevedibile. |
|
|
Deployment del modello |
I modelli sono solitamente consegnati manualmente con input e output. Esiste il controllo di versione ma lo scoring script è ancora creato manualmente; il deployment è solitamente gestito da data scientist o engineer. |
|
|
Applicazione |
Integrazione |
I rilasci sono automatizzati e ci sono test di integrazione di base, ma dipendono fortemente dall’expertise dei data scientist. |
Training automatizzato
In questa fase, la collaborazione all’interno del data team aumenta in modo significativo. I data scientist ora lavorano con gli engineer per trasformare il codice di training dei modelli in script ripetibili che utilizzano pipeline di dati automatizzate. Gli esperimenti sono tracciati e il controllo di versione è molto più diffuso. Il deployment è più automatizzato, con i file modello che vengono comunque passati ai software engineer.
|
Persone |
Data Scientist |
I data scientist lavorano con i data engineer per trasformare il codice degli esperimenti in script ripetibili. |
|
Data Engineer |
||
|
Software Engineer |
Ricevono modelli dai data scientist e sono isolati dal data team. |
|
|
Ciclo di vita ML |
Preparazione dati |
Pipeline di dati automatizzate eseguite su risorse cloud gestite. |
|
Training del modello |
Gli esperimenti sono tracciati e il codice di training e i modelli sono sotto controllo di versione. |
|
|
Deployment del modello |
I modelli sono ancora distribuiti manualmente; tuttavia, lo scoring script è sotto controllo di versione e il rilascio è ora gestito dai team di software engineering. |
|
|
Applicazione |
Integrazione |
I rilasci sono automatizzati e ci sono test di integrazione di base, ma dipendono fortemente dall’expertise dei data scientist. |
Deployment automatico del modello
Gli ingegneri software collaborano ora molto più da vicino con i data engineer per distribuire i modelli, nonché le loro pipeline di training e raccolta dati. Gli esperimenti sono completamente tracciati e per ogni rilascio del modello e per l’applicazione stessa ci sono test automatici di unità e di integrazione. In alcune aree può esserci anche CI/CD.
|
Persone |
Data Scientist |
I data scientist lavorano con i data engineer per trasformare il codice degli esperimenti in script ripetibili. |
|
Data Engineer |
||
|
Software Engineer |
Lavorano con i data engineer per automatizzare l’integrazione dei modelli nelle applicazioni. |
|
|
Ciclo di vita ML |
Preparazione dati |
Pipeline di dati automatizzate eseguite su risorse cloud gestite. |
|
Training del modello |
Gli esperimenti sono tracciati e il codice di training e i modelli sono sotto controllo di versione. |
|
|
Deployment del modello |
I modelli ora vengono distribuiti automaticamente, lo scoring script è sotto controllo di versione e il rilascio è gestito da una pipeline di continuous delivery (CI/CD) |
|
|
Applicazione |
Integrazione |
L’integrazione nel codice applicativo dipende meno dai data scientist, e per ogni rilascio del modello sono presenti test di unità e di integrazione |
Riaddestramento automatizzato con MLOps completo
Nello stadio finale di maturità, data engineer, data scientist e software engineer lavorano fianco a fianco per garantire la massima automazione possibile nei processi di sviluppo e deployment. Inoltre, esperimenti e training/riaddestramento dei modelli sono automatizzati in base alle metriche di produzione, i modelli vengono rilasciati automaticamente e gestiti da una pipeline CI/CD, e vengono testati nel codice applicativo.
|
Persone |
Data Scientist |
I data scientist lavorano con i data engineer per convertire gli esperimenti in script ripetibili e con i software engineer per automatizzare i processi. I data engineer e i software engineer collaborano per automatizzare l’integrazione dei modelli in un’applicazione e per raccogliere metriche di performance post-deployment. |
|
Data Engineer |
||
|
Software Engineer |
||
|
Ciclo di vita ML |
Preparazione dati |
Pipeline di dati automatizzate eseguite su risorse cloud gestite. |
|
Training del modello |
Gli esperimenti sono tracciati e il codice di training e i modelli sono sotto controllo di versione; i modelli sono riaddestrati automaticamente dopo il deployment in base alle metriche di performance. |
|
|
Deployment del modello |
I modelli ora vengono distribuiti automaticamente, lo scoring script è sotto controllo di versione e il rilascio è gestito da una pipeline di continuous delivery (CI/CD) |
|
|
Applicazione |
Integrazione |
L’integrazione nel codice applicativo dipende meno dai data scientist, e per ogni rilascio del modello sono presenti test di unità e di integrazione |
Differenze tra i modelli MLOps più diffusi
Una differenza rilevante tra questo modello di maturità MLOps e quello di Google riguarda l’implementazione dei concetti di CI/CD. Google suggerisce che in genere questi si trovino al livello finale di maturità, mentre Microsoft propone il riaddestramento come fase conclusiva.
Nella pratica, il riaddestramento è uno dei principali motivi per adottare MLOps e può essere integrato prima della fase finale. Tuttavia, il riaddestramento dei modelli ha dei prerequisiti, come una solida automazione e infrastruttura, oltre a pipeline di dati e di training di alta qualità. I concetti di CI/CD continueranno a migliorare fino agli stadi finali della maturità MLOps.
Organizzazioni molto mature come Google e Microsoft in genere dispongono di software su misura che gira sulle proprie soluzioni di cloud computing e utilizza strumenti specifici al massimo del loro potenziale. Gli ingegneri software spesso affermano che la tecnologia in queste aziende “semplicemente funziona”, con deployment dei modelli senza attriti e accesso ai dati efficiente. Questo è necessario perché queste aziende hanno centinaia di modelli in produzione per la vasta gamma di prodotti che offrono.
Come far crescere la tua maturità MLOps
MLOps è ancora una delle aree più critiche della data science, poiché molte organizzazioni faticano ancora a portare i modelli in produzione. I modelli di maturità MLOps offrono un ottimo framework per capire a che punto si trovano oggi i data team nelle loro capacità di machine learning e come possono evolvere in avanti.
Per saperne di più su MLOps, dai un’occhiata a queste risorse:
- [DataFramed Podcast] Operazionalizzare il Machine Learning con MLOps
- [Webinar] Guida pratica a MLOps

