Pour créer des évaluations personnalisées, sélectionnez un ensemble de métriques personnalisées pour effectuer un suivi quantitatif de votre déploiement de modèle et de votre application métier. Vous pouvez définir ces mesures personnalisées et les utiliser en même temps que les mesures générées par d'autres types d'évaluations.
Vous pouvez utiliser l'une des méthodes suivantes pour gérer les évaluations et les indicateurs personnalisés:
- Gestion des métriques personnalisées avec le SDK Python
- Gestion des mesures personnalisées avec watsonx.governance
Gestion des métriques personnalisées avec le SDK Python
Pour gérer les métriques personnalisées avec le SDK Python , vous devez effectuer les tâches suivantes:
- Enregistrer le moniteur personnalisé avec la définition des métriques.
- Activer le moniteur personnalisé.
- Stocker les valeurs des métriques.
Le tutoriel avancé suivant montre comment procéder :
Vous pouvez désactiver et réactiver à tout moment la surveillance personnalisée. Vous pouvez retirer un moniteur personnalisé si vous n'en avez plus besoin.
Pour plus d'informations, consultez la documentation du SDK Python.
Etape 1 : Enregistrer le moniteur personnalisé avec la définition des métriques.
Avant de commencer à utiliser des indicateurs personnalisés, vous devez enregistrer le moniteur personnalisé, c'est-à-dire le processeur qui effectue le suivi des indicateurs. Vous devez également définir les métriques elles-mêmes.
- Utilisez la méthode
get_definition(monitor_name)
pour importer les objetsMetric
etTag
. - Utilisez la méthode
metrics
pour définir les mesures, qui requièrent des valeursname
,thresholds
ettype
. - Utilisez la méthode
tags
pour définir les métadonnées.
Le code suivant provient de l'exemple de bloc-notes fonctionnel mentionné précédemment :
def get_definition(monitor_name):
monitor_definitions = wos_client.monitor_definitions.list().result.monitor_definitions
for definition in monitor_definitions:
if monitor_name == definition.entity.name:
return definition
return None
monitor_name = 'my model performance'
metrics = [MonitorMetricRequest(name='sensitivity',
thresholds=[MetricThreshold(type=MetricThresholdTypes.LOWER_LIMIT, default=0.8)]),
MonitorMetricRequest(name='specificity',
thresholds=[MetricThreshold(type=MetricThresholdTypes.LOWER_LIMIT, default=0.75)])]
tags = [MonitorTagRequest(name='region', description='customer geographical region')]
existing_definition = get_definition(monitor_name)
if existing_definition is None:
custom_monitor_details = wos_client.monitor_definitions.add(name=monitor_name, metrics=metrics, tags=tags, background_mode=False).result
else:
custom_monitor_details = existing_definition
Pour vérifier comment vous vous y prenez, exécutez la commande client.data_mart.monitors.list()
pour voir si le moniteur et les métriques que vous venez de créer sont configurés correctement.
Vous pouvez également obtenir l'ID du moniteur en exécutant la commande suivante :
custom_monitor_id = custom_monitor_details.metadata.id
print(custom_monitor_id)
Pour plus de détails, exécutez la commande suivante :
custom_monitor_details = wos_client.monitor_definitions.get(monitor_definition_id=custom_monitor_id).result
print('Monitor definition details:', custom_monitor_details)
Etape 2 : Activer le moniteur personnalisé.
Ensuite, vous devez activer le moniteur personnalisé pour l'abonnement. Cela active le moniteur et définit les seuils.
- Utilisez la méthode
target
pour importer l'objetThreshold
. - Utilisez la méthode
thresholds
pour définir la valeurlower_limit
de l'indicateur. Indiquez la valeurmetric_id
comme l'un des paramètres. Si vous ne vous souvenez pas, vous pouvez toujours utiliser la commandecustom_monitor_details
pour obtenir les détails, comme indiqué dans l'exemple précédent.
Le code suivant provient de l'exemple de bloc-notes fonctionnel mentionné précédemment :
target = Target(
target_type=TargetTypes.SUBSCRIPTION,
target_id=subscription_id
)
thresholds = [MetricThresholdOverride(metric_id='sensitivity', type = MetricThresholdTypes.LOWER_LIMIT, value=0.9)]
custom_monitor_instance_details = wos_client.monitor_instances.create(
data_mart_id=data_mart_id,
background_mode=False,
monitor_definition_id=custom_monitor_id,
target=target
).result
Pour vérifier les détails de la configuration, utilisez la commande subscription.monitoring.get_details(monitor_uid=monitor_uid)
.
Etape 3 : Stocker les valeurs des métriques.
Vous devez stocker, ou enregistrer, vos métriques personnalisées dans la région où se trouve votre instance de service.
- Utilisez la méthode
metrics
pour définir les métriques que vous enregistrez. - Utilisez la méthode
subscription.monitoring.store_metrics
pour valider les métriques.
Le code suivant provient de l'exemple de bloc-notes fonctionnel mentionné précédemment :
from datetime import datetime, timezone, timedelta
from ibm_watson_openscale.base_classes.watson_open_scale_v2 import MonitorMeasurementRequest
custom_monitoring_run_id = "11122223333111abc"
measurement_request = [MonitorMeasurementRequest(timestamp=datetime.now(timezone.utc),
metrics=[{"specificity": 0.78, "sensitivity": 0.67, "region": "us-south"}], run_id=custom_monitoring_run_id)]
print(measurement_request[0])
published_measurement_response = wos_client.monitor_instances.measurements.add(
monitor_instance_id=custom_monitor_instance_id,
monitor_measurement_request=measurement_request).result
published_measurement_id = published_measurement_response[0]["measurement_id"]
print(published_measurement_response)
Pour répertorier tous les moniteurs personnalisés, exécutez la commande suivante :
published_measurement = wos_client.monitor_instances.measurements.get(monitor_instance_id=custom_monitor_instance_id, measurement_id=published_measurement_id).result
print(published_measurement)
Gestion des mesures personnalisées avec watsonx.governance
Etape 1: Ajouter des groupes d'indicateurs
- Dans l'onglet Configurer , cliquez sur Ajouter un groupe d'indicateurs.
- Si vous souhaitez configurer un groupe d'indicateurs manuellement, cliquez sur Configurer un nouveau groupe.
a. Indiquez un nom et une description pour le groupe d'indicateurs.
La longueur du nom que vous spécifiez doit être inférieure ou égale à 48 caractères.
b. Cliquez sur l'icône Editer dans la vignette Paramètres d'entrée et spécifiez les détails de vos paramètres d'entrée.
Le nom de paramètre que vous spécifiez doit correspondre au nom de paramètre spécifié dans l'API de métrique.
c. Si le paramètre est requis pour configurer votre moniteur personnalisé, cochez la case Paramètre requis .
d. Cliquez sur Ajouter.
Après avoir ajouté les paramètres d'entrée, cliquez sur Suivant.
E. Sélectionnez les types de modèle pris en charge par votre évaluation et cliquez sur Suivant.
F. Si vous ne souhaitez pas spécifier de planification d'évaluation, cliquez sur Sauvegarder.
G. Si vous souhaitez spécifier un planning d'évaluation, cliquez sur le bouton à bascule.
Vous devez spécifier l'intervalle du planning d'évaluation et cliquer sur Sauvegarder. h. Cliquez sur Ajouter une métrique et spécifiez les détails de la métrique.
Cliquez sur Sauvegarder. - Si vous souhaitez configurer un groupe d'indicateurs à l'aide d'un fichier JSON, cliquez sur Importer à partir d'un fichier.
Téléchargez un fichier JSON et cliquez sur Importer.
Etape 2: Ajouter des noeuds finaux de métrique
- Dans la section Noeuds finaux de métrique , cliquez sur Ajouter un noeud final de métrique.
- Indiquez un nom et une description pour le noeud final de métrique.
- Cliquez sur l'icône Editer dans la vignette Connexion et indiquez les détails de la connexion.
Cliquez sur Suivant. - Sélectionnez les groupes d'indicateurs que vous souhaitez associer au noeud final d'indicateur et cliquez sur Sauvegarder.
Etape 3: Configurer des moniteurs personnalisés
- Dans la page Tableau de bord Insights , sélectionnez Configurer les moniteurs sur une vignette de déploiement de modèle.
- Dans la section Evaluations , sélectionnez le nom du groupe d'indicateurs que vous avez ajouté.
- Sélectionnez l'icône Editer sur la vignette Noeud final de métrique .
- Sélectionnez un noeud final de métrique et cliquez sur Suivant.
Si vous ne souhaitez pas utiliser de noeud final de métrique, sélectionnez Aucun. - Utilisez les options pour spécifier les indicateurs que vous souhaitez utiliser pour évaluer le modèle et fournir des valeurs de seuil.
Cliquez sur Suivant. - Indiquez des valeurs pour les paramètres d'entrée. Si vous avez sélectionné JSON comme type de données pour le groupe d'indicateurs, ajoutez les données JSON.
Cliquez sur Suivant.
Vous pouvez désormais évaluer des modèles à l'aide d'un moniteur personnalisé.
Accès et visualisation des métriques personnalisées
Pour accéder aux métriques personnalisées et les visualiser, vous pouvez utiliser l'interface de programmation. Le tutoriel avancé suivant montre comment procéder :
Travailler avec IBM watsonx.ai Runtime
Pour plus d'informations, consultez la documentation du SDK Python.
La visualisation de vos mesures personnalisées apparaît sur le tableau de bord Insights.
En savoir plus
Examen des résultats d'évaluation
Rubrique parent: Configuration des évaluations de modèle