Questo documento raccoglie alcune linee guida per aiutarti a valutare, garantire e controllare la qualità nella creazione di soluzioni di machine learning (ML) predittivo. 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 amplia le informazioni discusse nella Guida per professionisti di MLOps evidenziando e sintetizzando gli aspetti di 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 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à delle soluzioni di machine learning
Nell'ingegneria del software sono stati sviluppati molti standard, processi, strumenti e pratiche per garantire la qualità del software. L'obiettivo è garantire che il software funzioni come previsto in produzione e che soddisfi i requisiti funzionali e non funzionali. Queste pratiche riguardano argomenti come il test, la verifica e la convalida, il logging e il monitoraggio del software. In DevOps, queste pratiche sono in genere integrate e automatizzate nei processi CI/CD.
MLOps è un insieme di processi e funzionalità standardizzati per creare, eseguire il deployment e gestire i sistemi ML in modo rapido e affidabile. Come per altre soluzioni software, le soluzioni software ML richiedono l'integrazione di queste pratiche di qualità del software e la loro applicazione durante l'intero ciclo di vita di MLOps. Applicando queste pratiche, contribuisci a garantire l'affidabilità e la prevedibilità dei tuoi modelli e la loro conformità ai tuoi requisiti.
Tuttavia, le attività di creazione, deployment e funzionamento dei sistemi 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 ML hanno le seguenti caratteristiche:
Sistemi dipendenti dai dati. La qualità dei modelli addestrati e delle loro previsioni 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 ML deducono automaticamente la logica per il processo decisionale dai dati, quindi dipendono in modo particolare dalla qualità dei dati.
Sistemi di addestramento-produzione doppi. I workload ML di solito 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, di cui viene poi eseguito il deployment per la gestione delle previsioni. Ogni sistema richiede un insieme diverso di pratiche di qualità che bilanciano efficacia ed efficienza per produrre e mantenere un modello ad alte prestazioni in produzione. Inoltre, le incoerenze tra questi due sistemi generano errori e prestazioni predittive scadenti.
Rischio di obsolescenza. I modelli spesso peggiorano dopo il deployment in produzione perché non riescono ad adattarsi ai cambiamenti nell'ambiente che rappresentano, ad esempio i cambiamenti stagionali nel comportamento di acquisto. I modelli possono anche non riuscire ad adattarsi alle modifiche dei dati, come nuovi prodotti e località. Pertanto, tenere traccia dell'efficacia del modello in produzione è un'ulteriore sfida per i sistemi ML.
Sistemi decisionali automatizzati. 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 di ML apprendono le regole dai dati per prendere una decisione. Il bias implicito nei dati può portare i modelli a produrre risultati ingiusti.
Quando un modello ML di cui è stato eseguito il deployment produce previsioni errate, la scarsa qualità del ML può essere il risultato di un'ampia gamma di problemi. Alcuni di questi problemi possono derivare dai tipici bug presenti in qualsiasi programma. Tuttavia, i problemi specifici del ML possono includere anche distorsioni e anomalie dei dati, oltre all'assenza di procedure di valutazione e convalida dei modelli adeguate nell'ambito del processo di addestramento. Un altro potenziale problema è il 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 non riuscire in modo silenzioso se non vengono monitorate 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 di modelli
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 punteggi 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 su diverse sezioni dei dati, ad esempio su diversi dati demografici dei clienti.
- Le metriche di soddisfacimento 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 valore specifico, ad esempio 200 millisecondi. I modelli che non soddisfano la soglia non vengono accettati. Un altro esempio di metrica di soddisfacimento è la dimensione del modello, che è importante quando vuoi eseguire il deployment del modello su hardware a bassa potenza, come dispositivi mobili e integrati.
Durante la sperimentazione, sviluppi, addestri, valuti ed esegui il debug del modello per migliorarne l'efficacia rispetto alle metriche di ottimizzazione, senza violare le soglie delle metriche di soddisfazione.
Linee guida per la sperimentazione
- Avere soglie predefinite e fisse per le metriche di ottimizzazione e per le metriche di soddisfazione.
- Implementa una routine di valutazione semplificata che prende un modello e dei dati e produce un insieme di metriche di valutazione. Implementa la routine in modo che funzioni indipendentemente dal tipo di modello (ad esempio, alberi decisionali o reti neurali) o dal framework del modello (ad esempio, TensorFlow o Scikit-learn).
- Assicurati di avere un modello di riferimento con cui effettuare il confronto. Questa base di riferimento può essere costituita da euristiche impostate come hardcoded o può essere un modello semplice che prevede il valore target medio o della modalità. Utilizza il modello di base per verificare le prestazioni del modello ML. Se il modello ML non è migliore del modello di riferimento, significa che esiste un problema fondamentale nel modello ML.
- Monitora ogni esperimento eseguito per aiutarti con la riproducibilità e il miglioramento incrementale. Per ogni esperimento, memorizza i valori degli iperparametri, la selezione delle caratteristiche e i seed casuali.
Linee guida per la qualità dei dati
- Risolvi eventuali squilibri tra le classi nelle prime fasi degli esperimenti scegliendo la metrica di valutazione corretta. Inoltre, applica tecniche come l'aumento del peso delle istanze della classe di minoranza o il downsampling delle istanze della classe di maggioranza.
- Assicurati di comprendere l'origine dati a tua disposizione ed esegui le operazioni pertinenti di pre-elaborazione dei dati e feature engineering 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 (holdout) separata per la valutazione finale del modello. La suddivisione di test non deve essere vista durante l'addestramento e non deve essere utilizzata per l'ottimizzazione degli iperparametri.
- Assicurati che le suddivisioni di addestramento, convalida e test siano ugualmente rappresentative dei dati di input. Il campionamento di un set di dati di test di questo tipo dipende dalla natura dei dati e dall'attività di ML in questione. Ad esempio, la suddivisione stratificata è pertinente per le attività di classificazione, mentre la suddivisione cronologica è pertinente per le attività di serie temporali.
- Assicurati che le suddivisioni di convalida e test vengano pre-elaborate separatamente 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 caratteristiche numeriche, calcola le statistiche dai dati di addestramento e applicale per normalizzare le suddivisioni di convalida e test.
- Generare uno schema del set di dati che includa i tipi di dati e alcune proprietà statistiche delle caratteristiche. Puoi utilizzare questo schema per trovare dati anomali o non validi durante la sperimentazione e l'addestramento.
- Assicurati che i dati di addestramento siano mescolati correttamente in batch, ma che soddisfino anche i requisiti di addestramento del modello. Ad esempio, questa attività può essere applicata alle distribuzioni di istanze positive e negative.
- Utilizza 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'arresto anticipato. In caso contrario, puoi consentire l'addestramento del modello per l'intero insieme di iterazioni massime specificato. Tuttavia, salva un nuovo snapshot del modello solo se le sue prestazioni sul set di dati di convalida migliorano rispetto allo snapshot precedente.
Linee guida per la qualità del modello
- Assicurati che i tuoi modelli non presentino problemi fondamentali che impediscano 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'accuratezza elevata per questi esempi, potrebbe esserci un bug nell'implementazione del modello o nella routine di addestramento.
- Quando addestri le reti neurali, monitora i valori
NaNnella perdita e la percentuale di pesi con valori pari a zero durante l'addestramento del modello. Questi valoriNaNo pari a zero possono indicare calcoli aritmetici errati o gradienti che scompaiono o esplodono. La visualizzazione delle variazioni nella distribuzione dei valori di peso nel tempo può aiutarti a rilevare gli spostamenti di covariate interni 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 è in overfitting o in underfitting. Se riscontri uno di questi problemi, apporta i miglioramenti pertinenti. Ad esempio, se si verifica un underfitting, puoi aumentare la capacità di apprendimento del modello. Se si è verificato un overfitting, puoi applicare la regolarizzazione.
- Analizza le istanze classificate in modo errato, 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 pre-elaborazione dei dati, ad esempio la rimozione di outlier, o per la creazione di nuove caratteristiche per aiutare a discriminare tra queste classi.
- Analizza i punteggi di importanza delle caratteristiche e ripulisci quelle che non aggiungono un miglioramento sufficiente alla qualità del modello. I modelli parsimoniosi sono preferiti a quelli complessi.
Norme sulla qualità per il deployment della pipeline di addestramento
Durante l'implementazione del modello e della pipeline di addestramento del modello, devi creare un insieme di test in una routine CI/CD. Questi test vengono eseguiti automaticamente quando esegui il push di nuove modifiche al codice o prima di eseguire il deployment della pipeline di addestramento nell'ambiente di destinazione.
Linee guida
- Eseguire il test delle unità della funzionalità di feature engineering.
- Esegui test delle unità sulla codifica degli input per il modello.
- Esegui il test delle unità dei moduli (personalizzati) implementati dall'utente dei modelli in modo indipendente, ad esempio il test delle unità dei livelli di convoluzione e pooling dei grafi personalizzati o dei livelli di attenzione personalizzati.
- Esegui test delle unità su qualsiasi funzione di perdita o valutazione personalizzata.
- Esegui test delle unità sui tipi e sulle forme di output del modello rispetto agli input previsti.
- Esegui un test delle unità per verificare che la funzione
fitdel 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. Questi controlli vengono eseguiti 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 delle unità sulle interfacce di erogazione del modello esportate rispetto agli input non elaborati e agli output previsti.
- Testa i componenti dei passaggi della pipeline con input fittizi e con artefatti di output.
- Esegui il deployment della pipeline in un ambiente di test ed esegui i test di integrazione della pipeline end-to-end. Per questo processo, utilizza alcuni dati di test per assicurarti che il workflow venga eseguito correttamente in ogni fase e che produca gli artefatti previsti.
- Utilizza il deployment shadow quando esegui il deployment di una nuova versione della pipeline di addestramento nell'ambiente di produzione. Un deployment shadow ti aiuta ad assicurarti che la versione della pipeline di cui è stato appena eseguito il deployment venga eseguita sui dati in tempo reale in parallelo alla versione precedente della pipeline.
Norme sulla qualità per l'addestramento continuo
Il processo di addestramento continuo riguarda l'orchestrazione e l'automazione dell'esecuzione delle pipeline di addestramento. I workflow di addestramento tipici includono passaggi come l'acquisizione 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 workflow più complessi. Altre attività possono includere l'addestramento di modelli con apprendimento auto-supervisionato che utilizza dati non etichettati o la creazione di un indice dei vicini più prossimi approssimativi per gli embedding. L'input principale di qualsiasi pipeline di addestramento sono i nuovi dati di addestramento, mentre l'output principale è un nuovo modello candidato di cui eseguire il deployment in produzione.
La pipeline di addestramento viene eseguita automaticamente in produzione, in base a una pianificazione (ad esempio, giornaliera o settimanale) o a un trigger (ad esempio, quando sono disponibili nuovi dati etichettati). Pertanto, devi aggiungere passaggi di controllo qualità al workflow di addestramento, in particolare passaggi di convalida dei dati e di convalida del modello. Questi passaggi convalidano gli input e gli output delle pipeline.
Il passaggio di convalida dei dati viene aggiunto dopo il passaggio di acquisizione 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 la profilazione, la pipeline utilizza uno schema di dati predefinito, creato durante il processo di sviluppo del ML, per rilevare le anomalie. A seconda del caso d'uso, puoi ignorare o semplicemente 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 identificare e risolvere questi problemi.
Linee guida per la convalida dei dati
- Verifica che le caratteristiche dei dati di addestramento estratti siano complete e che corrispondano allo schema previsto, ovvero che non manchino caratteristiche e non ne siano state aggiunte. Verifica inoltre che le caratteristiche corrispondano ai volumi previsti.
- Convalidare i tipi di dati e le forme delle caratteristiche nel set di dati che vengono importati nella pipeline di addestramento.
- Verifica che i formati di determinate caratteristiche (ad esempio date, ore, URL, codici postali e indirizzi IP) corrispondano alle espressioni regolari previste. Verifica anche che le caratteristiche rientrino in intervalli validi.
- Convalida la frazione massima dei valori mancanti per ogni caratteristica. Una grande percentuale di valori mancanti in una determinata caratteristica può influire sull'addestramento del modello. I valori mancanti di solito indicano un'origine delle caratteristiche non affidabile.
- Convalida i domini delle caratteristiche di input. Ad esempio, controlla se sono presenti modifiche nel vocabolario delle caratteristiche categoriche o nell'intervallo delle caratteristiche numeriche e modifica di conseguenza la pre-elaborazione dei dati. Un altro esempio: gli intervalli per le caratteristiche numeriche potrebbero cambiare se un aggiornamento nel sistema upstream che compila le caratteristiche utilizza unità di misura diverse. Ad esempio, il sistema upstream potrebbe cambiare la valuta da dollari a yen o le distanze da chilometri a metri.
- Verifica che le distribuzioni di ogni caratteristica corrispondano alle tue aspettative.
Ad esempio, potresti verificare che il valore più comune di una caratteristica per il tipo di pagamento sia
cashe che questo tipo di pagamento rappresenti il 50% di tutti i valori. Tuttavia, questo test può non riuscire se si verifica una modifica del tipo di pagamento più comune incredit_card. Un cambiamento esterno come questo 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 in produzione.
Linee guida per la convalida del modello
- Per la valutazione finale del modello, utilizza una suddivisione di test separata che non è stata utilizzata per l'addestramento del modello o per l'ottimizzazione degli iperparametri.
- Valuta il modello candidato rispetto 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 complesso per tenere conto dei diversi pattern di dati. Per i dati delle serie temporali, assicurati che la suddivisione di test contenga dati più recenti rispetto alla suddivisione di addestramento.
- Testa la qualità del modello su sezioni di dati importanti, come gli utenti per paese o i film per genere. Eseguendo i test su dati suddivisi, eviti che i problemi di prestazioni dettagliati vengano mascherati da una metrica di riepilogo globale.
- Valuta il modello attuale (champion) rispetto alla suddivisione dei dati di test e confrontalo con il modello candidato (challenger) prodotto dalla pipeline di addestramento.
- Convalida il modello rispetto agli indicatori di equità per rilevare bias impliciti, ad esempio bias impliciti che potrebbero essere indotti da una diversità insufficiente nei dati di addestramento. Gli indicatori di equità possono rivelare problemi di causa principale 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 in base alle metriche di soddisfacimento. In alternativa, puoi convalidare il modello solo rispetto alle metriche di ottimizzazione e rimandare la convalida rispetto alla metrica di soddisfazione alla fase di deployment del modello. Se prevedi di eseguire il deployment di varianti dello stesso modello in ambienti di distribuzione o workload diversi, potrebbe essere più opportuno rimandare la convalida rispetto alla metrica di soddisfacimento. Ambienti di erogazione o workload diversi (ad esempio ambienti cloud rispetto ad ambienti on-device o ambienti in tempo reale rispetto ad ambienti di recupero dati in batch) potrebbero richiedere soglie di metriche di soddisfacimento diverse. Se esegui il deployment in più ambienti, la pipeline di addestramento continuo potrebbe addestrare due o più modelli, ciascuno ottimizzato per l'ambiente di deployment di destinazione.
Man mano che metti in produzione più pipeline di addestramento continuo con flussi di lavoro complessi, devi monitorare i metadati e gli artefatti prodotti dalle esecuzioni delle pipeline. Il monitoraggio di queste informazioni ti aiuta a rintracciare ed eseguire il debug di eventuali problemi che potrebbero verificarsi in produzione. Il monitoraggio delle informazioni ti aiuta anche a riprodurre gli output delle pipeline in modo da poter migliorare la loro implementazione nelle successive iterazioni di sviluppo del ML.
Linee guida per il monitoraggio di metadati e artefatti ML
- Traccia 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.
- Monitorare gli iperparametri e le configurazioni delle esecuzioni della pipeline.
- Monitora gli input chiave e gli artefatti di output dei passaggi della pipeline, come statistiche del set di dati, anomalie del set di dati (se presenti), dati e schemi trasformati, checkpoint del modello e risultati della valutazione del modello.
- Monitora l'esecuzione dei passaggi condizionali della pipeline in risposta alle condizioni e garantisci l'osservabilità aggiungendo meccanismi di modifica nel caso in cui i passaggi chiave non vengano eseguiti o non vadano a buon fine.
Norme sulla qualità per il deployment dei modelli
Supponiamo che tu abbia un modello addestrato che è stato convalidato dal punto di vista delle metriche di ottimizzazione e che il modello sia approvato dal punto di vista della governance del modello (come descritto più avanti nella sezione Governance del modello). Il modello viene archiviato nel registro dei modelli ed è pronto per il deployment in produzione. A questo punto, devi implementare una serie di test per verificare che il modello sia adatto per essere utilizzato nell'ambiente di destinazione. Devi anche automatizzare questi test in una routine CI/CD del modello.
Linee guida
- Verifica che l'artefatto del modello possa essere caricato e richiamato correttamente con le sue dipendenze di runtime. Puoi eseguire questa verifica eseguendo lo staging del modello in una versione sandbox dell'ambiente di distribuzione. Questa verifica ti aiuta ad assicurarti che le operazioni e i file binari utilizzati dal modello siano presenti nell'ambiente.
- Convalida le metriche di soddisfacimento del modello (se presenti) in un ambiente di gestione temporanea, come le dimensioni e la latenza del modello.
- Esegui test delle unità sulle interfacce di pubblicazione degli artefatti del modello in un ambiente di gestione temporanea rispetto agli input non elaborati e agli output previsti.
- Esegui il test delle unità dell'artefatto del modello in un ambiente di gestione temporanea per un insieme di casi tipici e limite di richieste di previsione. Ad esempio, un test delle unità per un'istanza di richiesta in cui tutte le funzionalità sono impostate su
None. - Esegui uno smoke test dell'API del servizio del modello dopo il deployment nell'ambiente di destinazione. Per eseguire questo test, invia una singola istanza o un batch di istanze al servizio del modello e convalida la risposta del servizio.
- Eseguire un test canary della versione del modello di cui è stato appena eseguito il deployment su un piccolo stream di dati di distribuzione 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 i test in un ambiente di gestione temporanea in cui puoi eseguire il rollback a una versione precedente del modello di distribuzione in modo rapido e sicuro.
- Esegui esperimenti online per testare il modello appena addestrato utilizzando un piccolo sottoinsieme della popolazione di distribuzione. Questo test misura le prestazioni 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 gestire tutte le tue richieste di previsione in tempo reale. Le tecniche di sperimentazione online includono i test A/B e il Multi-Armed Bandit (MAB).
Norme sulla qualità per l'erogazione del modello
Le prestazioni predittive dei modelli ML di cui è stato eseguito il deployment e che vengono utilizzati in produzione di solito peggiorano nel tempo. Questo peggioramento può essere dovuto a incoerenze introdotte tra le caratteristiche di pubblicazione e quelle previste dal modello. Queste incoerenze sono chiamate disallineamento addestramento/erogazione. Ad esempio, un modello di suggerimenti potrebbe aspettarsi un valore di input alfanumerico per una caratteristica come il codice del prodotto visualizzato più di recente. Tuttavia, durante la pubblicazione viene passato il nome del prodotto anziché il codice, 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 distribuzione cambiano 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 della sua efficacia. 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 distribuzione in un datastore per l'analisi regolare. La richiesta è l'istanza di input e la risposta è la previsione prodotta dal modello per l'istanza di dati.
- Implementa un processo automatizzato che profila i dati di richiesta-risposta archiviati calcolando statistiche descrittive. Calcola e archivia queste statistiche di pubblicazione a intervalli regolari.
- Identifica il disallineamento addestramento/erogazione causato dallo spostamento e dalla deviazione dei dati confrontando le statistiche dei dati di erogazione con le statistiche di riferimento dei dati di addestramento. Inoltre, analizza come cambiano le statistiche dei dati di pubblicazione nel tempo.
- Identifica il concept drift analizzando il modo in cui le attribuzioni delle caratteristiche per le previsioni cambiano nel tempo.
- Identifica le istanze di dati di previsione considerate valori anomali rispetto ai dati di addestramento. Per trovare questi outlier, utilizza tecniche di rilevamento delle novità e monitora come cambia nel tempo la percentuale di outlier nei dati di distribuzione.
- Imposta avvisi per quando il modello raggiunge le soglie del punteggio di disallineamento sulle caratteristiche predittive chiave nel set di dati.
- Se sono disponibili etichette (ovvero dati di fatto), unisci le etichette effettive alle etichette previste delle istanze di distribuzione per eseguire la 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 il potere predittivo del modello in produzione, ma anche il tipo di richiesta con cui funziona bene e con cui funziona male.
- Definisci gli obiettivi per le metriche di sistema che ritieni importanti e misura le prestazioni dei modelli in base a questi obiettivi.
- Monitora l'efficienza del servizio per assicurarti che il modello possa essere utilizzato 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 gestione. 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 dei modelli
La governance dei modelli è una funzione fondamentale nelle aziende che fornisce linee guida e processi per aiutare i dipendenti a implementare i principi dell'AI dell'azienda. Questi principi possono includere l'evitare modelli che creano o rafforzano i bias e la capacità di giustificare le decisioni prese dall'AI. La funzione di governance del modello garantisce che ci sia un human-in-the-loop. La revisione umana è particolarmente importante per i workload sensibili e ad alto impatto (spesso rivolti agli utenti). Workload di questo tipo possono includere la valutazione del rischio di credito, la classificazione dei candidati per un lavoro, l'approvazione di polizze assicurative e la diffusione di informazioni sui social media.
Linee guida
- Crea 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) lungo l'intera gerarchia dell'organizzazione.
- Conserva la documentazione e i report del modello nel registro dei modelli collegato 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 processo, conservi le versioni dell'elenco di controllo del modello, della documentazione supplementare e di eventuali informazioni aggiuntive che gli stakeholder potrebbero richiedere.
- Valuta il modello su set di dati di benchmark (noti anche come set di dati di riferimento), che coprono sia i casi standard che quelli limite. Inoltre, convalida il modello rispetto agli indicatori di equità per rilevare il bias implicito.
- Spiega agli utenti del modello il comportamento predittivo del modello nel suo complesso e su istanze di input di esempio specifiche. Fornire queste informazioni ti aiuta a comprendere le caratteristiche importanti e il possibile comportamento indesiderato del modello.
- Analizza il comportamento predittivo del modello utilizzando strumenti di analisi what-if per comprendere l'importanza delle diverse caratteristiche dei dati. Questa analisi può anche aiutarti a visualizzare il comportamento del modello su più modelli e sottoinsiemi di dati di input.
- Testa il modello contro gli attacchi avversari per assicurarti che sia solido contro lo sfruttamento in produzione.
- Monitora gli avvisi sulle prestazioni predittive dei modelli in produzione, sulle variazioni dei set di dati e sulla deviazione. Configura gli avvisi per informare gli stakeholder del modello.
- Gestire la sperimentazione, l'implementazione e il rollback online dei modelli.
Passaggi successivi
- Leggi The ML Test Score: A Rubric for ML idoneità alla produzione and Technical Debt Reduction di Google Research.
- Leggi A Brief Guide to Running ML Systems in Production di O'Reilly.
- Leggi Regole del machine learning.
- Prova il corso di formazione Testing and Debugging in Machine learning.
- Leggi il documento Data Validation in Machine Learning.
- Consulta il repository di codice E2E MLOps on Google Cloud.
- Per una panoramica dei principi e dei suggerimenti di architettura specifici per i workload di AI e ML in Google Cloud, consulta la prospettiva di AI e ML nel Well-Architected Framework.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora Cloud Architecture Center.
Collaboratori
Autore: Mike Styer | Solution Architect per l'AI generativa
Altro collaboratore: Amanda Brinhosa | Customer Engineer