Panoramica del monitoraggio dei modelli

Questo documento descrive come 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 tra i dati di pubblicazione di un modello e i relativi dati di addestramento,nonché il confronto dei nuovi dati di pubblicazione con quelli utilizzati in precedenza.

Comprendere i dati utilizzati dai modelli è un aspetto fondamentale del machine learning, perché questi dati influiscono sulle prestazioni del modello. Comprendere le eventuali variazioni tra i dati di addestramento e quelli di pubblicazione è particolarmente importante per garantire che i modelli rimangano accurati nel tempo. Un modello dà i migliori risultati quando fornisce dati simili a quelli di addestramento. Quando i dati di pubblicazione differiscono dai dati utilizzati per addestrare il modello, le prestazioni del modello possono peggiorare, anche se il modello non è cambiato.

BigQuery ML offre funzioni che consentono di analizzare i dati di addestramento e gestione per disallineamento dei dati e derivazione dei dati:

  • Un disallineamento dei dati si verifica quando la distribuzione dei valori delle funzionalità per i dati di addestramento è notevolmente diversa dalla pubblicazione 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 in modo significativo nel tempo. Il rilevamento delle deviazioni è supportato per intervalli di dati consecutivi, 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 divergono 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 gestione.
  • ML.VALIDATE_DATA_SKEW: calcola le statistiche per un insieme di dati di pubblicazione, quindi confrontale con le statistiche dei dati di addestramento calcolate quando è stato addestrato 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 dettagliate per un insieme di dati di addestramento o pubblicazione. Questa funzione fornisce lo stesso comportamento dell'API tfdv.generate_statistics_from_csv di TensorFlow.
  • ML.TFDV_VALIDATE: confronta le statistiche per l'addestramento e la pubblicazione dei dati o due set di statistiche dei dati per la pubblicazione per identificare differenze anomale tra i due set di dati. Questa funzione fornisce lo stesso comportamento dell'API validate_statistics di TensorFlow.

Monitoraggio dei casi d'uso

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

Monitoraggio del disallineamento dei dati di base

Questo caso d'uso è appropriato quando vuoi sviluppare e monitorare rapidamente un modello per il disallineamento dei dati e non hai bisogno di statistiche granulari per l'integrazione 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. 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 le statistiche dei dati di addestramento calcolate durante la creazione del modello per vedere se ci sono disallineamenti dei dati.
  4. In caso di disallineamento dei dati, indaga sulla causa principale, modifica di conseguenza i dati di addestramento 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 di deriva 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. 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 al fine di verificare se si verifica una deviazione dei dati. Ad esempio, potresti voler 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, ottenibili mediante la funzione ML.FEATURES_AT_TIME.
  4. In caso di deviazioni dei dati, analizza la causa principale, modifica di conseguenza i dati di addestramento e poi riaddestra il modello.

Monitoraggio avanzato del disallineamento o della deviazione dei dati

Questo caso d'uso è appropriato per l'integrazione di statistiche dettagliate sul disallineamento o sulla deviazione 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 per la 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 pubblicazione di momenti passati.
  2. Esegui la funzione ML.TFDV_VALIDATE sulle statistiche dei dati di addestramento e gestione o su due set di statistiche dei dati di pubblicazione per valutare rispettivamente il disallineamento dei dati o la deviazione delle caratteristiche. I dati di addestramento e 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 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, indaga sulla causa principale, modifica i dati di addestramento di conseguenza, quindi riaddestra il modello.

Automazione del monitoraggio

Puoi automatizzare il monitoraggio utilizzando una query programmata per eseguire la funzione di monitoraggio, valutare l'output e riaddestrare il modello se vengono rilevate anomalie. Devi abilitare le notifiche via email durante la configurazione della query pianificata.

Per un esempio che mostra come automatizzare la funzione ML.VALIDATE_DATA_SKEW, consulta Automatizzare il rilevamento del disallineamento.