Fournir des schémas à Vertex AI Model Monitoring

Pour démarrer un job de surveillance, Model Monitoring a besoin de connaître le schéma de votre ensemble de données tabulaire afin d'analyser correctement la charge utile d'entrée.

  • Pour les modèles AutoML, Model Monitoring analyse automatiquement le schéma, car Vertex AI a déjà accès à vos données d'entraînement.

  • Pour les modèles entraînés personnalisés :

    • Model Monitoring peut analyser automatiquement des schémas pour les modèles utilisant un format d'entrée clé-valeur standard.

    • Pour les modèles entraînés personnalisés qui n'utilisent pas de format d'entrée clé-valeur, vous devrez peut-être fournir un schéma lors de la création de votre job de surveillance.

    La génération de schéma varie selon que vous activez Model Monitoring pour un point de terminaison de prédiction en ligne ou pour les prédictions par lot.

Analyse de schéma pour les points de terminaison de prédiction en ligne

Pour les prédictions par lot, vous pouvez laisser Model Monitoring analyser automatiquement le schéma ou importer un schéma lorsque vous créez un job de surveillance.

Analyse automatique du schéma

Une fois que vous avez activé la détection des écarts ou des dérives pour un point de terminaison en ligne, Model Monitoring peut généralement analyser automatiquement le schéma d'entrée. Pour l'analyse automatique du schéma, la surveillance des modèles analyse les 1 000 premières requêtes d'entrée pour déterminer le schéma.

L'analyse automatique de schéma fonctionne mieux lorsque les requêtes d'entrée sont formatées en tant que paires clé/valeur, où "key" est le nom de la caractéristique et "value" est la valeur de la caractéristique. Exemple :

"key":"value"
{"TenYearCHD":"0", "glucose":"5.4", "heartRate":"1", "age":"30",
"prevalentStroke":"0", "gender":"f", "ethnicity":"latin american"}

Si les entrées ne sont pas au format "key":"value", la surveillance de modèle tente d'identifier le type de données de chaque caractéristique et attribue automatiquement un nom de caractéristique par défaut à chaque entrée.

Schémas d'instances personnalisés

Vous pouvez fournir votre propre schéma d'entrée lorsque vous créez une tâche de surveillance de votre modèle pour vous assurer que cette fonctionnalité analyse correctement les entrées de votre modèle.

Ce schéma est appelé schéma d'instance d'analyse. Le fichier de schéma spécifie le format de la charge utile d'entrée, les noms de chaque caractéristique et le type de chaque caractéristique.

Le schéma doit être écrit sous forme de fichier YAML au format Open API. L'exemple suivant concerne une requête de prédiction au format object :

type: object
properties:
  age:
    type: string
  BMI:
    type: number
  TenYearCHD:
    type: string
  cigsPerDay:
    type: array
    items:
      type: string
  BPMeds:
    type: string
required:
- age
- BMI
- TenYearCHD
- cigsPerDay
- BPMeds
  • type indique si votre requête de prédiction est l'un des formats suivants :

    • object : paires clé/valeur
    • array : semblable à un tableau
    • string : chaîne CSV
  • properties indique le type de chaque caractéristique.

  • Si la requête est au format tableau ou chaîne au format CSV, spécifiez l'ordre dans lequel les caractéristiques sont répertoriées dans chaque requête sous le champ required.

Si votre requête de prédiction est au format tableau ou chaîne csv, vous devez représenter toutes les caractéristiques manquantes en tant que valeurs nulles. Par exemple, considérons une requête de prédiction avec cinq caractéristiques :

[feature_a, feature_b, feature_c, feature_d, feature_e]

Si feature_c autorise les valeurs manquantes, un exemple de requête manquante feature_c serait : {[1, 2, , 4, 6]}. La longueur de la liste est toujours de 5, avec une valeur nulle au milieu.

Analyse de schéma pour les prédictions par lot

Pour les prédictions par lot, vous pouvez laisser Model Monitoring analyser automatiquement le schéma ou importer un schéma lorsque vous créez une tâche de surveillance.

Analyse automatique du schéma

Si vous ne fournissez pas de schéma lors de la création du job de surveillance, Model Monitoring déduit les types de données de vos caractéristiques et génère votre schéma en fonction de vos données d'entraînement.

Model Monitoring doit également savoir quelle caractéristique est la colonne cible, qui correspond à la caractéristique en cours de prédiction. La colonne cible est exclue du schéma et de la métrique de distorsion des caractéristiques. Vous pouvez spécifier la colonne cible lors de la création d'un job de surveillance.

Spécification de la colonne cible

Si vous ne spécifiez pas la colonne cible lors de la création d'un job de surveillance, Model Monitoring ajoute une étiquette au dernier nom de la caractéristique dans vos données d'entraînement en tant que colonne cible.

Par exemple, Model Monitoring ajoute le libellé column_c dans ces données d'entraînement CSV en tant que colonne cible, car column_c figure à la fin de la première ligne:

column_a, column_b, column_d, column_c
1,"a", 2, "c"
2,"b", 342, "d"

De même, Model Monitoring ajoute l'étiquette column_c dans ce fichier JSONL en tant que colonne cible, car column_c se trouve à la fin de la première ligne :

{"column_a": 1, "column_b": "a", "column_d": 2, "column_c": "c" }
{"column_a": 2, "column_b": "b", "column_c": "d",  "column_d": 342}

Dans les deux exemples, le schéma final ne contient que column_a, column_b et column_d.

Schémas personnalisés

Votre schéma personnalisé spécifie le format de la charge utile d'entrée, les noms de chaque caractéristique et le type de chaque caractéristique.

Le schéma doit être écrit sous forme de fichier YAML avec la syntaxe Open API. L'exemple suivant concerne une requête de prédiction au format object :

type: object
properties:
  age:
    type: string
  BMI:
    type: number
  TenYearCHD:
    type: string
  cigsPerDay:
    type: array
    items:
      type: string
  BPMeds:
    type: string
required:
- age
- BMI
- TenYearCHD
- cigsPerDay
- BPMeds

Model Monitoring calcule le décalage de caractéristiques en fonction des lignes JSON de la sortie de la prédiction par lot. Si votre type de données contient un tableau, la longueur du tableau dans les données d'entrée doit être égale au nombre de caractéristiques spécifiées dans le fichier yaml. Sinon, Model Monitoring exclut l'instance de prédiction ayant une longueur de tableau incorrecte de la fonctionnalité de calcul du décalage de caractéristiques.

Par exemple, les tableaux des types de données suivants contiennent deux caractéristiques :

  • Tableau : {[[1, 2]]}

  • "Clé"/"Valeur" : {"key": 0, "values": [[1, 2]]}

Le schéma correspondant doit également spécifier deux caractéristiques :

type: object
properties:
  name:
    type: string
  age:
    type: number
required:
- name
- age

Étapes suivantes