Questo documento contiene alcune linee guida per aiutarti a valutare, garantire e controllare la qualità nella creazione di soluzioni di machine learning predittivo (ML). Offre di machine learning per ogni fase del processo, dallo sviluppo dei modelli ML il deployment dei sistemi di addestramento e dei sistemi di distribuzione in produzione. Il documento amplia le informazioni discusse Guida alle MLOps per professionisti evidenziando e sintetizzando gli aspetti qualitativi in ogni processo del il ciclo di vita MLOps.
Questo documento è rivolto a chiunque sia coinvolto nella creazione, nel deployment e nella gestione di soluzioni di ML. Nel documento si presuppone che tu abbia familiarità con MLOps in generale. Non presuppone che tu abbia conoscenze di una piattaforma di ML specifica.
Panoramica della qualità della soluzione di machine learning
Nel software engineering, molti standard, processi, strumenti e pratiche hanno è stato sviluppato per garantire qualità del software. L'obiettivo è garantire che il software funzioni come previsto in produzione e che soddisfi requisiti funzionali e non funzionali. Queste pratiche tratta argomenti come il software test, software verifica e convalida, e il software registrazione e il monitoraggio. In DevOps, queste pratiche sono in genere integrate e automatizzate nei procedimenti 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, il machine learning le soluzioni software richiedono l'integrazione di queste qualità software e applicarle durante tutto il ciclo di vita delle MLOps. Se applichi queste pratiche, contribuisci ad assicurare l'affidabilità e la prevedibilità dei tuoi modelli, nonché la loro conformità ai tuoi requisiti.
Tuttavia, le attività di creazione, deployment e gestione dei sistemi ML ulteriori sfide che richiedono determinate pratiche di qualità che potrebbero non essere in relazione ad altri sistemi software. Oltre alle caratteristiche della maggior parte degli altri sistemi software, i sistemi di ML hanno le seguenti caratteristiche:
Sistemi basati sui dati. La qualità dei modelli addestrati e dei loro delle previsioni dipende dalla validità dei dati utilizzati per l'addestramento che viene inviato per le richieste di previsione. Qualsiasi sistema software dipende da dati validi, ma i sistemi di ML deducono automaticamente la logica per il processo decisionale dai dati, pertanto sono particolarmente dipendenti dalla qualità degli stessi.
Doppi sistemi di addestramento e pubblicazione. I carichi di lavoro ML in genere sono costituiti da due sistemi di produzione distinti, ma correlati: il sistema di addestramento e il sistema di pubblicazione. Una pipeline di addestramento continuo produce modelli appena addestrati che vengono poi implementati per la pubblicazione delle previsioni. Ogni sistema richiede un insieme diverso di pratiche di qualità che bilanciano efficacia e efficienza al fine di produrre e mantenere un modello a prestazioni elevate e produzione. Inoltre, le incoerenze tra questi due sistemi generano errori e prestazioni di previsione scarse.
Tendono a diventare inattivi. Spesso i modelli si deteriorano dopo il deployment perché i modelli non si adattano ai cambiamenti dell'ambiente che rappresentano, come i cambiamenti stagionali nel comportamento di acquisto. I modelli possono anche non adattarsi alle variazioni dei dati, ad esempio nuovi prodotti e località. Di conseguenza, tenere traccia dell'efficacia del modello la produzione è un'ulteriore sfida per i sistemi ML.
Sistemi di presa di decisioni automatizzate. A differenza di altri sistemi software, in cui azioni vengono accuratamente codificate manualmente in base a una serie di requisiti e regole aziendali, I modelli di ML apprendono le regole dai dati per prendere una decisione. I bias impliciti nei dati possono portare i modelli a produrre risultati ingiusti.
Quando un modello ML di cui è stato eseguito il deployment produce previsioni sbagliate, la scarsa qualità dell'ML può essere il risultato di una vasta gamma di problemi. Alcuni di questi problemi possono derivare dai bug tipici di qualsiasi programma. Tuttavia, i problemi specifici dell'ML possono includere anche asimmetrie e anomalie dei dati, nonché l'assenza di procedure di valutazione e convalida adeguate del modello nell'ambito del processo di addestramento. Un altro potenziale problema è 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 verificarsi errori silenziosi se non viene monitorato correttamente. Pertanto, dovresti includere diversi tipi di test e il monitoraggio dei modelli e dei sistemi di ML durante lo sviluppo, durante il deployment in produzione.
Linee guida sulla qualità per lo sviluppo del modello
Quando sviluppi un modello ML durante la fase di sperimentazione, hai due set di metriche target che puoi usare per valutare rendimento:
- Le metriche di ottimizzazione del modello. Questa metrica riflette dell'efficacia predittiva. La metrica include accuratezza e misura f nelle attività di classificazione, errore percentuale assoluto medio nelle attività di regressione e previsione, guadagno cumulativo scontato nel classificare le attività perplessità e BLEU e i punteggi più alti nei modelli linguistici. Maggiore è il valore di questa metrica, meglio del modello per una determinata attività. In alcuni casi d'uso, per garantire l'equità, è importante ottenere un'efficacia predittiva simile su sezioni diverse ad esempio in base a diversi dati demografici dei clienti.
- Metriche soddisfacenti del modello. Questa metrica riflette una strategia vincolo che il modello deve soddisfare, come la latenza della previsione. Imposti una soglia di latenza su un determinato valore, ad esempio 200 millisecondi. Non sono accettati modelli che non raggiungono la soglia. Un altro esempio di metrica soddisfacente è la dimensione del modello, che è importante quando vuoi eseguire il deployment del modello su hardware a bassa potenza come dispositivi mobili e embedded.
Durante la sperimentazione, sviluppi, addestrini, valuti e esegui il debug del modello per migliorare la sua efficacia rispetto alle metriche di ottimizzazione, senza violare le soglie delle metriche soddisfacenti.
Linee guida per la sperimentazione
- Avere soglie predefinite e fisse per ottimizzare le metriche e per soddisfare le metriche.
- Implementa una routine di valutazione semplificata che prenda un modello e i dati e produce un insieme di metriche di valutazione. Implementa la routine in modo che funzioni a prescindere dal tipo di modello (ad esempio, alberi decisionali o neurali artificiali) o il framework del modello (ad esempio, TensorFlow o Scikit-learn).
- Assicurati di avere un modello di riferimento con cui eseguire il confronto. Questa linea di base può essere costituita da regole di euristica predefinite o da un semplice modello che prevede il valore target medio o modale. Utilizza il modello di riferimento per controllare le prestazioni del modello ML. Se il modello ML non è migliore del modello di riferimento, esiste un problema fondamentale nel modello ML.
- Monitora ogni esperimento condotto per aiutarti a riproducibilità e miglioramento incrementale. Per ogni esperimento, memorizza i valori degli iperparametri, la selezione delle funzionalità e i seed casuali.
Linee guida per la qualità dei dati
- Affronta eventuali classi sbilanciate all'inizio degli esperimenti scegliendo la metrica di valutazione giusta. Inoltre, applica tecniche come l'aumento del peso delle istanze di classe di minoranza o il sottocampionamento delle istanze di classe di maggioranza.
- Assicurati di comprendere l'origine dati in questione ed esegui le pertinente 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 (gruppo di controllo) separata per la valutazione finale del modello. La suddivisione in gruppi di test non deve essere visualizzata durante l'addestramento e non deve essere utilizzata per l'ottimizzazione degli iperparametri.
- Assicurati che le suddivisioni per addestramento, convalida e test siano ugualmente rappresentative dei dati di input. Il campionamento di una suddivisione del test dipende dalla natura dei dati e dell'attività di ML in questione. Ad esempio, stratificati la suddivisione è rilevante per le attività di classificazione, mentre la cronologia la suddivisione è rilevante per le attività delle serie temporali.
- Assicurati che le suddivisioni di convalida e test vengano pre-elaborate distintamente dalla suddivisione dei dati di addestramento. Se le suddivisioni vengono pre-elaborate in un mischia, porta a 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 alcuni le 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 correttamente shuffling in batch, ma soddisfa 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 e il modello degli iperparametri selezione. Puoi anche usare il set di dati di convalida per eseguire l'interruzione. Altrimenti, puoi lasciare che il modello venga addestrato per l'intera durata un determinato insieme di iterazioni massime. Tuttavia, salva solo una nuova istantanea se le sue prestazioni sul set di dati di convalida migliorano rispetto snapshot precedente.
Linee guida per la qualità dei modelli
- Assicurati che i tuoi modelli non abbiano problemi fondamentali che impedire loro di apprendere qualsiasi relazione tra gli input e come output. Puoi raggiungere questo obiettivo addestrando il modello con esempi. Se il modello non raggiunge una precisione 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
NaN
nel tuo e per la percentuale di pesi che hanno zero valori durante la durante l'addestramento del modello. Questi valoriNaN
o zero possono essere indicazioni di calcoli aritmetici errati o la scomparsa o l'esplosione dei gradienti. La visualizzazione delle variazioni nella distribuzione dei valori di peso nel tempo può aiutarti a rilevare i spostamenti delle covariate interne che rallentano l'addestramento. Puoi applicare la normalizzazione batch mitigare questa riduzione della velocità. - Confronta le prestazioni del modello sui dati di addestramento e sui dati di test per capire se si verifica l'overfitting o l'underfitting del modello. Se vedi uno di questi problemi, apportare i miglioramenti pertinenti. Ad esempio, se se c'è l'underfitting, potresti aumentare la capacità di apprendimento del modello. Se si è verificato un sovraadattamento, puoi applicare la regolarizzazione.
- Analizza le istanze classificate in modo errato, in particolare quelle con un l'affidabilità della previsione e le classi più confuse nell'ambiente multiclasse matrice di confusione. Questi errori possono indicare esempi di addestramento etichettati in modo errato. Gli errori possono anche identificare un'opportunità per la preelaborazione dei dati, ad esempio la rimozione degli outlier o la creazione di nuove funzionalità per contribuire a distinguere tra questi tipi di classi.
- Analizzare i punteggi di importanza delle caratteristiche ed eliminare le caratteristiche che non aggiungono un miglioramento sufficiente alla qualità del modello. I modelli parsimoniosi sono preferiti rispetto a quelli complessi.
Norme sulla qualità per l'implementazione della pipeline di addestramento
Quando implementi la pipeline di addestramento del modello e del modello, devi creare una di test in una routine CI/CD. Questi test vengono eseguiti automaticamente esegui il push di nuove modifiche al codice o vengono eseguite prima del deployment della pipeline di per l'ambiente di destinazione.
Linee guida
- Esegui il test di unità della funzionalità di creazione di funzionalità.
- Esegui il test di unità della codifica degli input del modello.
- Esegui test di unità in modo indipendente sui moduli (personalizzati) implementati dall'utente dei modelli, ad esempio sui livelli di pooling e convezione di grafici personalizzati o sui livelli di attenzione personalizzati.
- Esegui il test dell'unità per qualsiasi funzione di perdita o valutazione personalizzata.
- Esegui test di unità sui tipi e sulle forme di output del modello in base agli input previsti.
- Verifica che la funzione
fit
del modello funzioni senza errori con un paio di piccoli batch di dati. I test devono garantire che diminuisce e il tempo di esecuzione della fase di addestramento previsto. Esegui questi controlli perché le modifiche al codice del modello possono introdurre bug che rallentano il processo di addestramento. - Esegui un test unitario della funzionalità di salvataggio e caricamento del modello.
- Testa l'unità delle interfacce di pubblicazione dei modelli esportate rispetto a input non elaborati e rispetto agli output previsti.
- Testa i componenti dei passaggi della pipeline con input simulati e con gli elementi di output.
- Esegui il deployment della pipeline in un ambiente di test ed esegui i test di integrazione della pipeline end-to-end. Per questa procedura, utilizza alcuni dati di test per assicurarti che il flusso di lavoro venga eseguito correttamente e che produca gli elementi previsti.
- Utilizza le funzionalità di deployment shadow quando esegui il deployment di una nuova versione della pipeline di addestramento completamente gestito di Google Cloud. Un deployment shadow ti consente di assicurarti che la versione della pipeline appena implementata venga eseguita sui dati in tempo reale in parallelo con la versione precedente della pipeline.
Norme sulla qualità per l'addestramento continuo
Il processo di addestramento continuo consiste nell'orchestrare e automatizzare l'esecuzione delle pipeline di addestramento. I flussi di lavoro di addestramento tipici includono passaggi come l'importazione e la suddivisione dei dati, la trasformazione dei dati, l'addestramento del modello, la valutazione del modello e la registrazione del modello. Alcune pipeline di addestramento sono costituite da flussi di lavoro più complessi. Altre attività possono includere l'addestramento di modelli auto-supervisionati che utilizzano dati non etichettati o la creazione di un indice approssimativo del vicino più vicino per gli embedding. L'input principale di qualsiasi pipeline di addestramento è la e l'output principale è un nuovo modello candidato in cui eseguire il deployment e produzione.
La pipeline di addestramento viene eseguita automaticamente in produzione in base a una programmazione (ad esempio giornaliera o settimanale) o a un attivatore (ad esempio quando sono disponibili nuovi dati etichettati). Pertanto, devi aggiungere passaggi di controllo qualità al flusso di lavoro di addestramento, in particolare i passaggi di convalida dei dati e i passaggi di convalida del modello. Questi passaggi convalidano gli input e gli output delle pipeline.
Aggiungi il passaggio di convalida dei dati dopo quello di importazione dei dati nell'addestramento. un flusso di lavoro di machine learning. Il passaggio di convalida dei dati profila i nuovi dati di addestramento importati nella pipeline. Durante la profilazione, la pipeline utilizza un oggetto creato durante il processo di sviluppo ML, per rilevare le anomalie in uso. A seconda del caso d'uso, puoi ignorare o rimuovere alcuni record non validi dal set di dati. Tuttavia, altri problemi relativi ai dati appena importati potrebbero interrompe 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 non mancano e nessuna funzionalità aggiunta. Verifica inoltre che le caratteristiche corrispondano come i bilanciatori del carico e i volumi di archiviazione.
- Convalida i tipi di dati e le forme delle funzionalità nel set di dati che vengono importati nella pipeline di addestramento.
- Verifica che i formati di determinate funzionalità (ad es. date, ore, URL, codici postali e indirizzi IP) corrispondano alle espressioni regolari previste. Verifica inoltre che le funzionalità rientrino in intervalli validi.
- Convalida la frazione massima dei valori mancanti per ogni caratteristica. Un gran numero di valori mancanti in una determinata caratteristica può influire sull'addestramento del modello. I valori mancanti di solito indicano un'origine delle caratteristiche inaffidabile.
- Convalida i domini delle caratteristiche di input. Ad esempio, controlla se esistono modifiche a un vocabolario di caratteristiche categoriche o all'intervallo di caratteristiche numeriche e modifica di conseguenza la pre-elaborazione dei dati. Come altro esempio, gli intervalli per le funzionalità numeriche potrebbero cambiare se un aggiornamento nel sistema a monte che compila le funzionalità utilizza unità di misura diverse. Ad esempio, il sistema a monte potrebbe cambiare la valuta da dollari a yen o le distanze da chilometri a metri.
- Verifica che le distribuzioni di ogni caratteristica corrispondano alle aspettative.
Ad esempio, potresti verificare che il valore più comune di una funzionalità per il tipo di pagamento sia
cash
e che questo tipo di pagamento rappresenti il 50% di tutti i valori. Tuttavia, questo test può non riuscire se viene modificato il tipo di pagamento più comune incredit_card
. Una modifica esterna come questa potrebbe richiedere modifiche nel modello.
Aggiungi un passaggio di convalida del modello prima del passaggio di registrazione del modello per assicurarti che solo i modelli che superano i criteri di convalida vengano registrati per il deployment di produzione.
Linee guida per la convalida del modello
- Per la valutazione finale del modello, utilizza un segmento di test separato che non abbia utilizzato 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 come il tutto per tenere conto dei vari modelli di dati. Per i dati delle serie temporali, assicurati che la suddivisione per il test contenga dati più recenti rispetto alla suddivisione per l'addestramento.
- Testa la qualità del modello su sezioni di dati importanti come gli utenti per paese film per genere. Testando i dati segmentati, eviterai il problema del i problemi di rendimento dettagliati vengono mascherati da una metrica di riepilogo globale.
- Valutare il modello attuale (campione) sulla base della suddivisione dati di test e lo confronta con il modello candidato (challenger) e la pipeline di addestramento prodotta.
- Convalida il modello in base agli indicatori di equità per rilevare i bias impliciti. Ad esempio, i bias impliciti potrebbero essere indotti da una diversità insufficiente nei dati di addestramento. Gli indicatori di equità possono rivelare una causa principale dei problemi da risolvere prima di eseguire il deployment del modello in produzione.
Durante l'addestramento continuo, puoi convalidare il modello sia in base alle metriche di ottimizzazione sia a quelle di soddisfazione. In alternativa, puoi convalidare il modello solo in base alle metriche di ottimizzazione e posticipare la convalida in base alla metrica di soddisfazione fino alla fase di deployment del modello. Se prevedi di implementare varianti dello stesso modello in ambienti di pubblicazione o carichi di lavoro diversi, può essere più adatto posticipare la convalida in base alla metrica soddisfacente. Pubblicazione diversa per ambienti o carichi di lavoro (ad esempio ambienti cloud o on-device ambienti in tempo reale o di recupero dati in batch) potrebbero richiedere soglie soddisfacenti delle metriche diverse. Se esegui il deployment in più ambienti, la pipeline di addestramento continuo potrebbe addestrare due o più modelli, ognuno ottimizzato per l'ambiente di deployment di destinazione. Per ulteriori informazioni e un esempio, consulta Deployment doppi su Vertex AI.
Man mano che inserisci più pipeline di addestramento continuo con flussi di lavoro complessi in in produzione, devi monitorare i metadati e gli artefatti eseguiti dalla pipeline produrre. Il monitoraggio di queste informazioni ti aiuta a tracciare e risolvere eventuali problemi che potrebbero verificarsi in produzione. Il monitoraggio delle informazioni aiuta anche a riprodurre degli output delle pipeline in modo da poterne migliorare l'implementazione successive iterazioni di sviluppo ML.
Linee guida per il monitoraggio di metadati e artefatti ML
- Tieni traccia della derivazione del codice sorgente, delle pipeline di cui è stato eseguito il deployment, dei componenti del le 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 chiave e degli artefatti di output dei passaggi della pipeline, come statistiche del set di dati, eventuali anomalie del set di dati, dati trasformati e schemi, punti di controllo e risultati della valutazione del modello.
- Monitora i passaggi condizionali della pipeline eseguiti in risposta alle condizioni, e garantire l'osservabilità aggiungendo meccanismi di alterazione nei casi chiave non vengono eseguiti o se non funzionano.
Linee guida sulla qualità per il deployment del modello
Supponiamo che tu abbia un modello addestrato che è stato convalidato dal punto di vista delle metriche di ottimizzazione e che sia approvato dal punto di vista della governance del modello (come descritto più avanti nella sezione sulla governance del modello). Il modello viene archiviato nel registry dei modelli ed è pronto per essere distribuito in produzione. A questo punto, devi implementare una serie di test per verificare che il modello sia adatto per essere pubblicato nel suo ambiente di destinazione. Devi inoltre automatizzare questi test in una routine CI/CD di modello.
Linee guida
- Verifica che l'elemento del modello possa essere caricato e richiamato correttamente con le relative dipendenze di runtime. Puoi eseguire questa verifica eseguendo il deployment del modello in una versione in sandbox dell'ambiente di pubblicazione. Questo la verifica ti aiuta ad assicurarti che le operazioni e i file binari utilizzati dal modello sono presenti nell'ambiente.
- Convalida le metriche soddisfacenti del modello (se presenti) in un ambiente di gestione temporanea, come dimensioni e latenza del modello.
- Testare le interfacce di pubblicazione degli artefatti modello in un ambiente di gestione temporanea rispetto agli input non elaborati e agli output previsti.
- Esegui il test di unità dell'elemento modello in un ambiente di staging per un insieme di casi tipici e limite delle richieste di previsione. Ad esempio, unit-test per un
in cui tutte le funzionalità sono impostate su
None
. - Esegui il test di fumo dell'API di servizio dei modelli dopo che ne è stato eseguito il deployment nell'account nell'ambiente di destinazione. Per eseguire questo test, invia una singola istanza o di istanze al servizio del modello e convalidare la risposta del servizio.
- Esegui il test Canary della versione del modello appena di cui è stato eseguito il deployment su un piccolo stream di dati di pubblicazione in tempo reale. Questo test garantisce che il nuovo servizio del modello non produca errori prima che il modello venga esposto a un numero elevato di utenti.
- Esegui il test in un ambiente di gestione temporanea di cui puoi eseguire il rollback a una versione della versione del modello in modo rapido e sicuro.
- Eseguire una sperimentazione online per testare il modello appena addestrato utilizzando una un piccolo sottoinsieme della popolazione che serve. Questo test misura il rendimento del nuovo modello rispetto a quello attuale. Dopo aver confrontato i nuovi prestazioni del modello in base a quelle del modello attuale, potresti di rilasciare completamente il nuovo modello per pubblicare tutte le previsioni in tempo reale richieste. Le tecniche di sperimentazione online includono test A/B e Multi-Armed Bandit (MAB).
Linee guida sulla qualità per la pubblicazione del modello
Le prestazioni predittive dei modelli ML di cui viene eseguito il deployment e che pubblicano di produzione di solito si riduce nel tempo. Questo degrado può essere dovuto a incoerenze introdotte tra le funzionalità di pubblicazione e quelle previste dal modello. Queste incoerenze vengono chiamate disallineamento addestramento/produzione. Ad esempio, un modello di suggerimenti potrebbe aspettarsi un valore di input alfanumerico per una funzionalità, ad esempio un prodotto visualizzato più di recente le API nel tuo codice. Invece, viene passato il nome del prodotto anziché il codice del prodotto durante la pubblicazione, a causa di un aggiornamento dell'applicazione che utilizza il modello completamente gestito di Google Cloud.
Inoltre, il modello può diventare obsoleto man mano che le proprietà statistiche dei dati di pubblicazione variano nel tempo e i pattern appresi dal modello attualmente implementato non sono più accurati. In entrambi i casi, il modello non può più fornire previsioni accurate.
Per evitare questo peggioramento delle prestazioni predittive del modello, devi eseguire il monitoraggio continuo dell'efficacia del modello. Il monitoraggio ti consente verificare regolarmente e in modo proattivo che le prestazioni del modello non compromettano la qualità.
Linee guida
- Registra un campione dei payload di richiesta-risposta di pubblicazione in un data store per analisi regolari. La richiesta è l'istanza di input e la risposta è la previsione prodotta dal modello per quell'istanza di dati.
- Implementa un processo automatizzato che profila i dati memorizzati relativi a richieste e risposte calcolando le statistiche descrittive. Calcola e memorizza queste statistiche di pubblicazione a intervalli regolari.
- Identifica il disallineamento addestramento/distribuzione causato dallo spostamento e dalla deviazione dei dati Confrontando le statistiche dei dati di distribuzione con le statistiche di base dei dati di addestramento. Inoltre, analizza come cambiano le statistiche dei dati di pubblicazione nel tempo.
- Identificazione deviazione concettuale 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 valori anomali, utilizza il rilevamento delle novità e monitorare la percentuale di outlier nei dati di pubblicazione cambiamenti nel tempo.
- Imposta avvisi per quando il modello raggiunge le soglie di disallineamento della chiave caratteristiche predittive nel set di dati.
- Se sono disponibili etichette (ovvero, dati di fatto), unisci le etichette vere con le etichette previste delle istanze di gestione per eseguire la valutazione delle prestazioni. Questo approccio è simile al sistema di valutazione che implementi come test A/B durante la sperimentazione online. Continuo la valutazione può identificare non solo la capacità predittiva del modello in di produzione, ma anche identificare il tipo di richiesta con e con cui ha prestazioni scadenti.
- Imposta 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 pubblicato e produzione su larga scala. Questo monitoraggio ti aiuta anche a prevedere e gestire pianificazione della capacità e ti aiuta a stimare il costo dell'infrastruttura. Monitora le metriche di efficienza, tra cui utilizzo della CPU, utilizzo della GPU, utilizzo della memoria, latenza del servizio, velocità effettiva, e la percentuale di errori.
Governance del modello
La governance del modello è una funzione fondamentale delle aziende che fornisce linee guida e processi per aiutare i dipendenti a implementare i principi dell'IA dell'azienda. Questi principi possono includere evitare i modelli che creano o applicano pregiudizi e in grado di giustificare le decisioni prese dall'AI. La funzione di governance del modello garantisce che sia presente un operatore umano. La revisione umana è particolarmente importante per carichi di lavoro sensibili e ad alto impatto (spesso rivolti agli utenti). Carichi di lavoro come questo possono includere l'assegnazione di un punteggio al rischio di credito, il ranking dei candidati per un lavoro, l'approvazione delle polizze assicurative e la propagazione di informazioni sui social media.
Linee guida
- Avere una matrice di assegnazione delle responsabilità per ogni modello in base all'attività. La matrice dovrebbe considerare team interfunzionali (linee di business, data engineering, data science, ML engineering, conformità e così via) all'interno dell'intera gerarchia dell'organizzazione.
- Gestisci la documentazione e i report dei modelli nel registry dei modelli collegati alla versione di un modello, ad esempio utilizzando le schede dei modelli. Questi metadati includono informazioni sui dati utilizzati per addestrare il modello, sulle prestazioni del modello e su eventuali limitazioni note.
- Implementa un processo di revisione per il modello prima di approvarlo il deployment in produzione. In questo tipo di processo, mantieni versioni elenco di controllo del modello, documentazione supplementare ed eventuali informazioni che gli stakeholder potrebbero richiedere.
- Valutare il modello sulla base di set di dati di benchmark (noti anche come golden (set di dati)), che coprono sia i casi standard che i casi limite. Inoltre, convalidare il modello rispetto agli indicatori di equità per contribuire a rilevare pregiudizi impliciti.
- Spiegare agli utenti del modello il comportamento predittivo del modello nel suo complesso e su specifiche istanze di input di esempio. Queste informazioni sono utili di aver compreso le funzionalità importanti e i possibili comportamenti indesiderati un modello di machine learning.
- Analizzare il comportamento predittivo del modello utilizzando strumenti di analisi ipotetici per comprendere l'importanza delle diverse caratteristiche dei dati. Questa analisi può ti aiutano anche a visualizzare il comportamento del modello in più modelli e sottoinsiemi dei dati di input.
- Testa il modello contro gli attacchi di tipo adversarial per assicurarti che sia resistente allo sfruttamento in produzione.
- Monitora gli avvisi sul rendimento predittivo dei modelli in produzione, sulle variazioni del set di dati e sulla deviazione. Configura gli avvisi per notificare gli stakeholder del modello.
- Gestisci la sperimentazione, il lancio e il rollback online dei modelli.
Passaggi successivi
- Leggi The ML Test Score: A Rubric for ML Production Readiness and Technical Debt Reduction di Google Research.
- Letto A Brief Guide to Running ML Systems in Production di O'Reilly.
- Leggi le regole per il machine learning.
- Prova il corso di formazione su Test e debug nel machine learning.
- Leggi il documento Data Validation in Machine Learning.
- Consulta il repository di codice di MLOps end-to-end su Google Cloud.
- Per altre architetture di riferimento, diagrammi e best practice, esplora il Centro architetture cloud.
Collaboratori
Autore: Mike Styer | Generative AI Solution Architect
Altro collaboratore: Amanda Brinhosa | Customer Engineer