Linee guida per lo sviluppo di soluzioni ML di alta qualità

Last reviewed 2022-02-17 UTC

Questo documento contiene alcune linee guida per aiutarti a valutare, garantire e controllare la qualità nelle soluzioni di machine learning (ML). Fornisce suggerimenti per ogni fase del processo, dallo sviluppo dei modelli ML al deployment dei sistemi di addestramento e dei sistemi di gestione alla produzione. Il documento amplia le informazioni discusse nella Guida alle MLOps per professionisti evidenziando e distillando gli aspetti relativi alla qualità in ogni processo del ciclo di vita di MLOps.

Questo documento è rivolto a chiunque sia coinvolto nella creazione, nel deployment e nell'utilizzo di soluzioni ML. Il documento presuppone che tu conosca MLOps in generale. Non presuppone che tu conosca una specifica piattaforma ML.

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 riguardano argomenti come i test del software, la verifica e convalida del software, il logging e il monitoring 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 la creazione, il deployment e l'utilizzo di sistemi ML in modo rapido e affidabile. Come con altre soluzioni software, le soluzioni software ML richiedono di integrare queste pratiche di qualità del software e applicarle durante il ciclo di vita di MLOps. Applicando queste pratiche, contribuisci ad assicurare l'affidabilità e la prevedibilità dei tuoi modelli e che questi siano conformi ai tuoi requisiti.

Tuttavia, le attività di creazione, deployment e utilizzo di 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 hanno le seguenti caratteristiche:

  • Sistemi dipendenti dai dati. La qualità dei modelli addestrati e delle relative 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 di ML deducono automaticamente la logica del processo decisionale dai dati, quindi sono particolarmente dipendenti dalla qualità dei dati.

  • Doppi sistemi di addestramento/pubblicazione. In genere, i carichi di lavoro ML 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 nuovi addestrati, di cui viene eseguito il deployment per fornire previsioni. Ogni sistema richiede una serie diversa 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 uno scarso rendimento predittivo.

  • Si prestano a obsolescenza. Spesso i modelli si riducono dopo il deployment in produzione, perché non riescono ad adattarsi ai cambiamenti dell'ambiente che rappresentano, come i cambiamenti stagionali nel comportamento di acquisto. Inoltre, i modelli possono non adattarsi ai cambiamenti nei dati, come nuovi prodotti e località. Pertanto, tenere traccia dell'efficacia del modello in produzione rappresenta un'ulteriore sfida per i sistemi ML.

  • Sistemi decisionali automatizzati. A differenza di altri sistemi software, in cui le azioni vengono codificate manualmente per un insieme di requisiti e regole aziendali, i modelli ML apprendono le regole dai dati per prendere una decisione. Un bias implicito nei dati può portare i modelli a produrre risultati ingiusti.

Quando un modello ML sottoposto a deployment genera previsioni errate, la scarsa qualità 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 del ML possono anche includere disallineamenti e anomalie dei dati, insieme all'assenza di adeguate procedure di valutazione e convalida del modello come parte 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 deteriorano nel tempo anche senza questi problemi e possono restituire un errore invisibile se non viene monitorato correttamente. Dovresti quindi includere diversi tipi di test e monitoraggio per i modelli e i sistemi 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:

  • Metriche di ottimizzazione del modello. Questa metrica riflette l'efficacia predittiva del modello. La metrica include accuratezza e f-measure nelle attività di classificazione, errore percentuale assoluto medio nelle attività di regressione e previsione, guadagno cumulativo scontato nelle attività di ranking, 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 di dati, ad esempio su diversi dati demografici dei clienti.
  • Metriche soddisfacenti del modello. Questa metrica riflette un vincolo operativo che il modello deve soddisfare, ad esempio la latenza di previsione. Puoi impostare una soglia di latenza su un determinato valore, ad esempio 200 millisecondi. I modelli che non soddisfano la soglia non sono accettati. Un altro esempio di metrica soddisfacente è la dimensione del modello, che è importante quando vuoi eseguire il deployment del modello su hardware a basso consumo, come dispositivi mobili e incorporati.

Durante la sperimentazione, sviluppa, addestra, valuti ed esegui il debug del tuo modello per migliorarne l'efficacia rispetto alle metriche di ottimizzazione, senza violare le soglie delle metriche soddisfacenti.

Linee guida per la sperimentazione

  • Hanno soglie predefinite e fisse per l'ottimizzazione delle metriche e per metriche soddisfacenti.
  • Implementare una routine di valutazione semplificata che acquisisca un modello e dati e produca un set 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 hardcoded o può essere un modello semplice che prevede la media o il valore target della modalità. Usate il modello base per controllare le prestazioni del modello ML. Se il modello ML non è migliore del modello base, c'è un problema fondamentale nel modello ML.
  • Monitora ogni esperimento eseguito per aiutarti a riproducibilità e a un 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 classi sbilanciate all'inizio degli esperimenti scegliendo la metrica di valutazione giusta. Inoltre, applica tecniche come l'aumento della ponderazione delle istanze delle classi di minoranza o il sottocampionamento delle istanze delle classi di minoranza.
  • Assicurati di comprendere l'origine dati in questione ed esegui i pertinenti 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 separata per la valutazione finale del modello. La suddivisione del test non deve essere vista durante l'addestramento e non utilizzarla per l'ottimizzazione degli iperparametri.
  • Assicurati che le suddivisioni per addestramento, convalida e test rappresentino equamente i dati di input. Il campionamento di questa suddivisione del test dipende dalla natura dei dati e dall'attività ML in questione. Ad esempio, la suddivisione stratificata è rilevante per le attività di classificazione, mentre la suddivisione cronologica è rilevante per le attività delle 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 bucket di caratteristiche 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 caratteristiche. Puoi usare questo schema per trovare dati anomali o non validi durante la sperimentazione e l'addestramento.
  • Assicurati che i dati di addestramento siano organizzati correttamente in batch, ma che soddisfino comunque i requisiti di addestramento del modello. Ad esempio, questa attività può essere applicata a distribuzioni di istanze positive e negative.
  • Devi avere un set di dati di convalida separato per l'ottimizzazione degli iperparametri e la selezione dei modelli. Puoi anche utilizzare il set di dati di convalida per eseguire l'interruzione anticipata. Altrimenti, 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 nel set di dati di convalida migliorano rispetto allo snapshot precedente.

Linee guida per la qualità del modello

  • Assicurati che i modelli non presentino problemi fondamentali che impediscono 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.
  • Durante l'addestramento delle reti neurali, monitora i valori NaN della perdita e la percentuale di pesi che hanno valori zero durante l'addestramento del modello. I valori NaN o zero possono essere indicazioni di calcoli aritmetici errati o di gradienti nulli o esplosivi. Visualizzare le variazioni della distribuzione dei valori di peso nel tempo può aiutarti a rilevare i variazioni interne della covariata che rallentano l'addestramento. Puoi applicare la normalizzazione batch per ridurre questa velocità.
  • Confronta le prestazioni del modello sui dati di addestramento e sui dati di test per capire se il modello è overfitting o underfitting. Se rilevi uno di questi problemi, apporta i miglioramenti necessari. Ad esempio, in caso di underfitting, potresti aumentare la capacità di apprendimento del modello. In caso di overfitting, potresti applicare la regolarizzazione.
  • Analizza le istanze classificate in modo errato, in particolare quelle con un'alta affidabilità di previsione e le classi più confuse nella matrice di confusione multi-classe. Questi errori possono essere indicativi di esempi di addestramento etichettati in modo errato. Gli errori possono anche identificare un'opportunità per la pre-elaborazione dei dati, come la rimozione dei valori anomali, o la creazione di nuove funzionalità che consentano di distinguere le classi in questione.
  • Analizza i punteggi di importanza delle caratteristiche e ripulisci le funzionalità che non migliorano abbastanza la qualità del modello. I modelli parsimoniosi hanno la precedenza su quelli complessi.

Linee guida sulla qualità per il deployment della pipeline di addestramento

Quando implementi la pipeline di addestramento dei modelli e dei modelli, devi creare un set di test in una routine CI/CD. Questi test vengono eseguiti automaticamente quando invii nuove modifiche al codice oppure vengono eseguiti prima del deployment della pipeline di addestramento nell'ambiente di destinazione.

Linee guida

  • Testare le funzionalità di feature engineering.
  • Esegui un test delle unità per la codifica degli input nel modello.
  • Testa le unità (personalizzate) dei moduli dei modelli implementati dall'utente in modo indipendente, ad esempio i livelli di pooling e convoluzione del grafico personalizzato test delle unità oppure i livelli di attenzione personalizzati.
  • Esegui il test delle unità per qualsiasi funzione di perdita o valutazione personalizzata.
  • Testa le forme e i tipi di output del modello rispetto agli input previsti.
  • Esegui un test delle unità per dimostrare che la funzione fit del modello funziona senza errori su un paio di piccoli batch di dati. I test dovrebbero garantire che la perdita diminuisca e che il tempo di esecuzione della fase 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 un test delle unità per la funzionalità di salvataggio e caricamento del modello.
  • Esegui un test delle unità per le interfacce di pubblicazione dei modelli esportate rispetto agli input non elaborati e agli output previsti.
  • Testa i componenti dei passaggi della pipeline con input fittizi e 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 durante tutto il processo 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.

Norme sulla qualità per la formazione continua

Il processo di addestramento continuo riguarda l'orchestrazione e l'automazione dell'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 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 di modelli auto-supervisionato che utilizza dati non etichettati o la creazione di un indice del vicino più prossimo approssimato per gli incorporamenti. L'input principale di qualsiasi pipeline di addestramento sono nuovi dati di addestramento e 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 in base 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 i passaggi di convalida dei dati e di convalida del modello. Questi passaggi convalidano gli input e gli output delle pipeline.

Puoi aggiungere il passaggio di convalida dei dati dopo la fase di importazione dei dati nel flusso di lavoro di addestramento. Il passaggio di convalida dei dati profila i nuovi dati di addestramento dell'input importati nella pipeline. Durante la profilazione, 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 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, perciò 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 funzionalità e che non ne siano state aggiunte. Verifica inoltre che le caratteristiche corrispondano ai volumi previsti.
  • Convalida 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 funzionalità (ad esempio date, orari, 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 elemento. Un'ampia parte dei valori mancanti in una particolare caratteristica può influire sull'addestramento del modello. I valori mancanti di solito indicano un'origine delle funzionalità inaffidabile.
  • Convalida i domini delle funzionalità di input. Ad esempio, controlla se sono presenti modifiche nel vocabolario delle caratteristiche categoriche o nell'intervallo di caratteristiche numeriche e regola la pre-elaborazione dei dati di conseguenza. Come 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 a monte potrebbe cambiare valuta da dollari a yen o cambiare 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 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 andare a buon fine se viene modificato il tipo di pagamento più comune in credit_card. Una modifica esterna come questa potrebbe richiedere modifiche al modello.

Aggiungi un passaggio di convalida del modello prima di registrare il modello per assicurarti che solo i modelli che soddisfano 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 del test separata che non è stata utilizzata per l'addestramento del modello o per l'ottimizzazione degli iperparametri.
  • Assegna un punteggio al 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 vari pattern di dati. Per i dati delle serie temporali, assicurati che la suddivisione del test contenga dati più recenti di quella dell'addestramento.
  • Testa la qualità del modello su sezioni di dati importanti, ad esempio utenti per paese o film per genere. Eseguendo test su dati suddivisi in categorie, eviti il problema in cui i problemi di rendimento granulari vengono mascherati da una metrica di riepilogo globale.
  • Valuta l'attuale modello (campione) confrontandolo con la suddivisione dei dati di test e confrontalo con il modello candidato (sfida) prodotto dalla pipeline di addestramento.
  • Convalida il modello in base a indicatori di equità per rilevare i bias impliciti: ad esempio, un bias implicito potrebbe essere indotto da una diversità insufficiente nei dati di addestramento. Gli indicatori di equità possono rivelare i problemi delle cause principali che devi risolvere prima di eseguire il deployment del modello in produzione.

Durante l'addestramento continuo, puoi convalidare il modello sia in base a metriche di ottimizzazione sia a metriche soddisfacenti. In alternativa, puoi convalidare il modello solo in base alle metriche di ottimizzazione e rimandare la convalida rispetto alla metrica di soddisfazione fino alla fase di deployment del modello. Se prevedi di eseguire il deployment di varianti dello stesso modello in diversi ambienti di pubblicazione o carichi di lavoro, potrebbe essere più adatto rinviare la convalida rispetto alla metrica soddisfacente. Ambienti di pubblicazione o carichi di lavoro diversi (ad esempio ambienti cloud e ambienti on-device oppure ambienti in tempo reale e ambienti di recupero dati in batch) potrebbero richiedere soglie di metriche soddisfacenti diverse. Se stai eseguendo il deployment in più ambienti, la pipeline di addestramento continuo potrebbe addestrare due o più modelli, in cui ogni modello è ottimizzato per l'ambiente di deployment di destinazione. Per ulteriori informazioni e un esempio, consulta Doppi deployment su Vertex AI.

Man mano che aggiungi in produzione pipeline di addestramento continuo con flussi di lavoro complessi, devi tenere traccia dei metadati e degli artefatti prodotti dalla pipeline. Il monitoraggio di queste informazioni consente di tracciare ed eseguire il debug di qualsiasi problema che potrebbe verificarsi in fase di produzione. Il monitoraggio delle informazioni consente inoltre di riprodurre gli output delle pipeline, in modo da migliorarne l'implementazione nelle iterazioni di sviluppo ML successive.

Linee guida per il monitoraggio di metadati e artefatti ML

  • Monitora la derivazione del codice sorgente, le pipeline di cui è stato eseguito il deployment, i componenti delle pipeline, le esecuzioni delle pipeline, il set di dati in uso e gli artefatti prodotti.
  • Monitora gli iperparametri e le configurazioni delle esecuzioni della pipeline.
  • Tieni traccia degli input e degli artefatti di output dei passaggi della pipeline, come statistiche del set di dati, anomalie dei 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 che cambiano nel caso in cui i passaggi chiave non vengano eseguiti o non vadano a buon fine.

Linee guida sulla qualità per il deployment del modello

Supponiamo di avere 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 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 alla pubblicazione nel suo ambiente di destinazione. Devi anche automatizzare questi test in una routine CI/CD di 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 la gestione temporanea del modello in una versione con sandbox dell'ambiente di pubblicazione. Questa verifica consente di assicurarsi che le operazioni e i programmi binari utilizzati dal modello siano presenti nell'ambiente.
  • Convalida le eventuali metriche soddisfacenti del modello in un ambiente di gestione temporanea, come le dimensioni e la latenza del modello.
  • Esegui il test delle unità per le interfacce di pubblicazione degli artefatti del modello in un ambiente di gestione temporanea rispetto agli input non elaborati e agli output previsti.
  • Esegui un test delle unità per l'artefatto del modello in un ambiente gestione temporanea per un insieme di casi tipici e periferici di richieste di previsione. Ad esempio, unit-test per un'istanza di richiesta in cui tutte le caratteristiche sono impostate su None.
  • Esegui il test di fumo dell'API del servizio del modello dopo averne eseguito 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.
  • Esegui il test canary della versione del modello di cui è stato appena eseguito il deployment su un piccolo flusso di dati di pubblicazione in tempo reale. Questo test garantisce che il nuovo servizio del modello non generi errori prima che il modello sia esposto a un numero elevato di utenti.
  • Esegui test in un ambiente di gestione temporanea per eseguire il rollback a una versione di pubblicazione precedente del modello in modo rapido e sicuro.
  • Esegui esperimenti online per testare il modello appena addestrato utilizzando un piccolo sottoinsieme della popolazione pubblica. 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 il nuovo modello per soddisfare tutte le tue richieste di previsione in tempo reale. Le tecniche di sperimentazione online includono i test A/B e Multi-Armed Bandit (MAB).

Norme sulla qualità per la pubblicazione del modello

Le prestazioni predittive dei modelli ML di cui viene eseguito il deployment e in fase di produzione di solito si riducono nel tempo. Questo degrado può essere dovuto a incongruenze introdotte tra le funzionalità di pubblicazione e quelle previste dal modello. Queste incoerenze sono chiamate disallineamento addestramento/produzione. Ad esempio, un modello di suggerimenti potrebbe aspettarsi un valore di input alfanumerico per una funzionalità come un codice di prodotto visualizzato più di recente. Invece, il nome del prodotto, anziché il codice del prodotto, viene passato durante la pubblicazione, a causa di un aggiornamento all'applicazione che utilizza il servizio del modello.

Inoltre, il modello può diventare inattivo poiché le proprietà statistiche della deviazione dei dati di pubblicazione nel tempo e i pattern appresi dal modello di cui è stato eseguito il deployment corrente non sono più accurati. In entrambi i casi, il modello non è più in grado di fornire previsioni accurate.

Per evitare questo peggioramento delle prestazioni predittive del modello, devi eseguire il monitoraggio continuo dell'efficacia del modello. Monitoring consente di verificare in modo regolare e proattivo che le prestazioni del modello non si deteriorano.

Linee guida

  • Registra un campione di payload di richiesta e risposta di gestione in un datastore per un'analisi regolare. La richiesta è l'istanza di input e la risposta è la previsione prodotta dal modello per l'istanza di dati.
  • Implementare un processo automatizzato che profila i dati richiesta-risposta archiviati calcolando statistiche descrittive. Calcola e archivia 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 pubblicazione con le statistiche di riferimento dei dati di addestramento. Analizza inoltre le variazioni nel tempo delle statistiche relative ai dati di pubblicazione.
  • Identifica la deviazione concettuale analizzando il modo in cui le attribuzioni delle caratteristiche per le previsioni cambiano nel tempo.
  • Identifica le istanze di dati di gestione che sono considerate outlier in relazione ai dati di addestramento. Per individuare queste anomalie, utilizza tecniche di rilevamento delle novità e monitora le variazioni nel tempo della percentuale di anomalie nei dati di pubblicazione.
  • Imposta avvisi per il momento in cui il modello raggiunge le soglie di disallineamento sulle caratteristiche predittive chiave nel set di dati.
  • Se sono disponibili etichette (ovvero dati empirici reali), unisci le etichette vere alle etichette previste delle istanze di gestione 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 è in grado di identificare non solo la potenza predittiva del modello in produzione, ma anche identificare il tipo di richiesta in cui ha un buon rendimento o uno scarso.
  • Definisci gli obiettivi per le metriche di sistema importanti per te e misura le prestazioni dei modelli in base a tali obiettivi.
  • Monitora l'efficienza del servizio per assicurarti che il modello possa essere utilizzato in produzione su larga scala. Questo monitoraggio aiuta anche a prevedere e gestire la pianificazione della capacità e a stimare il costo dell'infrastruttura di gestione. Monitora le metriche di efficienza, inclusi l'utilizzo della CPU, l'utilizzo della GPU, l'utilizzo della memoria, la latenza del servizio, le velocità effettiva e la percentuale di errori.

Governance del modello

La governance del modello è una funzione fondamentale delle aziende che fornisce linee guida e procedure per aiutare i dipendenti a implementare i principi dell'AI dell'azienda. Questi principi possono includere l'evitare i modelli che creano o applicano bias ed essere in grado di giustificare le decisioni prese dall'AI. La funzione di governance del modello assicura che sia presente un human-in-the-loop. La revisione da parte di persone fisiche è particolarmente importante per carichi di lavoro sensibili e ad alto impatto (spesso rivolti agli utenti). I carichi di lavoro come questo possono includere la valutazione del rischio di credito, il ranking dei candidati a offerte di lavoro, l'approvazione delle polizze assicurative e la propagazione di informazioni sui social media.

Linee guida

  • Disporre di una matrice di assegnazione delle responsabilità per ciascun modello in base all'attività. La matrice deve considerare team interfunzionali (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 dei modelli 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 un processo di revisione per il modello prima di approvarlo per il deployment in produzione. In questo tipo di processo, conservi le versioni dell'elenco di controllo del modello, la documentazione supplementare ed eventuali informazioni aggiuntive che gli stakeholder potrebbero richiedere.
  • Valuta il modello su set di dati di benchmark (noti anche come set di dati dorati), che coprono sia i casi standard che quelli limite. Inoltre, convalida il modello sulla base di indicatori di equità per contribuire a rilevare il bias implicito.
  • Spiega agli utenti del modello il comportamento predittivo del modello nel suo complesso e su specifiche istanze di input di esempio. Queste informazioni consentono di comprendere importanti funzionalità e i possibili comportamenti indesiderati del modello.
  • Analizza il comportamento predittivo del modello utilizzando gli strumenti di analisi dei possibili dati 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 antagonistici per assicurarti che sia solido contro lo sfruttamento in produzione.
  • Traccia gli avvisi sulle prestazioni predittive dei modelli in produzione, in caso di variazioni del set di dati e di deviazioni. Configura gli avvisi per avvisare gli stakeholder del modello.
  • Gestisci la sperimentazione, l'implementazione e il rollback dei modelli online.

Passaggi successivi