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 dell'IA, 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 per utilizzare il rilevamento del disallineamento non sono necessari i dati di addestramento originali.
  • 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 TensorFlow tfdv.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 TensorFlow validate_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 su scostamenti granulari per integrarlo con una soluzione di monitoraggio esistente.

I passaggi tipici per questo caso d'uso sono i seguenti:

  1. 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.
  2. Crea un modello BigQuery ML e addestralo sui dati di addestramento.
  3. 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'eventuale distorsione dei dati.
  4. 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:

  1. 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.
  2. Crea un modello BigQuery ML e addestralo sui dati di addestramento.
  3. 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 funzione ML.FEATURES_AT_TIME.
  4. 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 deviazioni o disallineamenti 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:

  1. Esegui la funzione ML.TFDV_DESCRIBE sui dati di addestramento e pubblicazione a intervalli appropriati alla 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.
  2. 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 protocollo DatasetFeatureStatisticsList di TensorFlow in formato JSON. Puoi generare un buffer di protocollo nel formato corretto eseguendo la funzione ML.TFDV_DESCRIBE oppure puoi caricarlo dall'esterno di BigQuery. L'esempio seguente mostra come valutare lo scostamento delle funzionalità:

    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;
  3. 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.

Visualizzazione del monitoraggio

Alcune funzioni di monitoraggio offrono l'integrazione con Vertex AI Model Monitoring, in modo da poter utilizzare grafici e diagrammi per analizzare l'output della funzione di monitoraggio dei modelli.

L'utilizzo delle visualizzazioni di Vertex AI offre i seguenti vantaggi:

  • Visualizzazioni interattive: esplora le distribuzioni dei dati, le metriche di scostamento e le metriche di deviazione utilizzando grafici e diagrammi nella console Vertex AI.
  • Analisi storica: monitora i risultati del monitoraggio dei modelli nel tempo utilizzando le visualizzazioni di Vertex AI. In questo modo puoi identificare tendenze e schemi nelle variazioni dei dati, in modo da aggiornare e gestire in modo proattivo i modelli.
  • Gestione centralizzata: gestisci il monitoraggio di tutti i modelli BigQuery ML e Vertex AI nella dashboard Vertex AI unificata.

Puoi attivare la visualizzazione dell'output della funzione ML.VALIDATE_DATA_DRIFT utilizzando l'argomento MODEL della funzione. Puoi attivare la visualizzazione dell'output della funzione ML.VALIDATE_DATA_SKEW utilizzando l'argomento enable_visualization_link della funzione.

Puoi utilizzare la visualizzazione del monitoraggio solo con i modelli registrati in Vertex AI. Puoi registrare un modello esistente utilizzando la istruzione ALTER MODEL.

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.