Configuration
TFMA stocke sa configuration dans un prototype sérialisé en JSON. Ce prototype consolide la configuration requise pour les données d'entrée, les données de sortie, les spécifications du modèle, les spécifications métriques et les spécifications de découpage.
Tous les pipelines TFMA sont associés à un modèle de base (primaire) et à zéro ou plusieurs modèles candidats (secondaires). La ligne de base et le modèle candidat sont définis par l'utilisateur au début du pipeline et nécessitent chacun un nom unique. Voici des exemples de configurations de configuration typiques qu'un utilisateur peut utiliser :
- Évaluation d'un modèle unique :
- N/A (c'est-à-dire pas de nom)
- Évaluation basée sur la validation :
-
baseline
-
candidate
-
- Évaluation comparative des modèles :
-
my_model_a
-
my_model_b
-
Spécifications du modèle
Les spécifications de modèle sont de type tfma.ModelSpec
et sont utilisées pour définir l'emplacement d'un modèle ainsi que d'autres paramètres spécifiques au modèle. Par exemple, les paramètres suivants sont typiques qui doivent être configurés avant d'exécuter une évaluation :
-
name
- nom du modèle (si plusieurs modèles sont utilisés) -
signature_name
- nom de la signature utilisée pour les prédictions (la valeur par défaut estserving_default
). Utilisezeval
si vous utilisez un EvalSavedModel. -
label_key
- nom de la fonctionnalité associée à l'étiquette. -
example_weight_key
- nom de la fonctionnalité associée à l'exemple de poids.
Spécifications des métriques
Les spécifications de métriques sont de type tfma.MetricsSpec
et sont utilisées pour configurer les métriques qui seront calculées dans le cadre de l'évaluation. Différents problèmes d'apprentissage automatique utilisent différents types de métriques et TFMA offre de nombreuses options pour configurer et personnaliser les métriques calculées. Étant donné que les métriques constituent une très grande partie de TFMA, elles sont discutées en détail séparément dans métriques .
Spécifications de découpage
Les spécifications de découpage sont de type tfma.SlicingSpec
et sont utilisées pour configurer les critères de tranches qui seront utilisés lors de l'évaluation. Le découpage peut être effectué soit par feature_keys
, feature_values
, ou les deux. Voici quelques exemples de spécifications de découpage :
-
{}
- Tranche composée de données globales.
-
{ feature_keys: ["country"] }
- Tranches pour toutes les valeurs de la fonctionnalité « pays ». Par exemple, nous pourrions obtenir les tranches « country:us », « country:jp », etc.
-
{ feature_values: [{key: "country", value: "us"}] }
- Tranche composée de « country:us ».
-
{ feature_keys: ["country", "city"] }
- Tranches pour toutes les valeurs de la fonctionnalité « pays » croisées avec toutes les valeurs de la fonctionnalité « ville » (notez que cela peut être coûteux).
-
{ feature_keys: ["country"] feature_values: [{key: "age", value: "20"}] }
- Tranches pour toutes les valeurs de la fonctionnalité « pays » croisées avec la valeur « age : 20 »
Notez que les clés de fonctionnalité peuvent être soit des fonctionnalités transformées, soit des fonctionnalités d'entrée brutes. Voir tfma.SlicingSpec
pour plus d'informations.
EvalSharedModel
En plus des paramètres de configuration, TFMA nécessite également qu'une instance de tfma.EvalSharedModel
soit créée pour partager un modèle entre plusieurs threads dans le même processus. L'instance de modèle partagé comprend des informations sur le type de modèle (keras, etc.) et sur la manière de charger et de configurer le modèle à partir de son emplacement enregistré sur le disque (par exemple, balises, etc.). L'API tfma.default_eval_shared_model
peut être utilisée pour créer une instance par défaut à partir d'un chemin et d'un ensemble de balises.