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 pubblicazione di un modello con i dati di addestramento e il confronto dei nuovi dati di pubblicazione con i dati di pubblicazione utilizzati in precedenza.

Comprendere i dati utilizzati dai modelli è un aspetto fondamentale dell'ML, perché questi dati influiscono sul rendimento del modello. Comprendere qualsiasi variazione tra i dati di addestramento e di produzione è particolarmente importante per garantire che i modelli rimangano accurati nel tempo. Un modello offre le prestazioni migliori sui dati di servizio simili 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 servizio per asimmetria dei dati e deriva dei dati:

  • Il disallineamento dei dati si verifica quando la distribuzione dei valori delle caratteristiche per i dati di addestramento è significativamente diversa dai dati di pubblicazione in produzione. Le statistiche di addestramento per il modello vengono salvate durante l'addestramento del modello, quindi 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 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 eseguire di nuovo l'addestramento del modello.

Utilizza le seguenti funzioni per monitorare i modelli in BigQuery ML:

  • ML.DESCRIBE_DATA: calcola statistiche descrittive per un insieme di dati di addestramento o di 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 differenze anomale tra i due set di dati. Le statistiche vengono calcolate solo per le colonne delle caratteristiche nei dati di pubblicazione che corrispondono alle colonne delle caratteristiche nei dati di addestramento, al fine di ottenere prestazioni migliori e costi inferiori.
  • ML.VALIDATE_DATA_DRIFT: calcola e confronta le statistiche per due set di dati di pubblicazione per identificare 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 fornisce 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 di pubblicazione dei dati per identificare differenze anomale tra i due set di dati. Questa funzione fornisce lo stesso comportamento dell'API validate_statistics di TensorFlow.

Casi d'uso di Monitoring

Questa sezione descrive come utilizzare le funzioni di monitoraggio dei modelli BigQuery ML nei casi d'uso comuni di monitoraggio.

Monitoraggio di base dell'asimmetria dei dati

Questo caso d'uso è appropriato quando vuoi sviluppare e monitorare rapidamente un modello per l'asimmetria dei dati e non hai bisogno di statistiche sull'asimmetria 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 siano confrontabili 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 sui dati di pubblicazione con le statistiche sui dati di addestramento calcolate durante la creazione del modello per verificare se si verifica un disallineamento dei dati.
  4. Se si verifica uno sbilanciamento dei dati, analizza la causa principale, regola i dati di addestramento in modo appropriato e poi esegui di nuovo l'addestramento del modello.

Monitoraggio di base della deriva dei dati

Questo caso d'uso è appropriato quando vuoi sviluppare e monitorare rapidamente un modello per la deviazione dei dati e non hai bisogno di statistiche di deviazione 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 siano confrontabili 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 di due diversi set di dati di pubblicazione per verificare se si è verificato uno spostamento dei dati. Ad esempio, potresti voler confrontare i dati di pubblicazione attuali con quelli storici di uno 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, analizza la causa principale, modifica i dati di addestramento in modo appropriato e poi esegui di nuovo l'addestramento del modello.

Monitoraggio avanzato di disallineamenti o deviazioni dei dati

Questo caso d'uso è appropriato quando vuoi statistiche di distorsione o deriva granulari da integrare 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 di 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 pubblicazione di punti temporali passati.
  2. Esegui la funzione ML.TFDV_VALIDATE sulle statistiche dei dati di addestramento e distribuzione o su due set di statistiche dei dati di distribuzione per valutare rispettivamente il disallineamento dei dati o la deviazione delle caratteristiche. I dati di addestramento e di pubblicazione devono essere forniti come DatasetFeatureStatisticsList protocol buffer TensorFlow in formato JSON. Puoi generare un protocol buffer nel formato corretto eseguendo la funzione ML.TFDV_DESCRIBE oppure puoi caricarlo da BigQuery. Il seguente esempio mostra come valutare l'asimmetria 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 una distorsione o una deriva dei dati, analizza la causa principale, modifica i dati di addestramento in modo appropriato e poi esegui di nuovo l'addestramento del 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 del modello.

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

  • Visualizzazioni interattive: esplora le distribuzioni dei dati, le metriche di asimmetria e le metriche di deriva utilizzando grafici 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 pattern nelle modifiche ai dati, in modo da poter aggiornare e gestire in modo proattivo i modelli.
  • Gestione centralizzata: gestisci il monitoraggio di tutti i modelli BigQuery ML e Vertex AI nel dashboard Vertex AI unificato.

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 di questa funzione.

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

Automazione del monitoraggio

Puoi automatizzare il monitoraggio utilizzando una query pianificata per eseguire la funzione di monitoraggio, valutare l'output e riaddestrare 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, vedi Automatizzare il rilevamento della distorsione.