Panoramica del monitoraggio del modello
Questo documento descrive in che modo BigQuery ML supporta il monitoraggio dei modelli di machine learning (ML) tramite la valutazione e il confronto dei dati utilizzati da un modello. Ciò include il confronto dei dati di servizio di un modello con i relativi dati di addestramento. Confrontando i nuovi dati di pubblicazione con quelli usati in precedenza.
Comprendere i dati utilizzati dai tuoi modelli è un aspetto fondamentale dell'ML, perché questi dati influiscono sulle prestazioni del modello. Comprendere le variazioni tra dati di addestramento e distribuzione sono particolarmente importanti per garantire i modelli rimangono accurati nel tempo. Un modello ha le prestazioni migliori nella fornitura di dati che è simile ai dati di addestramento. Quando i dati di pubblicazione si discostano da quelli utilizzati per addestrare il modello, le prestazioni del modello possono peggiorare, anche se il modello stesso non è cambiato.
BigQuery ML fornisce funzioni per aiutarti ad analizzare il tuo addestramento e fornire i dati per disallineamento e deviazione dei dati:
- Il disallineamento dei dati si verifica quando la distribuzione dei valori delle funzionalità per i dati di addestramento è notevolmente diversa da quella dei dati di pubblicazione in produzione. Le statistiche di addestramento per il modello vengono salvate durante l'addestramento, pertanto i dati di addestramento originali non sono necessari per utilizzare il rilevamento del disallineamento.
- La deviazione dei dati si verifica quando la distribuzione dei dati delle funzionalità in produzione cambia in modo significativo nel tempo. Il rilevamento della deviazione è supportato per intervalli consecutivi di dati, ad esempio tra diversi giorni di pubblicazione dei dati. In questo modo, puoi ricevere una notifica se i dati di pubblicazione cambiano nel tempo, prima che i set di dati divergano troppo per poter addestrare nuovamente il modello.
Utilizza le seguenti funzioni per monitorare i modelli in BigQuery ML:
ML.DESCRIBE_DATA
: calcola le statistiche descrittive per un insieme di dati di addestramento o pubblicazione.ML.VALIDATE_DATA_SKEW
: calcola il statistiche per un insieme di dati di servizio e le confronta con i dati statistiche dei dati calcolate quando un modello BigQuery ML addestrato al fine di identificare differenze anomale tra i due set di dati. Le statistiche vengono calcolate solo per le colonne delle caratteristiche nei dati di pubblicazione che corrispondenze tra le colonne delle caratteristiche nei dati di addestramento, al fine di ottenere per migliorare le prestazioni e ridurre i costi.ML.VALIDATE_DATA_DRIFT
: computing e Confrontare le statistiche di due insiemi di dati di pubblicazione per identificare le differenze anomale tra i due set di dati.ML.TFDV_DESCRIBE
: calcolo granulare per un insieme di dati di addestramento o distribuzione. Questa funzione offre lo stesso comportamento dell'API TensorFlowtfdv.generate_statistics_from_csv
.ML.TFDV_VALIDATE
: confronta per l'addestramento e la pubblicazione delle statistiche dei dati o due insiemi di statistiche dei dati di elaborazione, al fine di identificare le differenze anomale tra i due set di dati. Questa funzione offre lo stesso comportamento dell'API TensorFlowvalidate_statistics
.
Monitoraggio dei casi d'uso
Questa sezione descrive come utilizzare il modello BigQuery ML funzioni di monitoraggio nei casi d'uso comuni.
Monitoraggio di base del disallineamento dei dati
Questo caso d'uso è appropriato per sviluppare e monitorare rapidamente per il disallineamento dei dati senza bisogno di statistiche granulari si integra con una soluzione di monitoraggio esistente.
I passaggi tipici per questo caso d'uso sono i seguenti:
- Esegui la funzione
ML.DESCRIBE_DATA
sui dati di addestramento e gestione. per assicurarti che set di dati si confrontano in modo appropriato tra loro e rientrano nel previsto parametri. - Crea un modello BigQuery ML e addestrarlo sulla base dei dati di addestramento.
- Esegui la funzione
ML.VALIDATE_DATA_SKEW
per confrontare i dati di distribuzione le statistiche con le statistiche dei dati di addestramento calcolate durante la creazione del modello per per vedere se c'è un disallineamento dei dati. - Se si verifica uno scostamento dei dati, esamina la causa principale, modifica i dati di addestramento in modo appropriato e riaddestra il modello.
Monitoraggio della deviazione dei dati di base
Questo caso d'uso è appropriato quando vuoi sviluppare e monitorare rapidamente un modello per la deriva dei dati e non hai bisogno di statistiche sulla deriva granulari da integrare con una soluzione di monitoraggio esistente.
I passaggi tipici per questo caso d'uso sono i seguenti:
- Esegui la funzione
ML.DESCRIBE_DATA
sui dati di addestramento e di pubblicazione per assicurarti che entrambi i set di dati vengano confrontati in modo appropriato e rientrino nei parametri previsti. - Crea un modello BigQuery ML e addestralo sui dati di addestramento.
- Esegui la funzione
ML.VALIDATE_DATA_DRIFT
per confrontare le statistiche per due diversi set di dati di pubblicazione al fine di verificare se è presente una deriva dei dati. Ad esempio, potresti voler confrontare i dati di pubblicazione attuali con quelli storici di una snapshot della tabella o con le funzionalità pubblicate in un determinato momento, che puoi ottenere utilizzando la funzioneML.FEATURES_AT_TIME
. - Se si verifica una deriva dei dati, esamina la causa principale, modifica i dati di addestramento in modo appropriato e riaddestra il modello.
Monitoraggio avanzato di disallineamenti o deviazioni dei dati
Questo caso d'uso è appropriato quando vuoi integrare statistiche su scostamento o deriva granulari con una soluzione di monitoraggio esistente o per altri scopi.
I passaggi tipici per questo caso d'uso sono i seguenti:
- Esegui la funzione
ML.TFDV_DESCRIBE
sui dati di addestramento e gestione a intervalli i dati appropriati per la soluzione di monitoraggio salvare i risultati della query. Questo passaggio consente di confrontare i dati di distribuzione futuri con i dati di addestramento e di pubblicazione dei punti passati in nel tempo. Esegui la funzione
ML.TFDV_VALIDATE
sui dati di addestramento e gestione per la distribuzione o su due insiemi di statistiche dei dati di distribuzione, per valutare il disallineamento dei dati o deviazione delle caratteristiche, rispettivamente. I dati di addestramento e di pubblicazione devono essere forniti come buffer di protocolloDatasetFeatureStatisticsList
di TensorFlow in formato JSON. Puoi generare un buffer di protocollo nel formato corretto eseguendo la funzioneML.TFDV_DESCRIBE
oppure puoi caricarlo dall'esterno di BigQuery. L'esempio seguente mostra come valutare disallineamento delle caratteristiche:DECLARE stats1 JSON; DECLARE stats2 JSON; SET stats1 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`) ); SET stats2 = ( SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`) ); SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW'); INSERT `myproject.mydataset.serve_stats` (t, dataset_feature_statistics_list) SELECT CURRENT_TIMESTAMP() AS t, stats1;
Se si verifica uno scostamento o una deriva dei dati, esamina la causa principale, aggiusta i dati di addestramento in modo appropriato e addestra nuovamente il modello.
Automazione del monitoraggio
Puoi automatizzare il monitoraggio utilizzando una query pianificata per eseguire la funzione di monitoraggio, valutare l'output e addestrare nuovamente il modello se vengono rilevate anomalie. Devi attivare le notifiche via email nell'ambito della configurazione della query pianificata.
Per un esempio che mostra come automatizzare la funzione ML.VALIDATE_DATA_SKEW
, consulta
Automatizzare il rilevamento dell'errore di inclinazione.