0 / 0
Retourner à la version anglaise de la documentation
Création d'évaluations et de mesures personnalisées
Dernière mise à jour : 22 nov. 2024
Création d'évaluations et de mesures personnalisées

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

Pour gérer les métriques personnalisées avec le SDK Python , vous devez effectuer les tâches suivantes:

  1. Enregistrer le moniteur personnalisé avec la définition des métriques.
  2. Activer le moniteur personnalisé.
  3. 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.

  1. Utilisez la méthode get_definition(monitor_name) pour importer les objets Metric et Tag.
  2. Utilisez la méthode metrics pour définir les mesures, qui requièrent des valeurs name, thresholdset type.
  3. 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.

  1. Utilisez la méthode target pour importer l'objet Threshold.
  2. Utilisez la méthode thresholds pour définir la valeur lower_limit de l'indicateur. Indiquez la valeur metric_id comme l'un des paramètres. Si vous ne vous souvenez pas, vous pouvez toujours utiliser la commande custom_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.

  1. Utilisez la méthode metrics pour définir les métriques que vous enregistrez.
  2. 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

  1. Dans l'onglet Configurer , cliquez sur Ajouter un groupe d'indicateurs.
  2. 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.
  3. 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

  1. Dans la section Noeuds finaux de métrique , cliquez sur Ajouter un noeud final de métrique.
  2. Indiquez un nom et une description pour le noeud final de métrique.
  3. Cliquez sur l'icône Editer dans la vignette Connexion et indiquez les détails de la connexion.
    Cliquez sur Suivant.
  4. 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

  1. Dans la page Tableau de bord Insights , sélectionnez Configurer les moniteurs sur une vignette de déploiement de modèle.
  2. Dans la section Evaluations , sélectionnez le nom du groupe d'indicateurs que vous avez ajouté.
  3. Sélectionnez l'icône Editer sur la vignette Noeud final de métrique .
  4. 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.
  5. 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.
  6. 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 :

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

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus