Come garantire che i modelli di AI non impazziscano

AI che impazzisce

L’AI online

Il processo di sviluppo di un sistema di AI è un percorso lungo e tortuoso. Quando si conclude e si mette finalmente online, se tutto funziona come deve (la legge di Murphy qui si sfrega le mani), il team tira un sospiro di sollievo.

In realtà, dopo che i modelli sono online, inizia il gioco vero. I modelli iniziano a processare dati reali e a fare predizioni, la gestione di questo flusso deve essere ottimizzata e manutenuta nel tempo.

Un asset non fisico

I modelli di AI sono asset a tutti gli effetti, generano valore nel tempo, e per garantirne le performance è necessario metterli in condizioni ottimali e manutenerli nel tempo. E come un asset fisico, anche un modello può essere potenziato con degli interventi straordinari. Il ModelOps è proprio il modo con cui si gestisce questo asset non fisico nel tempo.

ModelOps e MLops

Prima di addentrarci nelle tecniche, presentiamo due parole difficili che piacciono ai nostri amici data scientist: MLOps e ModelOps. Entrambi hanno a che fare con il modo con cui si costruiscono e gestiscono i modelli, e sono la chiave del successo delle soluzioni di AI nel medio-lungo periodo.

In base alla descrizione di Gartner, il ModelOps è più ampio, e racchiude tutte le strategie per governare e gestire i modelli di AI nel tempo, abilitando il rilascio e la gestione in real-time.

Il MLops è una branca del ModelOps, ovvero l’insieme di tecniche e metodi che facilitano la messa online dei modelli di machine learning. Si ispira al DevOps, e rende possibile gestire in modo integrato lo sviluppo e il rilascio dei modelli di machine learning.

Scalabilità, affidabilità e performance

Il ModelOps è indispensabile per rendere le soluzioni scalabili, affidabili e performanti nel tempo. Ma nella pratica in cosa consiste?

Un tecnico che spiega all’AI perché la sua predizione non è più valida, est. 2068, colorized.

Partiamo dall’inizio

I modelli devono essere pubblicati, messi online e gestiti dal punto di vista degli accessi e della distribuzione. È importante definire chi può visualizzare i risultati, chi può decidere se il modello deve essere riallenato, chi si occupa di fare le verifiche preliminari sui dati e sui sistemi per garantire che il riallenamento sia fatto solo se il problema è effettivamente del modello…

Anche la modalità con cui il modello fornisce il suo risultato è da progettare correttamente, per facilitare l’ingaggio del team.

Monitoraggio delle metriche di performance

Quando arrivano i nuovi dati, i modelli fanno nuove predizioni. Il modo in cui questi modelli predicono può essere valutato con le stesse metriche utilizzate in fase di allenamento e validazione. Quando le performance diminuiscono oltre un certo limite, significa che i modelli devono essere revisionati.

Il monitoraggio delle performance può portare a retraining automatici in base al degrado delle metriche, bisogna solo stare attenti: nei modelli di manutenzione predittiva o controllo delle performance, un degrado delle metriche potrebbe essere legato ad un problema del sistema fisico.

Retraining e gestione delle versioni

Quando il modello non è più in grado di fare le previsioni per bene, è ora di riallenarlo. Il riallenamento si fa sui nuovi dati oppure su una combinazione tra dati vecchi e dati nuovi.

A seconda del motivo per cui il modello deve essere riallenato si selezionano dati diversi: se il riallenamento è dovuto ad una modifica dell’asse fisico o della trasformazione, si utilizzano solo gli ultimi dati. Se invece il riallenamento è necessario perché ci sono fenomeni nuovi che si affiancano ai vecchi, allora si useranno sia i dati vecchi che quelli nuovi. Indovinate in base a cosa si sceglie? Eh già, competenza di dominio!

Una volta che la nuova versione è online, che fine fa la versione precedente? E’ buona cosa tracciarla e tenerla disponibile, nel caso in cui l’aggiornamento non sia soddisfacente e si volesse tornare alla versione precedente.

Test e confronto tra modelli

Quando un nuovo modello riallenato o aggiornato è messo online, è molto utile metterlo in rodaggio per un certo periodo.

In questo periodo, ci si prende il tempo per osservarlo in opera, confrontando le sue predizioni con le predizioni di un modello con lo stesso obiettivo che agisce da benchmark. Se il nuovo modello si comporta meglio, allora viene industrializzato. Se invece non garantisce prestazioni equivalenti, si può scartare.

Feedback loop e miglioramento continuo

Quando il modello è online, le sue previsioni sono passibili di errore. La cosa migliore è predisporre un sistema che confronta cosa è successo in realtà e cosa ha predetto il modello.

In alcuni casi, basta controllare le metriche. In altri casi, le metriche non sono sufficienti e bisogna coinvolgere il team.

É buona cosa ingaggiare il team operativo nel processo continuo di verifica, abilitando un loop di feedback in base a quanto loro osservano in campo. Ad esempio, nelle soluzioni di manutenzione predittiva o di ottimizzazione di processo, avere l’indicazione dai tecnici che quel modo di guasto non si è verificato, o che quella regolazione non è corretta può garantire un modello performante nel tempo più della semplice verifica delle metriche.

Schedulare il retraining: sì o no?

A questo punto è chiaro che la manutenzione dei modelli è un lavoro a cui qualcuno deve essere dedicato, e che influenza anche il team in campo. Molte delle attività descritte sopra sono facilmente automatizzabili – gestione delle versioni, calcolo delle metriche, feedback loop… Ma il retraining si può automatizzare? A seconda del tipo di modello che è stato sviluppato, ci sono diverse strategie per decidere come allenarlo e migliorarlo. Il punto principale è legato alla qualità dei dati in arrivo, e alla possibilità di riutilizzarli senza supervisione per una valutazione su quando e come fare il riallenamento. In generale, in industria il continual learning non è una buona idea, e abbiamo visto che scegliere se riallenare un modello o meno dipende soprattutto da perché il modello è fuori controllo – manutenzione straordinaria, problema all’asset, problema ai dati in arrivo…

Esistono dei casi in cui è molto rischioso schedulare un retraining. Questi sono i casi in cui non abbiamo la certezza di avere i dati puliti o completi, ad esempio nei modelli di controllo performance o di manutenzione predittiva.

Altri tipi di modelli però possono essere più facilmente integrati in sistemi di riallenamento automatico. Ad esempio, un modello di forecasting che anche se il dato non è perfetto deve essere in grado di fare una previsione corretta potrebbe essere un buon candidato per un retraining periodico semi-automatico, in cui quindi il team di modelops deve solo confrontare la versione precedente con la successiva.

Sintetizziamo

I modelli messi online diventano un sistema di generazione del valore che deve essere monitorato e manutenuto nel tempo. Le tecniche del ModelOps e del MLops ci aiutano a intercettare problemi nei modelli e a evitare che questi impattino l’operatività, garantendo scalabilità, performance e stabilità.