Panoramica del monitoraggio del modello

.

Questo documento descrive in che modo BigQuery ML supporta il monitoraggio dei modelli di machine learning (ML) attraverso la valutazione e il confronto dei dati utilizzati da un modello. Ciò include il confronto dei dati di servizio di un modello con i dati di addestramento e il confronto dei nuovi dati di distribuzione con i dati di pubblicazione utilizzati in precedenza.

Comprendere i dati utilizzati dai modelli è un aspetto fondamentale dell'ML, perché questi dati influiscono sulle prestazioni del modello. Comprendere qualsiasi variazione tra i dati di addestramento e quelli di distribuzione è particolarmente importante per garantire che i modelli rimangano accurati nel tempo. Un modello ha le prestazioni migliori sulla pubblicazione di dati simili a quelli di addestramento. Quando i dati di distribuzione si discostano dai dati utilizzati per addestrare il modello, le prestazioni del modello possono peggiorare, anche se il modello stesso non è cambiato.

BigQuery ML offre funzioni per aiutarti ad analizzare i dati di addestramento e distribuzione per individuare eventuali disallineamenti e deviazioni dei dati:

  • Un disallineamento dei dati si verifica quando la distribuzione dei valori delle caratteristiche per i dati di addestramento è molto diversa dalla distribuzione dei dati in produzione. Le statistiche di addestramento del 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 notevolmente nel tempo. Il rilevamento della deviazione è supportato per intervalli consecutivi di dati, ad esempio tra diversi giorni di distribuzione dei dati. In questo modo puoi ricevere una notifica se i dati di gestione cambiano nel tempo, prima che i set di dati divergano troppo per riaddestrare il 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 distribuzione.
  • ML.VALIDATE_DATA_SKEW: calcola le statistiche per un set di dati di pubblicazione e poi confrontale con le statistiche dei dati di addestramento calcolate al momento dell'addestramento di un modello BigQuery ML, 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 gestione 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 al fine di identificare differenze anomale tra i due set di dati.
  • ML.TFDV_DESCRIBE: calcola statistiche descrittive granulari per un insieme di dati di addestramento o 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 set di statistiche sui dati di pubblicazione al fine di identificare differenze anomale tra i due set di dati. Questa funzione fornisce lo stesso comportamento dell'API TensorFlow validate_statistics.

Monitoraggio dei casi d'uso

Questa sezione descrive come usare le funzioni di monitoraggio del modello BigQuery ML nei casi d'uso più comuni.

Monitoraggio di base del disallineamento dei dati

Questo caso d'uso è appropriato quando vuoi sviluppare e monitorare rapidamente un modello per rilevare il disallineamento dei dati e non hai bisogno di statistiche di disallineamento granulari per integrarsi 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 gestione per assicurarti che entrambi i set di dati siano confrontati in modo appropriato tra loro e rientrino nei parametri previsti.
  2. Creare un modello BigQuery ML e addestrarlo sulla base dei dati di addestramento.
  3. Esegui la funzione ML.VALIDATE_DATA_SKEW per confrontare le statistiche dei dati di distribuzione con le statistiche dei dati di addestramento calcolate durante la creazione del modello per verificare se c'è un disallineamento dei dati.
  4. Se è presente un disallineamento dei dati, analizza la causa principale, regola i dati di addestramento in modo appropriato e quindi riaddestra il modello.

Monitoraggio della deviazione dei dati di base

Questo caso d'uso è appropriato per sviluppare e monitorare rapidamente un modello per rilevare la deviazione nei dati e non hai bisogno di statistiche di deviazione granulari per integrarsi 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 gestione per assicurarti che entrambi i set di dati siano confrontati in modo appropriato tra loro e rientrino nei parametri previsti.
  2. Creare un modello BigQuery ML e addestrarlo sulla base dei dati di addestramento.
  3. Esegui la funzione ML.VALIDATE_DATA_DRIFT per confrontare le statistiche di due diversi set di dati di pubblicazione e verificare se è presente una deviazione nei dati. Ad esempio, puoi confrontare i dati di pubblicazione attuali con i dati di pubblicazione storici provenienti da uno snapshot di tabella o con le funzionalità pubblicate in un determinato momento, che puoi ottenere utilizzando la funzione ML.FEATURES_AT_TIME.
  4. Se c'è una deviazione nei dati, analizza la causa principale, regola i dati di addestramento in modo appropriato e quindi riaddestra il modello.

Monitoraggio avanzato del disallineamento o della deviazione dei dati

Questo caso d'uso è appropriato quando vuoi che le statistiche granulari di disallineamento o deviazione vengano integrate 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 gestione a intervalli appropriati alla tua soluzione di monitoraggio e salva i risultati della query. Questo passaggio consente di confrontare i dati di pubblicazione futuri con i dati di addestramento e di pubblicazione relativi a momenti passati.
  2. Esegui la funzione ML.TFDV_VALIDATE sulle statistiche dei dati di addestramento e gestione o su due insiemi di statistiche dei dati di pubblicazione per valutare il disallineamento dei dati o la deviazione delle caratteristiche, rispettivamente. I dati di addestramento e pubblicazione devono essere forniti sotto forma di buffer di protocollo DatasetFeatureStatisticsList TensorFlow in formato JSON. Puoi generare un buffer di protocollo nel formato corretto eseguendo la funzione ML.TFDV_DESCRIBE oppure caricarlo dall'esterno di BigQuery. L'esempio seguente mostra come valutare il disallineamento delle caratteristiche:

    DECLARE stats1 JSON;
    DECLARE stats2 JSON;
    
    SET stats1 = (
      SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`)
    );
    SET stats2 = (
      SELECT * 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. In caso di disallineamento o deviazione dei dati, analizza la causa principale, regola i dati di addestramento in modo appropriato e quindi 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 abilitare 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 del disallineamento.