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_DESCRIBE : calcule des statistiques descriptives détaillées pour un ensemble de données d'entraînement ou de diffusion. Cette fonction fournit le même comportement que l'API TensorFlow tfdv.generate_statistics_from_csv.
  • ML.TFDV_VALIDATE : compare les statistiques d'entraînement et de données de diffusion, ou deux ensembles de statistiques de données d'inférence, 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 :

  1. 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.
  2. Créer un modèle BigQuery ML et l'entraîner sur les données d'entraînement.
  3. 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.
  4. 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 :

  1. 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.
  2. Créer un modèle BigQuery ML et l'entraîner sur les données d'entraînement.
  3. 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.
  4. 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 :

  1. 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.
  2. 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 d'inférence, 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 :

    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. En cas de décalage ou de dérive des données, examinez la cause, ajustez les données d'entraînement de manière appropriée, puis réentraînez le modèle.

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.

Pour obtenir un exemple illustrant l'automatisation de la fonction ML.VALIDATE_DATA_SKEW, consultez la section Automatiser la détection des décalages.