Questo documento raccoglie alcune linee guida per aiutarti a valutare, garantire e controllare la qualità nella creazione di soluzioni di machine learning (ML) predittive. Fornisce suggerimenti per ogni fase del processo, dallo sviluppo dei modelli ML al deployment dei sistemi di addestramento e di pubblicazione in produzione. Il documento estende le informazioni discusse nella Guida per gli addetti ai lavori a MLOps mettendo in evidenza e sintetizzando gli aspetti della qualità in ogni processo del ciclo di vita di MLOps.
Questo documento è rivolto a chiunque sia coinvolto nella creazione, nel deployment e nella gestione di soluzioni di ML. Il documento presuppone che tu abbia familiarità con MLOps in generale. Non presuppone che tu abbia conoscenze di una piattaforma di ML specifica.
Panoramica della qualità della soluzione di machine learning
Nell'ingegneria del software sono stati sviluppati molti standard, processi, strumenti e pratiche per garantire la qualità del software. L'obiettivo è assicurarsi che il software funzioni come previsto in produzione e che soddisfi i requisiti sia funzionali che non funzionali. Queste pratiche coprono argomenti come il test, la verifica e la convalida e il logging e il monitoraggio del software. In DevOps, queste pratiche sono in genere integrate e automatizzate nei procedimenti CI/CD.
MLOps è un insieme di funzionalità e processi standardizzati per creare, eseguire il deployment e gestire i sistemi ML in modo rapido e affidabile. Come per altre soluzioni software, le soluzioni software di ML richiedono di integrare queste pratiche di qualità del software e di applicarle durante tutto il ciclo di vita di MLOps. Se applichi queste pratiche, contribuisci ad assicurare l'affidabilità e la prevedibilità dei tuoi modelli, nonché la loro conformità ai tuoi requisiti.
Tuttavia, le attività di creazione, implementazione e gestione dei sistemi di ML presentano ulteriori sfide che richiedono determinate pratiche di qualità che potrebbero non essere pertinenti per altri sistemi software. Oltre alle caratteristiche della maggior parte degli altri sistemi software, i sistemi di ML presentano le seguenti caratteristiche:
Sistemi dipendenti dai dati. La qualità dei modelli addestrati e delle relative predizioni dipende dalla validità dei dati utilizzati per l'addestramento e inviati per le richieste di previsione. Qualsiasi sistema software dipende da dati validi, ma i sistemi di ML deducono automaticamente la logica per il processo decisionale dai dati, pertanto sono particolarmente dipendenti dalla qualità degli stessi.
Doppi sistemi di addestramento e pubblicazione. I carichi di lavoro ML in genere sono costituiti da due sistemi di produzione distinti, ma correlati: il sistema di addestramento e il sistema di pubblicazione. Una pipeline di addestramento continuo produce modelli appena addestrati che vengono poi implementati per la pubblicazione delle previsioni. Ogni sistema richiede un insieme diverso di pratiche di qualità che bilancino efficacia ed efficienza per produrre e mantenere un modello efficiente in produzione. Inoltre, le incoerenze tra questi due sistemi generano errori e prestazioni di previsione scadenti.
Tendono a diventare obsoleti. I modelli spesso peggiorano dopo essere stati implementati in produzione perché non riescono ad adattarsi alle variazioni dell'ambiente che rappresentano, ad esempio le variazioni stagionali nel comportamento di acquisto. I modelli possono anche non adattarsi alle variazioni dei dati, ad esempio nuovi prodotti e località. Pertanto, monitorare l'efficacia del modello in produzione è un'ulteriore sfida per i sistemi di ML.
Sistemi di presa di decisioni automatizzate. A differenza di altri sistemi software, in cui le azioni vengono codificate manualmente con attenzione per un insieme di requisiti e regole aziendali, i modelli ML apprendono le regole dai dati per prendere una decisione. I bias impliciti nei dati possono portare i modelli a produrre risultati ingiusti.
Quando un modello ML di cui è stato eseguito il deployment produce previsioni sbagliate, la scarsa qualità dell'ML può essere il risultato di una vasta gamma di problemi. Alcuni di questi problemi possono derivare dai bug tipici di qualsiasi programma. Tuttavia, i problemi specifici dell'ML possono includere anche asimmetrie e anomalie dei dati, nonché l'assenza di procedure di valutazione e convalida adeguate del modello nell'ambito del processo di addestramento. Un altro potenziale problema è rappresentato dal formato dei dati incoerente tra l'interfaccia integrata del modello e l'API di pubblicazione. Inoltre, le prestazioni del modello peggiorano nel tempo anche senza questi problemi e possono verificarsi errori silenziosi se non viene monitorato correttamente. Pertanto, devi includere diversi tipi di test e monitoraggio per i modelli e i sistemi di ML durante lo sviluppo, il deployment e la produzione.
Norme sulla qualità per lo sviluppo del modello
Quando sviluppi un modello ML durante la fase di sperimentazione, hai a disposizione i seguenti due insiemi di metriche target che puoi utilizzare per valutare le prestazioni del modello:
- Le metriche di ottimizzazione del modello. Questa metrica riflette l'efficacia predittiva del modello. La metrica include accuratezza e misura F nelle attività di classificazione, errore percentuale medio assoluto nelle attività di regressione e previsione, guadagno cumulativo scontato nelle attività di ranking e perplessità e BLEU nei modelli linguistici. Migliore è il valore di questa metrica, migliore è il modello per una determinata attività. In alcuni casi d'uso, per garantire l'equità, è importante ottenere un'efficacia predittiva simile in diversi segmenti di dati, ad esempio in diversi gruppi demografici di clienti.
- Le metriche di soddisfazione del modello. Questa metrica riflette un vincolo operativo che il modello deve soddisfare, ad esempio la latenza di previsione. Imposti una soglia di latenza su un determinato valore, ad esempio 200 millisecondi. Non sono accettati modelli che non raggiungono la soglia. Un altro esempio di metrica soddisfacente è la dimensione del modello, che è importante quando vuoi eseguire il deployment del modello su hardware a bassa potenza come dispositivi mobili e embedded.
Durante la sperimentazione, sviluppi, addestrini, valuti e esegui il debug del modello per migliorare la sua efficacia rispetto alle metriche di ottimizzazione, senza violare le soglie delle metriche soddisfacenti.
Linee guida per la sperimentazione
- Avere soglie predefinite e fisse per ottimizzare le metriche e per soddisfare le metriche.
- Implementa una routine di valutazione semplificata che prende un modello e i dati e produce un insieme di metriche di valutazione. Implementa la routine in modo che funzioni indipendentemente dal tipo di modello (ad es. alberi decisionali o reti neurali) o dal framework del modello (ad es. TensorFlow o Scikit-learn).
- Assicurati di avere un modello di riferimento con cui fare il confronto. Questa linea di base può essere costituita da regole di euristica predefinite o da un semplice modello che prevede il valore target medio o modale. Utilizza il modello di riferimento per controllare le prestazioni del modello ML. Se il modello ML non è migliore del modello di riferimento, esiste un problema fondamentale nel modello ML.
- Monitora tutti gli esperimenti eseguiti per aiutarti con la riproducibilità e il miglioramento incrementale. Per ogni esperimento, memorizza i valori degli iperparametri, la selezione delle funzionalità e i seed casuali.
Linee guida per la qualità dei dati
- Risolvi eventuali classi sbilanciate all'inizio degli esperimenti scegliendo la metrica di valutazione corretta. Inoltre, applica tecniche come l'aumento del peso delle istanze di classe di minoranza o il sottocampionamento delle istanze di classe di maggioranza.
- Assicurati di comprendere l'origine dati a tua disposizione ed esegui la pre-elaborazione dei dati e il feature engineering pertinenti per preparare il set di dati di addestramento. Questo tipo di processo deve essere ripetibile e automatizzabile.
- Assicurati di avere una suddivisione dei dati di test (gruppo di controllo) separata per la valutazione finale del modello. La suddivisione in gruppi di test non deve essere visualizzata durante l'addestramento e non deve essere utilizzata per l'ottimizzazione degli iperparametri.
- Assicurati che le suddivisioni per addestramento, convalida e test siano ugualmente rappresentative dei dati di input. Il campionamento di una suddivisione del test dipende dalla natura dei dati e dell'attività di ML in questione. Ad esempio, la suddivisione stratificata è pertinente per le attività di classificazione, mentre la suddivisione cronologica è pertinente per le attività relative alle serie temporali.
- Assicurati che le suddivisioni di convalida e test vengano pre-elaborate distintamente dalla suddivisione dei dati di addestramento. Se le suddivisioni vengono pre-elaborate in una combinazione, si verifica una fuga di dati. Ad esempio, quando utilizzi le statistiche per trasformare i dati per la normalizzazione o per la suddivisione in bucket delle funzionalità numeriche, calcola le statistiche dai dati di addestramento e applicale per normalizzare le suddivisioni di convalida e test.
- Genera uno schema del set di dati che includa i tipi di dati e alcune proprietà statistiche delle funzionalità. Puoi utilizzare questo schema per trovare dati anomali o non validi durante la sperimentazione e l'addestramento.
- Assicurati che i dati di addestramento siano mischiati correttamente in batch, ma che adempiano anche ai requisiti di addestramento del modello. Ad esempio, questa attività può essere applicata alle distribuzioni di istanze positive e negative.
- Avere un set di dati di convalida separato per l'ottimizzazione degli iperparametri e la selezione del modello. Puoi anche utilizzare il set di dati di convalida per eseguire l'interruzione anticipata. In caso contrario, puoi lasciare che il modello venga addestrato per l'intero insieme di iterazioni massime specificato. Tuttavia, salva un nuovo snapshot del modello solo se il rendimento nel set di dati di convalida migliora rispetto all' istantanea precedente.
Linee guida per la qualità dei modelli
- Assicurati che i tuoi modelli non presentino problemi fondamentali che impediscono loro di apprendere qualsiasi relazione tra gli input e gli output. Puoi raggiungere questo obiettivo addestrando il modello con pochissimi esempi. Se il modello non raggiunge un'elevata precisione per questi esempi, potrebbe esserci un bug nell'implementazione o nella routine di addestramento del modello.
- Quando addestri le reti neurali, controlla la presenza di valori
NaN
nella perdita e la percentuale di pesi con valori nulli durante l'addestramento del modello. Questi valoriNaN
o zero possono essere indicativi di calcoli aritmetici errati o di gradienti che svaniscono o esplodono. La visualizzazione delle variazioni nella distribuzione dei valori di peso nel tempo può aiutarti a rilevare i spostamenti delle covariate interne che rallentano l'addestramento. Puoi applicare la normalizzazione dei batch per attenuare questa riduzione della velocità. - Confronta le prestazioni del modello sui dati di addestramento e sui dati di test per capire se il modello presenta overfitting o underfitting. Se riscontri uno di questi problemi, apporta i miglioramenti pertinenti. Ad esempio, se si verifica un sottoadattamento, puoi aumentare la capacità di apprendimento del modello. Se si è verificato un sovraadattamento, puoi applicare la regolarizzazione.
- Analizza le istanze classificate erroneamente, in particolare quelle con un'elevata confidenza di previsione e le classi più confuse nella matrice di confusione multiclasse. Questi errori possono indicare esempi di addestramento etichettati in modo errato. Gli errori possono anche identificare un'opportunità per la preelaborazione dei dati, ad esempio la rimozione degli outlier o la creazione di nuove funzionalità per contribuire a distinguere tra questi tipi di classi.
- Analizza i punteggi di importanza delle funzionalità e ripulisci le funzionalità che non apportano un miglioramento sufficiente alla qualità del modello. I modelli parsimoniosi sono preferiti rispetto a quelli complessi.
Norme sulla qualità per l'implementazione della pipeline di addestramento
Quando implementi il modello e la pipeline di addestramento del modello, devi creare un insieme di test in una routine CI/CD. Questi test vengono eseguiti automaticamente quando pushi nuove modifiche al codice o prima di eseguire il deployment della pipeline di addestramento nell'ambiente di destinazione.
Linee guida
- Esegui il test di unità della funzionalità di feature engineering.
- Esegui il test di unità della codifica degli input del modello.
- Esegui test di unità in modo indipendente sui moduli (personalizzati) implementati dall'utente dei modelli, ad esempio sui livelli di pooling e convezione di grafici personalizzati o sui livelli di attenzione personalizzati.
- Esegui test di unità per eventuali funzioni di perdita o di valutazione personalizzate.
- Esegui test di unità sui tipi e sulle forme di output del modello in base agli input previsti.
- Esegui un test di unità per verificare che la funzione
fit
del modello funzioni senza errori su un paio di piccoli batch di dati. I test devono garantire che la perdita diminuisca e che il tempo di esecuzione del passaggio di addestramento sia quello previsto. Esegui questi controlli perché le modifiche al codice del modello possono introdurre bug che rallentano il processo di addestramento. - Esegui il test delle unità della funzionalità di salvataggio e caricamento del modello.
- Esegui test di unità sulle interfacce di pubblicazione del modello esportate rispetto agli input non elaborati e alle uscite previste.
- Testa i componenti dei passaggi della pipeline con input simulati e con gli elementi di output.
- Esegui il deployment della pipeline in un ambiente di test ed esegui i test di integrazione della pipeline end-to-end. Per questa procedura, utilizza alcuni dati di test per assicurarti che il flusso di lavoro venga eseguito correttamente e che produca gli elementi previsti.
- Utilizza il deployment in modalità shadow quando esegui il deployment di una nuova versione della pipeline di addestramento nell'ambiente di produzione. Un deployment shadow ti consente di assicurarti che la versione della pipeline appena implementata venga eseguita sui dati in tempo reale in parallelo con la versione precedente della pipeline.
Norme sulla qualità per l'addestramento continuo
Il processo di addestramento continuo consiste nell'orchestrare e automatizzare l'esecuzione delle pipeline di addestramento. I flussi di lavoro di addestramento tipici includono passaggi come l'importazione e la suddivisione dei dati, la trasformazione dei dati, l'addestramento del modello, la valutazione del modello e la registrazione del modello. Alcune pipeline di addestramento sono costituite da flussi di lavoro più complessi. Altre attività possono includere l'addestramento di modelli auto-supervisionati che utilizzano dati non etichettati o la creazione di un indice approssimativo del vicino più vicino per gli embedding. L'input principale di qualsiasi pipeline di addestramento è costituito da nuovi dati di addestramento e l'output principale è un nuovo modello candidato da implementare in produzione.
La pipeline di addestramento viene eseguita automaticamente in produzione in base a una programmazione (ad esempio giornaliera o settimanale) o a un attivatore (ad esempio quando sono disponibili nuovi dati etichettati). Pertanto, devi aggiungere passaggi di controllo qualità al flusso di lavoro di addestramento, in particolare i passaggi di convalida dei dati e i passaggi di convalida del modello. Questi passaggi convalidano gli input e gli output delle pipeline.
Aggiungi il passaggio di convalida dei dati dopo il passaggio di importazione dei dati nel workflow di addestramento. Il passaggio di convalida dei dati profila i nuovi dati di addestramento di input che vengono importati nella pipeline. Durante il profiling, la pipeline utilizza uno schema di dati predefinito, creato durante il processo di sviluppo ML, per rilevare le anomalie. A seconda del caso d'uso, puoi ignorare o rimuovere alcuni record non validi dal set di dati. Tuttavia, altri problemi nei dati appena importati potrebbero interrompere l'esecuzione della pipeline di addestramento, quindi devi identificarli e risolverli.
Linee guida per la convalida dei dati
- Verifica che le funzionalità dei dati di addestramento estratti siano complete e corrispondano allo schema previsto, ovvero che non manchino funzionalità e che non siano state aggiunte. Verifica inoltre che gli elementi corrispondano ai volumi previsti.
- Convalida i tipi di dati e le forme delle funzionalità nel set di dati che vengono importati nella pipeline di addestramento.
- Verifica che i formati di determinate funzionalità (ad es. date, ore, URL, codici postali e indirizzi IP) corrispondano alle espressioni regolari previste. Verifica inoltre che le funzionalità rientrino in intervalli validi.
- Convalida la frazione massima dei valori mancanti per ogni funzionalità. Un gran numero di valori mancanti in una determinata caratteristica può influire sull'addestramento del modello. I valori mancanti in genere indicano una sorgente di funzionalità non affidabile.
- Convalida i domini degli elementi di input. Ad esempio, controlla se esistono modifiche a un vocabolario di caratteristiche categoriche o all'intervallo di caratteristiche numeriche e modifica di conseguenza la pre-elaborazione dei dati. Come altro esempio, gli intervalli per le funzionalità numeriche potrebbero cambiare se un aggiornamento nel sistema a monte che compila le funzionalità utilizza unità di misura diverse. Ad esempio, il sistema a monte potrebbe cambiare la valuta da dollari a yen o le distanze da chilometri a metri.
- Verifica che le distribuzioni di ogni funzionalità corrispondano alle tue aspettative.
Ad esempio, potresti verificare che il valore più comune di una funzionalità per il tipo di pagamento sia
cash
e che questo tipo di pagamento rappresenti il 50% di tutti i valori. Tuttavia, questo test può non riuscire se viene modificato il tipo di pagamento più comune incredit_card
. Una modifica esterna come questa potrebbe richiedere modifiche al modello.
Aggiungi un passaggio di convalida del modello prima del passaggio di registrazione del modello per assicurarti che solo i modelli che superano i criteri di convalida vengano registrati per il deployment di produzione.
Linee guida per la convalida del modello
- Per la valutazione finale del modello, utilizza una suddivisione del test separata che non sia stata utilizzata per l'addestramento del modello o per l'ottimizzazione degli iperparametri.
- Assegna un punteggio al modello candidato in base alla suddivisione dei dati di test, calcola le metriche di valutazione pertinenti e verifica che il modello candidato superi le soglie di qualità predefinite.
- Assicurati che la suddivisione dei dati di test sia rappresentativa dei dati nel loro insieme per tenere conto di modelli di dati variabili. Per i dati delle serie temporali, assicurati che la suddivisione per il test contenga dati più recenti rispetto alla suddivisione per l'addestramento.
- Verifica la qualità del modello su sezioni di dati importanti, come utenti per paese o film per genere. Eseguendo il test su dati suddivisi, eviti un problema in cui i problemi di prestazioni granulari vengono mascherati da una metrica di riepilogo globale.
- Valuta il modello attuale (campione) rispetto alla suddivisione dei dati di test e confrontalo con il modello candidato (rivale) prodotto dalla pipeline di addestramento.
- Convalida il modello in base agli indicatori di equità per rilevare i bias impliciti. Ad esempio, i bias impliciti potrebbero essere indotti da una diversità insufficiente nei dati di addestramento. Gli indicatori di equità possono rivelare i problemi alla radice che devi risolvere prima di eseguire il deployment del modello in produzione.
Durante l'addestramento continuo, puoi convalidare il modello sia in base alle metriche di ottimizzazione sia a quelle di soddisfazione. In alternativa, puoi convalidare il modello solo in base alle metriche di ottimizzazione e posticipare la convalida in base alla metrica di soddisfazione fino alla fase di deployment del modello. Se prevedi di implementare varianti dello stesso modello in ambienti di pubblicazione o carichi di lavoro diversi, può essere più adatto posticipare la convalida in base alla metrica soddisfacente. Carichi di lavoro o ambienti di pubblicazione diversi (ad esempio ambienti cloud rispetto a ambienti on-device o ambienti in tempo reale rispetto a ambienti di recupero dati in batch) potrebbero richiedere soglie di metriche soddisfacenti diverse. Se esegui il deployment in più ambienti, la pipeline di addestramento continuo potrebbe addestrare due o più modelli, ognuno ottimizzato per l'ambiente di deployment di destinazione. Per ulteriori informazioni e un esempio, consulta Deployment doppi su Vertex AI.
Man mano che metti in produzione più pipeline di addestramento continuo con flussi di lavoro complessi, devi monitorare i metadati e gli elementi prodotti dalle esecuzioni della pipeline. Il monitoraggio di queste informazioni ti aiuta a tracciare e risolvere eventuali problemi che potrebbero verificarsi in produzione. Il monitoraggio delle informazioni ti aiuta anche a riprodurre gli output delle pipeline in modo da poterne migliorare l'implementazione nelle successive iterazioni di sviluppo del ML.
Linee guida per il monitoraggio di metadati e artefatti ML
- Monitora la derivazione del codice sorgente, delle pipeline di cui è stato eseguito il deployment, dei componenti delle pipeline, delle esecuzioni delle pipeline, del set di dati in uso e degli artefatti prodotti.
- Monitora gli iperparametri e le configurazioni delle esecuzioni della pipeline.
- Monitora gli input e gli artefatti di output chiave dei passaggi della pipeline, ad esempio statistiche dei set di dati, eventuali anomalie dei set di dati, dati e schemi trasformati, checkpoint dei modelli e risultati della valutazione dei modelli.
- Monitora l'esecuzione dei passaggi della pipeline condizionali in risposta alle condizioni e assicurati l'osservabilità aggiungendo meccanismi di alterazione nel caso in cui i passaggi chiave non vengano eseguiti o non funzionino.
Norme sulla qualità per l'implementazione del modello
Supponiamo che tu abbia un modello addestrato che è stato convalidato dal punto di vista delle metriche di ottimizzazione e che sia approvato dal punto di vista della governance del modello (come descritto più avanti nella sezione sulla governance del modello). Il modello viene archiviato nel registry dei modelli ed è pronto per essere distribuito in produzione. A questo punto, devi implementare una serie di test per verificare che il modello sia adatto alla pubblicazione nel suo ambiente di destinazione. Inoltre, devi automatizzare questi test in una routine CI/CD del modello.
Linee guida
- Verifica che l'elemento del modello possa essere caricato e richiamato correttamente con le relative dipendenze di runtime. Puoi eseguire questa verifica eseguendo il deployment del modello in una versione in sandbox dell'ambiente di pubblicazione. Questa verifica ti consente di assicurarti che le operazioni e i binari utilizzati dal modello siano presenti nell'ambiente.
- Convalida le metriche soddisfacenti del modello (se presenti) in un ambiente di staging, come le dimensioni e la latenza del modello.
- Esegui test di unità delle interfacce di pubblicazione di modelli e artefatti in un ambiente di gestione temporanea rispetto agli input non elaborati e agli output previsti.
- Esegui il test di unità dell'elemento modello in un ambiente di staging per un insieme di casi tipici e limite delle richieste di previsione. Ad esempio, un test unitario per un'istanza di richiesta in cui tutte le funzionalità sono impostate su
None
. - Esegui un test di fumosità dell'API del servizio di modelli dopo che è stata eseguita la distribuzione nell'ambiente di destinazione. Per eseguire questo test, invia una singola istanza o un insieme di istanze al servizio del modello e convalida la risposta del servizio.
- Esegui il test Canary della versione del modello appena di cui è stato eseguito il deployment su un piccolo stream di dati di pubblicazione in tempo reale. Questo test garantisce che il nuovo servizio del modello non produca errori prima che il modello venga esposto a un numero elevato di utenti.
- Esegui il test in un ambiente di staging in cui puoi eseguire il rollback a una versione precedente del modello di servizio in modo rapido e sicuro.
- Esegui esperimenti online per testare il modello appena addestrato utilizzando un piccolo sottoinsieme della popolazione di destinazione. Questo test misura il rendimento del nuovo modello rispetto a quello attuale. Dopo aver confrontato le prestazioni del nuovo modello con quelle del modello attuale, potresti decidere di rilasciare completamente il nuovo modello per soddisfare tutte le tue richieste di previsione in tempo reale. Le tecniche di sperimentazione online includono test A/B e Multi-Armed Bandit (MAB).
Norme sulla qualità per la pubblicazione di modelli
Le prestazioni predittive dei modelli ML di cui è stato eseguito il deployment e che vengono eseguiti in produzione di solito peggiorano nel tempo. Questo degrado può essere dovuto a incoerenze introdotte tra le funzionalità di pubblicazione e quelle previste dal modello. Queste incoerenze sono chiamate disallineamento addestramento/pubblicazione. Ad esempio, un modello di consigli potrebbe prevedere un valore di input alfanumerico per una funzionalità come il codice del prodotto visualizzato più di recente. Tuttavia, durante la pubblicazione viene passato il nome del prodotto anziché il codice prodotto, a causa di un aggiornamento dell'applicazione che utilizza il servizio del modello.
Inoltre, il modello può diventare obsoleto man mano che le proprietà statistiche dei dati di pubblicazione variano nel tempo e i pattern appresi dal modello attualmente implementato non sono più accurati. In entrambi i casi, il modello non può più fornire previsioni accurate.
Per evitare questo peggioramento delle prestazioni predittive del modello, devi eseguire un monitoraggio continuo dell'efficacia del modello. Il monitoraggio ti consente di verificare regolarmente e in modo proattivo che le prestazioni del modello non peggiorino.
Linee guida
- Registra un campione dei payload di richiesta-risposta di pubblicazione in un datastore per analisi regolari. La richiesta è l'istanza di input e la risposta è la previsione prodotta dal modello per quell'istanza di dati.
- Implementa un processo automatizzato che profila i dati memorizzati relativi a richieste e risposte calcolando le statistiche descrittive. Calcola e memorizza queste statistiche di pubblicazione a intervalli regolari.
- Identifica il disallineamento addestramento/produzione causato da spostamento e deriva dei dati confrontando le statistiche dei dati di pubblicazione con le statistiche di riferimento dei dati di addestramento. Inoltre, analizza come cambiano le statistiche dei dati di pubblicazione nel tempo.
- Identifica la deviazione del concetto analizzando in che modo le attribuzioni delle caratteristiche per le previsioni cambiano nel tempo.
- Identifica le istanze di dati di pubblicazione considerate valori anomali rispetto ai dati di addestramento. Per trovare questi outlier, utilizza le tecniche di rilevamento di novità e monitora l'evoluzione della percentuale di outlier nei dati di pubblicazione nel tempo.
- Imposta avvisi per quando il modello raggiunge le soglie di punteggio di skew per le funzionalità di previsione chiave nel set di dati.
- Se sono disponibili etichette (ovvero dati empirici reali), unisci le etichette vere con le etichette previste delle istanze di pubblicazione per eseguire una valutazione continua. Questo approccio è simile al sistema di valutazione che implementi come test A/B durante la sperimentazione online. La valutazione continua può identificare non solo la capacità predittiva del modello in produzione, ma anche il tipo di richiesta con cui il modello ha un buon rendimento e con cui ha un rendimento scadente.
- Imposta gli obiettivi per le metriche di sistema che ritieni importanti e misura il rendimento dei modelli in base a questi obiettivi.
- Monitora l'efficienza del servizio per assicurarti che il modello possa essere pubblicato in produzione su larga scala. Questo monitoraggio ti aiuta anche a prevedere e gestire la pianificazione della capacità e a stimare il costo dell'infrastruttura di pubblicazione. Monitora le metriche di efficienza, tra cui l'utilizzo della CPU, l'utilizzo della GPU, l'utilizzo della memoria, la latenza del servizio, i throughput e il tasso di errore.
Governance del modello
La governance dei modelli è una funzione di base delle aziende che fornisce linee guida e procedimenti per aiutare i dipendenti a implementare i principi dell'AI dell'azienda. Questi principi possono includere l'evitare modelli che creano o applicano pregiudizi e la capacità di giustificare le decisioni prese con AI. La funzione di governance del modello garantisce che sia presente un operatore umano. La revisione da parte di persone è particolarmente importante per i carichi di lavoro sensibili e ad alto impatto (spesso rivolti agli utenti). Carichi di lavoro come questo possono includere l'assegnazione di un punteggio al rischio di credito, il ranking dei candidati per un lavoro, l'approvazione delle polizze assicurative e la propagazione di informazioni sui social media.
Linee guida
- Avere una matrice di assegnazione delle responsabilità per ogni modello in base all'attività. La matrice deve considerare i team cross-funzionali (linee di business, data engineering, data science, ML engineering, rischio e conformità e così via) nell'intera gerarchia dell'organizzazione.
- Gestisci la documentazione e i report dei modelli nel registry dei modelli collegati alla versione di un modello, ad esempio utilizzando le schede dei modelli. Questi metadati includono informazioni sui dati utilizzati per addestrare il modello, sulle prestazioni del modello e su eventuali limitazioni note.
- Implementa una procedura di revisione del modello prima di approvarlo per il deployment in produzione. In questo tipo di procedura, mantieni le versioni del check-list del modello, la documentazione supplementare e qualsiasi informazione aggiuntiva che gli stakeholder potrebbero richiedere.
- Valutare il modello su set di dati di benchmark (noti anche come set di dati di riferimento), che coprono sia i casi standard sia i casi limite. Inoltre, convalidiamo il modello in base a indicatori di equità per contribuire a rilevare i bias impliciti.
- Spiega agli utenti del modello il comportamento predittivo del modello nel suo insieme e su istanze di input di esempio specifiche. Fornendo queste informazioni, puoi comprendere le funzionalità importanti e i possibili comportamenti indesiderati del modello.
- Analizza il comportamento predittivo del modello utilizzando strumenti di analisi di tipo "what-if" per comprendere l'importanza delle diverse funzionalità dei dati. Questa analisi può anche aiutarti a visualizzare il comportamento del modello in più modelli e sottoinsiemi di dati di input.
- Testa il modello contro gli attacchi di tipo adversarial per assicurarti che sia resistente allo sfruttamento in produzione.
- Monitora gli avvisi sul rendimento predittivo dei modelli in produzione, sulle variazioni dei set di dati e sulla deriva. Configura gli avvisi per notificare gli stakeholder del modello.
- Gestisci la sperimentazione, l'implementazione e il rollback dei modelli online.
Passaggi successivi
- Leggi The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction di Google Research.
- Leggi la guida breve all'esecuzione di sistemi di ML in produzione di O'Reilly.
- Leggi le regole per il machine learning.
- Prova il corso di formazione su Test e debug nel machine learning.
- Leggi il documento Data Validation in Machine Learning.
- Consulta il repository di codice di MLOps end-to-end su Google Cloud.
- Per altre architetture di riferimento, diagrammi e best practice, visita il Cloud Architecture Center.
Collaboratori
Autore: Mike Styer | Solution Architect di IA generativa
Altro collaboratore: Amanda Brinhosa | Customer Engineer