Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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 del machine learning, perché
questi dati influiscono sul rendimento del modello. Comprendere qualsiasi varianza tra i dati di addestramento e quelli di pubblicazione è 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 dai
dati 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, pertanto 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 il retrain 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 servizio.
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_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 ha 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:
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.
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 la presenza di un eventuale disallineamento dei dati.
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:
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.
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.
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:
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 momenti passati.
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à:
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.
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 nella dashboard unificata di Vertex AI.
Puoi attivare la visualizzazione dell'output della funzione ML.VALIDATE_DATA_DRIFT
utilizzando l'argomento MODEL di questa 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 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.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-09 UTC."],[[["\u003cp\u003eBigQuery ML supports model monitoring by comparing a model's serving data to its training data, and new serving data to previously used serving data, to ensure accuracy over time.\u003c/p\u003e\n"],["\u003cp\u003eData skew, which is the difference in feature value distribution between training and serving data, and data drift, which is the change in feature data distribution over time, are two key concepts that BigQuery ML helps you detect.\u003c/p\u003e\n"],["\u003cp\u003eBigQuery ML provides several functions, including \u003ccode\u003eML.DESCRIBE_DATA\u003c/code\u003e, \u003ccode\u003eML.VALIDATE_DATA_SKEW\u003c/code\u003e, \u003ccode\u003eML.VALIDATE_DATA_DRIFT\u003c/code\u003e, \u003ccode\u003eML.TFDV_DESCRIBE\u003c/code\u003e, and \u003ccode\u003eML.TFDV_VALIDATE\u003c/code\u003e, to analyze and compare training and serving data for skew and drift.\u003c/p\u003e\n"],["\u003cp\u003eThere are three main use cases for monitoring, including basic data skew monitoring, basic data drift monitoring, and advanced data skew or drift monitoring, each with its own set of steps using the BigQuery ML monitoring functions.\u003c/p\u003e\n"],["\u003cp\u003eModel monitoring can be automated using scheduled queries in BigQuery to run monitoring functions, evaluate the results, and trigger model retraining if anomalies are found, with email notifications for alerts.\u003c/p\u003e\n"]]],[],null,["# Model monitoring overview\n=========================\n\nThis document describes how BigQuery ML supports monitoring of\nmachine learning (ML) models through evaluation and comparison the data a model\nuses. This includes comparing a model's serving data to its training data,and\ncomparing new serving data to previously used serving data.\n\nUnderstanding the data used by your models is a critical aspect of ML, because\nthis data affects model performance. Understanding any variance between\nyour training and serving data is especially important in ensuring that your\nmodels remain accurate over time. A model performs best on serving data\nthat is similar to the training data. When the serving data deviates from the\ndata used to train the model, the model's performance can deteriorate, even if\nthe model itself hasn't changed.\n\nBigQuery ML provides functions to help you analyze your training\nand serving data for *data skew* and *data drift*:\n\n- *Data skew* occurs when the distribution of feature values for training data is significantly different from serving data in production. Training statistics for the model are saved during model training, so the original training data isn't required for you to use skew detection.\n- *Data drift* occurs when feature data distribution in production changes significantly over time. Drift detection is supported for consecutive spans of data, for example, between different days of serving data. This lets you get notified if the serving data is changing over time, before the data sets diverge too much to retrain the model.\n\nUse the following functions to monitor models in BigQuery ML:\n\n- [`ML.DESCRIBE_DATA`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-describe-data): compute descriptive statistics for a set of training or serving data.\n- [`ML.VALIDATE_DATA_SKEW`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-validate-data-skew): compute the statistics for a set of serving data, and then compare them to the training data statistics that were computed when a BigQuery ML model was trained, in order to identify anomalous differences between the two data sets. Statistics are only computed for feature columns in the serving data that match feature columns in the training data, in order to achieve better performance and lower cost.\n- [`ML.VALIDATE_DATA_DRIFT`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-validate-data-drift): compute and compare the statistics for two sets of serving data in order to identify anomalous differences between the two data sets.\n- [`ML.TFDV_DESCRIBE`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-tfdv-describe): compute fine-grained descriptive statistics for a set of training or serving data. This function provides the same behavior as the [TensorFlow `tfdv.generate_statistics_from_csv` API](https://www.tensorflow.org/tfx/data_validation/api_docs/python/tfdv/generate_statistics_from_csv).\n- [`ML.TFDV_VALIDATE`](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-tfdv-validate): compare the statistics for training and serving data statistics, or two sets of serving data statistics, in order to identify anomalous differences between the two data sets. This function provides the same behavior as the [TensorFlow `validate_statistics` API](https://www.tensorflow.org/tfx/data_validation/api_docs/python/tfdv/validate_statistics).\n\nMonitoring use cases\n--------------------\n\nThis section describes how to use the BigQuery ML model\nmonitoring functions in common monitoring use cases.\n\n### Basic data skew monitoring\n\nThis use case is appropriate when you want to quickly develop and monitor a\nmodel for data skew and don't need fine-grained skew statistics to\nintegrate with an existing monitoring solution.\n\nTypical steps for this use case are as follows:\n\n1. Run the `ML.DESCRIBE_DATA` function on your training and serving data, to make sure both data sets compare appropriately to each other and are within expected parameters.\n2. [Create a BigQuery ML model](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create) and train it on the training data.\n3. Run the `ML.VALIDATE_DATA_SKEW` function to compare the serving data statistics with the training data statistics that were computed during model creation in order to see if there's any data skew.\n4. If there is data skew, investigate the root cause, adjust the training data appropriately, and then retrain the model.\n\n### Basic data drift monitoring\n\nThis use case is appropriate when you want to quickly develop and monitor a\nmodel for data drift and don't need fine-grained drift statistics to\nintegrate with an existing monitoring solution.\n\nTypical steps for this use case are as follows:\n\n1. Run the `ML.DESCRIBE_DATA` function on your training and serving data to make sure both data sets compare appropriately to each other and are within expected parameters.\n2. [Create a BigQuery ML model](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-create) and train it on the training data.\n3. Run the `ML.VALIDATE_DATA_DRIFT` function to compare the statistics for two different serving data sets in order to see if there's any data drift. For example, you might want to compare the current serving data to historical serving data from a [table snapshot](/bigquery/docs/table-snapshots-intro), or to the features served at a particular point in time, which you can get by using the [`ML.FEATURES_AT_TIME` function](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-feature-time).\n4. If there is data drift, investigate the root cause, adjust the training data appropriately, and then retrain the model.\n\n### Advanced data skew or drift monitoring\n\nThis use case is appropriate when you want fine-grained skew or drift statistics\nto integrate with an existing monitoring solution or for other purposes.\n\nTypical steps for this use case are as follows:\n\n1. Run the `ML.TFDV_DESCRIBE` function on your training and serving data at intervals appropriate to your monitoring solution, and [save the query results](/bigquery/docs/writing-results). This step lets you compare future serving data to training and serving data from past points in time.\n2. Run the `ML.TFDV_VALIDATE` function on your training and serving data\n statistics, or on two sets of serving data statistics, to evaluate data skew\n or feature drift, respectively. The training and serving data must be\n provided as a TensorFlow\n [`DatasetFeatureStatisticsList` protocol buffer](https://www.tensorflow.org/tfx/tf_metadata/api_docs/python/tfmd/proto/statistics_pb2/DatasetFeatureStatisticsList)\n in JSON format. You can generate a protocol buffer in the correct\n format by running the `ML.TFDV_DESCRIBE` function, or you can load it from\n outside of BigQuery. The following example shows how to evaluate\n feature skew:\n\n ```googlesql\n DECLARE stats1 JSON;\n DECLARE stats2 JSON;\n\n SET stats1 = (\n SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.training`)\n );\n SET stats2 = (\n SELECT * FROM ML.TFDV_DESCRIBE(TABLE `myproject.mydataset.serving`)\n );\n\n SELECT ML.TFDV_VALIDATE(stats1, stats2, 'SKEW');\n\n INSERT `myproject.mydataset.serve_stats`\n (t, dataset_feature_statistics_list)\n SELECT CURRENT_TIMESTAMP() AS t, stats1;\n ```\n3. If there is data skew or data drift, investigate the root cause,\n adjust the training data appropriately, and then retrain the model.\n\nMonitoring visualization\n------------------------\n\n|\n| **Preview**\n|\n|\n| This product or feature is subject to the \"Pre-GA Offerings Terms\" in the General Service Terms section\n| of the [Service Specific Terms](/terms/service-terms#1).\n|\n| Pre-GA products and features are available \"as is\" and might have limited support.\n|\n| For more information, see the\n| [launch stage descriptions](/products#product-launch-stages).\n\nSome monitoring functions offer integration with\n[Vertex AI model monitoring](/vertex-ai/docs/model-monitoring/overview),\nso that you can use charts and graphs to\n[analyze model monitoring function output](/vertex-ai/docs/model-monitoring/run-monitoring-job#analyze_monitoring_job_results).\n\nUsing Vertex AI visualizations offers the\nfollowing benefits:\n\n- **Interactive visualizations**: explore data distributions, skew metrics, and drift metrics by using charts and graphs in the Vertex AI console.\n- **Historical analysis**: track model monitoring results over time by using Vertex AI visualizations. This lets you identify trends and patterns in data changes so that you can proactively update and maintain models.\n- **Centralized management**: manage monitoring for all BigQuery ML and Vertex AI models in the unified Vertex AI dashboard.\n\nYou can enable visualization of the `ML.VALIDATE_DATA_DRIFT` function output\nby using that function's `MODEL` argument. You can enable visualization of the\n`ML.VALIDATE_DATA_SKEW` function output by using that function's\n`enable_visualization_link` argument.\n\nYou can only use monitoring visualization with models that are\n[registered](/bigquery/docs/managing-models-vertex#register_models) with\nVertex AI. You can register an existing model by using the\n[`ALTER MODEL` statement](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-alter-model).\n\nMonitoring automation\n---------------------\n\nYou can automate monitoring by using a\n[scheduled query](/bigquery/docs/scheduling-queries) to run the\nmonitoring function, evaluate the output, and retrain the model\nif anomalies are detected. You must enable email notifications as part of\n[setting up the scheduled query](/bigquery/docs/scheduling-queries#set_up_scheduled_queries).\n\nFor an example that shows how to automate the `ML.VALIDATE_DATA_SKEW`\nfunction, see\n[Automate skew detection](/bigquery/docs/reference/standard-sql/bigqueryml-syntax-validate-data-skew#automate_skew_detection)."]]