Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Présentation de la surveillance des modèles
Ce document décrit la façon dont BigQuery ML prend en charge la surveillance des modèles de machine learning (ML) via l'évaluation et la comparaison des données utilisées par un modèle. Cela inclut la comparaison des données de diffusion d'un modèle avec ses données d'entraînement, ainsi que la comparaison des nouvelles données de diffusion aux données de diffusion utilisées précédemment.
Comprendre les données utilisées par vos modèles est un aspect essentiel du ML, car ces données affectent les performances des modèles. Il est particulièrement important de comprendre la variance entre vos données d'entraînement et de diffusion pour vous assurer que vos modèles restent précis au fil du temps. Un modèle fonctionne mieux sur des données de diffusion semblables aux données d'entraînement. Lorsque les données d'entrée s'écartent des données utilisées pour entraîner le modèle, les performances du modèle peuvent se dégrader, même si le modèle lui-même n'a pas changé.
BigQuery ML fournit des fonctions permettant d'analyser vos données d'entraînement et de diffusion pour détecter les décalages de données et la dérive des données :
Un décalage des données se produit lorsque la distribution des valeurs de caractéristiques pour les données d'entraînement est très différente de celle des données diffusées en production. Les statistiques d'entraînement du modèle sont enregistrées lors de l'entraînement du modèle. Les données d'entraînement d'origine ne sont donc pas nécessaires pour utiliser la détection des écarts.
Une dérive de prédiction se produit lorsque la distribution des données de caractéristiques en production change de manière significative au fil du temps. La détection des dérives est compatible avec des segments de données consécutifs, par exemple entre différents jours de diffusion de données. Cela vous permet d'être averti si les données de diffusion changent au fil du temps, avant que les ensembles de données ne divergent trop pour réentraîner le modèle.
Utilisez les fonctions suivantes pour surveiller des modèles dans BigQuery ML :
ML.DESCRIBE_DATA : calcule des statistiques descriptives pour un ensemble de données d'entraînement ou de diffusion.
ML.VALIDATE_DATA_SKEW : calcule les statistiques d'un ensemble de données de diffusion, puis les compare aux statistiques de données d'entraînement calculées lors de l'entraînement d'un modèle BigQuery ML., afin d'identifier les différences anormales entre les deux ensembles de données.
Les statistiques ne sont calculées que pour les colonnes de caractéristiques dans les données de diffusion qui correspondent aux colonnes de caractéristiques dans les données d'entraînement, afin d'obtenir de meilleures performances et de réduire les coûts.
ML.VALIDATE_DATA_DRIFT : calcule et compare les statistiques de deux ensembles de données de diffusion afin d'identifier les différences anormales entre les deux ensembles de données.
ML.TFDV_VALIDATE : compare les statistiques d'entraînement et de données de diffusion, ou deux ensembles de statistiques de données de service, afin d'identifier les différences anormales entre les deux ensembles de données.
Cette fonction fournit le même comportement que l'API TensorFlow validate_statistics.
Cas d'utilisation de la surveillance
Cette section explique comment utiliser les fonctions de surveillance de modèle BigQuery ML dans les cas d'utilisation courants de surveillance.
Surveillance de base des décalages de données
Ce cas d'utilisation est approprié lorsque vous souhaitez développer et surveiller rapidement un modèle pour détecter des décalages de données, et que vous n'avez pas besoin de statistiques de décalage précises pour l'intégrer à une solution de surveillance existante.
Les étapes types de ce cas d'utilisation sont les suivantes :
Exécutez la fonction ML.DESCRIBE_DATA sur vos données d'entraînement et de diffusion pour vous assurer que les deux ensembles de données sont comparables l'un à l'autre et respectent les paramètres attendus.
Exécutez la fonction ML.VALIDATE_DATA_SKEW pour comparer les statistiques des données de diffusion avec les statistiques de données d'entraînement calculées lors de la création du modèle afin de voir s'il existe un décalage dans les données.
En cas de décalage dans les données, examinez la cause, ajustez les données d'entraînement de manière appropriée, puis réentraînez le modèle.
Surveillance de base de la dérive des données
Ce cas d'utilisation est approprié lorsque vous souhaitez développer et surveiller rapidement un modèle pour détecter la dérive des données et que vous n'avez pas besoin de statistiques de dérive détaillées pour l'intégrer à une solution de surveillance existante.
Les étapes types de ce cas d'utilisation sont les suivantes :
Exécutez la fonction ML.DESCRIBE_DATA sur vos données d'entraînement et de diffusion pour vous assurer que les deux ensembles de données sont comparables l'un à l'autre et respectent les paramètres attendus.
Exécutez la fonction ML.VALIDATE_DATA_DRIFT pour comparer les statistiques de deux ensembles de données de diffusion différents et voir s'il existe une dérive des données. Par exemple, vous pouvez comparer les données de diffusion actuelles aux données de diffusion historiques d'un instantané de table ou aux caractéristiques diffusées à un moment précis, que vous pouvez obtenir à l'aide de la fonction ML.FEATURES_AT_TIME.
En cas de dérive des données, examinez la cause, ajustez les données d'entraînement en conséquence, puis réentraînez le modèle.
Surveillance avancée des écarts et dérives de données
Ce cas d'utilisation est approprié lorsque vous souhaitez intégrer des statistiques précises des décalages ou des dérives à une solution de surveillance existante ou à d'autres fins.
Les étapes types de ce cas d'utilisation sont les suivantes :
Exécutez la fonction ML.TFDV_DESCRIBE sur vos données d'entraînement et de diffusion à des intervalles appropriés pour votre solution de surveillance, puis enregistrez les résultats de la requête. Cette étape vous permet de comparer les données de diffusion futures aux données d'entraînement et de diffusion entre deux moments précis.
Exécutez la fonction ML.TFDV_VALIDATE sur vos statistiques de données d'entraînement et de diffusion, ou sur deux ensembles de statistiques de données de service, pour évaluer respectivement le décalage de données ou la dérive des caractéristiques. Les données d'entraînement et de diffusion doivent être fournies sous la forme d'un tampon de protocole DatasetFeatureStatisticsList TensorFlow au format JSON. Vous pouvez générer un tampon de protocole au format approprié en exécutant la fonction ML.TFDV_DESCRIBE ou le charger depuis l'extérieur de BigQuery. L'exemple suivant montre comment évaluer le décalage de caractéristiques :
L'utilisation des visualisations Vertex AI offre les avantages suivants :
Visualisations interactives : explorez les distributions de données, les métriques d'asymétrie et les métriques de dérive à l'aide de graphiques dans la console Vertex AI.
Analyse historique : suivez les résultats de la surveillance des modèles au fil du temps à l'aide des visualisations Vertex AI. Cela vous permet d'identifier les tendances et les schémas dans les modifications de données afin de pouvoir mettre à jour et gérer les modèles de manière proactive.
Gestion centralisée : gérez la surveillance de tous les modèles BigQuery ML et Vertex AI dans le tableau de bord Vertex AI unifié.
Vous pouvez activer la visualisation de la sortie de la fonction ML.VALIDATE_DATA_DRIFT en utilisant l'argument MODEL de cette fonction. Vous pouvez activer la visualisation de la sortie de la fonction ML.VALIDATE_DATA_SKEW à l'aide de l'argument enable_visualization_link de cette fonction.
Vous ne pouvez utiliser la visualisation de la surveillance qu'avec les modèles enregistrés dans Vertex AI. Vous pouvez enregistrer un modèle existant à l'aide de l'instruction ALTER MODEL.
Automatisation de la surveillance
Vous pouvez automatiser la surveillance en utilisant une requête programmée pour exécuter la fonction de surveillance, évaluer les résultats et réentraîner le modèle si des anomalies sont détectées. Vous devez activer les notifications par e-mail dans le cadre de la configuration de la requête programmée.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/09/04 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/09/04 (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)."]]