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 estende le informazioni discusse nella Guida per i professionisti di MLOps evidenziando e distillando 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 nel funzionamento di soluzioni di machine learning. Il documento presuppone che tu abbia familiarità con MLOps in generale. Non presuppone che tu abbia conoscenze di piattaforme di ML specifiche.
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 è garantire che il software funzioni come previsto in produzione e che soddisfi i requisiti funzionali e non funzionali. Queste pratiche riguardano argomenti come test del software, verifica e convalida del software e registrazione e monitoraggio del software. In DevOps, queste pratiche sono in genere integrate e automatizzate nei processi di CI/CD.
MLOps è un insieme di processi e funzionalità standardizzati per creare, eseguire il deployment e gestire sistemi ML in modo rapido e affidabile. Come per altre soluzioni software, le soluzioni software ML richiedono di integrare queste pratiche di qualità del software e applicarle durante l'intero ciclo di vita di MLOps. Applicando queste pratiche, contribuisci a garantire l'affidabilità e la prevedibilità dei tuoi modelli e che siano conformi ai tuoi requisiti.
Tuttavia, le attività di creazione, deployment e gestione 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 che dipendono 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 e pubblicazione duali. 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 diverso insieme di pratiche di qualità che bilanciano efficacia ed efficienza per produrre e mantenere un modello performante in produzione. Inoltre, le incongruenze tra questi due sistemi comportano errori e prestazioni predittive scarse.
Soggetti a inattività. I modelli spesso peggiorano dopo il deployment in produzione perché non riescono ad adattarsi ai cambiamenti dell'ambiente che rappresentano, ad esempio i cambiamenti stagionali nel comportamento di acquisto. I modelli potrebbero 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 cura per un insieme di requisiti e regole aziendali, i modelli 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à dell'ML può essere il risultato di un'ampia gamma di problemi. Alcuni di questi problemi possono derivare dai bug tipici di qualsiasi programma. Tuttavia, i problemi specifici dell'ML possono includere anche distorsioni e anomalie dei dati, nonché l'assenza di procedure di valutazione e convalida del modello 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 serving. Inoltre, le prestazioni del modello peggiorano nel tempo anche senza questi problemi e possono non funzionare 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 i due seguenti set 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 su diverse sezioni dei dati, ad esempio su diversi dati demografici dei 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 valore specifico, ad esempio 200 millisecondi. Qualsiasi modello che non soddisfi la soglia non viene accettato. Un altro esempio di metrica soddisfacente è la dimensione del modello, che è importante quando vuoi eseguire il deployment del modello su hardware a basso consumo energetico come dispositivi mobili e incorporati.
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 soddisfacenti.
Linee guida per la sperimentazione
- Avere soglie predefinite e fisse per l'ottimizzazione delle metriche e per le metriche soddisfacenti.
- 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 esempio, alberi decisionali o reti neurali) o dal framework del modello (ad esempio, TensorFlow o Scikit-learn).
- Assicurati di avere un modello di base con cui confrontare. Questa baseline può essere costituita da euristiche hardcoded o da un semplice modello che prevede il valore target medio o modale. Utilizza il modello di base per controllare le prestazioni del modello ML. Se il modello ML non è migliore del modello di base, c'è un problema fondamentale nel modello ML.
- Tieni traccia di ogni esperimento eseguito per aiutarti con la riproducibilità e il miglioramento incrementale. Per ogni esperimento, memorizza i valori degli iperparametri, la selezione delle funzionalità e i valori di inizializzazione casuali.
Linee guida per la qualità dei dati
- Affronta eventuali classi sbilanciate all'inizio degli esperimenti scegliendo la metrica di valutazione corretta. Inoltre, applica tecniche come l'assegnazione di un peso maggiore alle istanze della classe di minoranza o il sottocampionamento delle istanze della classe di maggioranza.
- Assicurati di comprendere l'origine dati a portata di mano 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 divisione dei dati di test separata (holdout) per la valutazione finale del modello. La suddivisione del test non deve essere visualizzata durante l'addestramento e non deve essere utilizzata per l'ottimizzazione degli iperparametri.
- Assicurati che le suddivisioni di addestramento, convalida e test siano rappresentative in modo uniforme dei dati di input. Il campionamento di una suddivisione di test dipende dalla natura dei dati e dell'attività di ML in questione. Ad esempio, la suddivisione stratificata è pertinente alle attività di classificazione, mentre la suddivisione cronologica è pertinente alle attività di serie temporali.
- Assicurati che le suddivisioni di convalida e test vengano preelaborate separatamente dalla suddivisione dei dati di addestramento. Se le suddivisioni vengono pre-elaborate in una miscela, 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 soddisfino anche i requisiti di addestramento del modello. Ad esempio, questa attività può essere applicata alle distribuzioni di istanze positive e negative.
- Disporre di 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. Altrimenti, puoi lasciare che il modello si addestri per l'intero set di iterazioni massime. Tuttavia, salva un nuovo snapshot del modello solo se il suo rendimento sul set di dati di convalida migliora rispetto allo snapshot precedente.
Linee guida per la qualità dei modelli
- 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'elevata precisione per questi esempi, potrebbe esserci un bug nell'implementazione del modello o nella routine di addestramento.
- Quando addestri le reti neurali, monitora i valori
NaN
nella perdita e la percentuale di pesi con valori pari a zero durante l'addestramento del modello. Questi valoriNaN
o pari a zero possono indicare calcoli aritmetici errati o gradienti che tendono a zero o all'infinito. Visualizzare le variazioni nella distribuzione dei valori di ponderazione nel tempo può aiutarti a rilevare gli spostamenti delle covariate interne che rallentano l'addestramento. Puoi applicare la normalizzazione dei batch per alleviare 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 underfitting. Se riscontri uno di questi problemi, esegui i miglioramenti pertinenti. Ad esempio, se si verifica un sottadattamento, puoi aumentare la capacità di apprendimento del modello. Se si è verificato un overfitting, potresti applicare la regolarizzazione.
- Analizza le istanze classificate in modo errato, in particolare quelle con un'elevata confidenza della previsione e le classi più confuse nella matrice di confusione multiclasse. Questi errori possono essere un'indicazione di esempi di addestramento etichettati in modo errato. Gli errori possono anche identificare un'opportunità per il pre-elaborazione dei dati, ad esempio <x0A>la rimozione di outlier o per la creazione di nuove funzionalità per distinguere <x0A>tra queste classi.
- Analizza i punteggi di importanza delle funzionalità e pulisci quelle che non migliorano abbastanza la qualità del modello. I modelli parsimoniosi sono preferiti a quelli complessi.
Norme sulla qualità per l'implementazione della pipeline di addestramento
Man mano che implementi la 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 delle nuove modifiche al codice oppure prima di eseguire il deployment della pipeline di addestramento nell'ambiente di destinazione.
Linee guida
- Esegui il test delle unità della funzionalità di feature engineering.
- Esegui test unitari sulla codifica degli input per il modello.
- Esegui test delle unità dei moduli implementati dall'utente (personalizzati) dei modelli in modo indipendente, ad esempio esegui test delle unità di convoluzione e pooling dei grafi personalizzati o dei livelli di attenzione personalizzati.
- Esegui test delle unità per qualsiasi funzione di perdita o valutazione personalizzata.
- Esegui test unitari sui tipi e sulle forme di output del modello rispetto agli input previsti.
- Esegui test unitari per verificare che la funzione
fit
del modello funzioni senza errori su un paio di piccoli batch di dati. I test devono assicurarsi 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 unità della funzionalità di salvataggio e caricamento del modello.
- Esegui test unitari delle interfacce di servizio del modello esportato rispetto agli input non elaborati e agli output previsti.
- Testa i componenti dei passaggi della pipeline con input simulati 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 flusso di lavoro venga eseguito correttamente 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 eseguito il deployment venga eseguita sui dati live in parallelo alla 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 tipici flussi di lavoro di addestramento 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. Le attività aggiuntive possono includere l'esecuzione dell'addestramento del modello auto-supervisionato che utilizza dati non etichettati o la creazione di un indice approssimativo del vicino più prossimo 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 da implementare 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 flusso di lavoro di addestramento, in particolare passaggi di convalida dei dati e 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 flusso di lavoro di addestramento. Il passaggio di convalida dei dati profila i nuovi dati di addestramento di input inseriti nella pipeline. Durante la profilazione, la pipeline utilizza uno schema di dati predefinito, creato durante il processo di sviluppo ML, per rilevare 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 identificare e risolvere questi problemi.
Linee guida per la convalida dei dati
- Verifica che le funzionalità dei dati di addestramento estratti siano complete e che corrispondano allo schema previsto, ovvero che non manchino funzionalità e che non ne siano state aggiunte. Verifica inoltre che le funzionalità corrispondano ai volumi previsti.
- Convalida i tipi di dati e le forme delle funzionalità nel set di dati inserite nella pipeline di addestramento.
- Verifica che i formati di funzionalità specifiche (ad esempio 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à. Una frazione elevata di valori mancanti in una determinata caratteristica può influire sull'addestramento del modello. I valori mancanti di solito indicano una fonte di funzionalità non affidabile.
- Convalida i domini delle funzionalità di input. Ad esempio, verifica se sono presenti modifiche in un vocabolario di caratteristiche categoriche o nell'intervallo di caratteristiche numeriche e adatta di conseguenza la pre-elaborazione dei dati. Come altro esempio, gli intervalli per le funzionalità numeriche potrebbero cambiare se un aggiornamento nel sistema upstream che compila le funzionalità 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 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 il tipo di pagamento più comune viene modificato 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 l'implementazione in produzione.
Linee guida per la convalida del modello
- Per la valutazione finale del modello, utilizza una suddivisione di 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 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 segmenti di dati importanti come gli utenti per paese o i film per genere. Se esegui i test sui 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) in base alla suddivisione dei dati di test e confrontalo con il modello candidato (sfidante) prodotto dalla pipeline di addestramento.
- Convalida il modello in base agli indicatori di equità per rilevare il bias implicito. Ad esempio, il bias implicito potrebbe essere indotto 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 in base alle metriche di ottimizzazione e a quelle di soddisfazione. In alternativa, puoi convalidare il modello solo in base alle metriche di ottimizzazione e rimandare la convalida in base alla metrica di soddisfazione fino alla fase di deployment del modello. Se prevedi di eseguire il deployment di varianti dello stesso modello in ambienti di pubblicazione o carichi di lavoro diversi, potrebbe essere più opportuno posticipare la convalida rispetto alla metrica di soddisfazione. Ambienti o carichi di lavoro 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 metrica di soddisfazione 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.
Quando metti in produzione più pipeline di addestramento continuo con flussi di lavoro complessi, devi monitorare i metadati e gli artefatti prodotti dalle esecuzioni della pipeline. Il monitoraggio di queste informazioni ti aiuta a tracciare ed eseguire il debug di qualsiasi problema che potrebbe 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 machine learning.
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 chiave e gli artefatti di output dei passaggi della pipeline, ad esempio statistiche del set di dati, anomalie del set di dati (se presenti), dati trasformati e schemi, checkpoint del modello e risultati della valutazione del modello.
- Tieni traccia dell'esecuzione dei passaggi della pipeline condizionale 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 di avere un modello addestrato convalidato dal punto di vista delle metriche di ottimizzazione e 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 essere implementato in produzione. A questo punto, devi implementare una serie di test per verificare che il modello sia adatto all'utilizzo 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 relative dipendenze di runtime. Puoi eseguire questa verifica eseguendo lo staging del modello in una versione sandbox dell'ambiente di pubblicazione. Questa verifica ti aiuta ad 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 unitari delle interfacce di pubblicazione degli artefatti del modello in un ambiente di gestione temporanea rispetto agli input non elaborati e agli output previsti.
- Esegui test unitari dell'artefatto del modello in un ambiente di staging per un insieme di casi tipici
e limite di richieste di previsione. Ad esempio, esegui il test delle unità per un'istanza di richiesta in cui tutte le funzionalità sono impostate su
None
. - Esegui un test preliminare 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 di modello e convalida la risposta del servizio.
- Esegui il test canary della versione del modello appena implementata su un piccolo flusso di dati di pubblicazione live. Questo test assicura che il nuovo servizio di 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 pubblicazione in modo rapido e sicuro.
- Esegui esperimenti online per testare il modello appena addestrato utilizzando un piccolo sottoinsieme della popolazione di pubblicazione. Questo test misura il rendimento del nuovo modello rispetto a quello attuale. Dopo aver confrontato il rendimento del nuovo modello con quello del modello attuale, potresti decidere di rilasciare completamente il nuovo modello per gestire tutte le richieste di previsione live. Le tecniche di sperimentazione online includono test A/B e Multi-Armed Bandit (MAB).
Norme sulla qualità per la distribuzione 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 funzionalità di pubblicazione e le funzionalità previste dal modello. Queste incongruenze sono chiamate disallineamento addestramento/gestione. Ad esempio, un modello di suggerimento potrebbe prevedere un valore di input alfanumerico per una caratteristica come un codice prodotto visualizzato più di recente. Tuttavia, durante la pubblicazione viene trasmesso il nome del prodotto anziché il codice prodotto, a causa di un aggiornamento dell'applicazione che utilizza il servizio di modello.
Inoltre, il modello può diventare obsoleto man mano che le proprietà statistiche dei dati di pubblicazione 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 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 gestione in un datastore per l'analisi regolare. 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 di richiesta-risposta archiviati calcolando statistiche descrittive. Calcola e memorizza queste statistiche di pubblicazione a intervalli regolari.
- Identifica il disallineamento addestramento/produzione causato dallo spostamento e dalla deviazione dei dati confrontando le statistiche dei dati di produzione con le statistiche di base dei dati di addestramento. Inoltre, analizza come cambiano le statistiche sui dati di pubblicazione nel tempo.
- Identifica la deviazione del concetto analizzando come cambiano nel tempo le attribuzioni delle caratteristiche per le previsioni.
- Identifica le istanze di dati di pubblicazione 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 pubblicazione.
- Imposta avvisi per quando il modello raggiunge le soglie di skew-score nelle principali funzionalità predittive del set di dati.
- Se sono disponibili etichette (ovvero dati empirici reali), unisci le etichette reali con le etichette previste delle istanze di servizio 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 ha un buon rendimento e quello con cui ha un rendimento scarso.
- 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 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 pubblicazione. Monitora le metriche di efficienza, tra cui utilizzo della CPU, utilizzo della GPU, utilizzo della memoria, latenza del servizio, throughput e tasso di errore.
Governance del modello
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 impongono pregiudizi e la possibilità di giustificare le decisioni prese dall'AI. La funzione di governance del modello assicura che ci sia unhuman-in-the-loopo. La revisione umana è particolarmente importante per i carichi di lavoro sensibili e ad alto impatto (spesso quelli rivolti agli utenti). Carichi di lavoro come questo possono includere la valutazione del rischio di credito, la classificazione dei candidati, l'approvazione di polizze assicurative e la propagazione di informazioni sui social media.
Linee guida
- Disporre di 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.
- Mantieni la documentazione e i report del modello nel registro dei modelli collegato alla versione di un modello, ad esempio utilizzando le schede del modello. 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 per il modello prima di approvarlo per il deployment in produzione. In questo tipo di procedura, conservi le versioni della checklist del modello, la documentazione supplementare e qualsiasi informazione aggiuntiva che le parti interessate potrebbero richiedere.
- Valuta il modello su set di dati di riferimento (noti anche come set di dati di riferimento affidabili), che coprono sia i casi standard sia quelli limite. Inoltre, convalida il modello in base agli indicatori di equità per rilevare i bias impliciti.
- 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 funzionalità 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 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 rispetto agli attacchi avversariali per assicurarti che sia solido contro lo sfruttamento in produzione.
- Tieni traccia degli avvisi sul rendimento predittivo dei modelli in produzione, sulle variazioni del set di dati e sulla deviazione. Configura gli avvisi per informare gli stakeholder del modello.
- Gestisci la sperimentazione online, l'implementazione e il rollback dei modelli.
Passaggi successivi
- Leggi The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction di Google Research.
- Leggi A Brief Guide to Running ML Systems in Production di O'Reilly.
- Leggi le regole per il machine learning.
- Prova il corso di formazione Test e debug nel machine learning.
- Leggi l'articolo Data Validation in Machine Learning.
- Consulta il repository di codice E2E MLOps su Google Cloud.
- Per una panoramica dei principi e dei consigli architetturali specifici per i workload di AI e ML in Google Cloud, consulta la prospettiva AI e ML nel framework Well-Architected.
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Mike Styer | Solution Architect di AI generativa
Altro collaboratore: Amanda Brinhosa | Customer Engineer