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. Sono inclusi il confronto dei dati di pubblicazione di un modello con i dati di addestramento e il confronto dei nuovi dati di pubblicazione con quelli utilizzati in precedenza.
Comprendere i dati utilizzati dai modelli è un aspetto fondamentale della ML, perché questi dati influiscono sul rendimento del modello. È particolarmente importante comprendere eventuali variazioni tra i dati di addestramento e di pubblicazione per garantire che i modelli rimangano accurati nel tempo. Un modello offre il rendimento migliore con i dati di pubblicazione 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 i dati di addestramento e di pubblicazione per rilevare spostamenti dei dati e spostamenti 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 del modello vengono salvate durante l'addestramento, pertanto non sono necessari i dati di addestramento originali 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 deriva è supportato per intervalli consecutivi di dati, ad esempio tra giorni diversi 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 le statistiche per un insieme di dati di pubblicazione e poi confrontale con le statistiche dei dati di addestramento calcolate durante l'addestramento di un modello BigQuery ML per identificare le differenze anomale tra i due set di dati. Le statistiche vengono calcolate solo per le colonne delle funzionalità nei dati di pubblicazione che corrisponde alle colonne delle funzionalità nei dati di addestramento, al fine di ottenere prestazioni migliori e costi inferiori.ML.VALIDATE_DATA_DRIFT
: calcola e confronta le statistiche di due insiemi di dati di pubblicazione per identificare le differenze anomale tra i due set di dati.ML.TFDV_DESCRIBE
: calcola statistiche descrittive granulari per un insieme di dati di addestramento o di pubblicazione. Questa funzione offre lo stesso comportamento dell'API TensorFlowtfdv.generate_statistics_from_csv
.ML.TFDV_VALIDATE
: confronta le statistiche per l'addestramento e la pubblicazione dei dati o due insiemi di statistiche relative alla pubblicazione dei dati per identificare le differenze anomale tra i due insiemi di dati. Questa funzione offre lo stesso comportamento dell'API TensorFlowvalidate_statistics
.
Casi d'uso di monitoraggio
Questa sezione descrive come utilizzare le funzioni di monitoraggio del modello BigQuery ML nei casi d'uso di monitoraggio più comuni.
Monitoraggio di base dell'asimmetria dei dati
Questo caso d'uso è appropriato quando vuoi sviluppare e monitorare rapidamente un modello per lo scostamento dei dati e non hai bisogno di statistiche granulari sullo scostamento per integrarlo 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_SKEW
per confrontare le statistiche dei dati di pubblicazione con quelle dei dati di addestramento calcolate durante la creazione del modello per verificare se è presente un disallineamento dei dati. - Se è presente uno scostamento dei dati, esamina la causa principale, modifica i dati di addestramento in modo appropriato e poi riaddestra il modello.
Monitoraggio di base della deriva dei dati
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 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 un 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 pubblicazione a intervalli appropriati per la tua soluzione di monitoraggio e salva i risultati della query. Questo passaggio ti consente di confrontare i dati di pubblicazione futuri con i dati di addestramento e di pubblicazione di punti nel tempo passati. Esegui la funzione
ML.TFDV_VALIDATE
sulle statistiche dei dati di addestramento e di pubblicazione o su due insiemi di statistiche dei dati di pubblicazione per valutare rispettivamente lo scostamento dei dati o la deriva delle funzionalità. 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 la distorsione dei fattori: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 riaddestra 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'asimmetria.