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 d'inférence en ligne ou pour les inférences par lot.
Analyse de schéma pour les points de terminaison d'inférence en ligne
Pour les points de terminaison d'inférence en ligne, 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 d'inférence 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
typeindique si votre requête d'inférence est l'un des formats suivants :object: paires clé/valeurarray: semblable à un tableaustring: chaîne CSV
propertiesindique 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 d'inférence 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 d'inférence 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 inférences par lot
Pour les inférences 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 d'asymétrie 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 d'inférence 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 l'inférence 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é dans le fichier YAML. Sinon, Model Monitoring exclut l'instance d'inférence 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
- Activez la détection des écarts et des décalages pour vos modèles.
- Essayez l'exemple de notebook dans Colab ou affichez-le sur GitHub.