Erstellung benutzerdefinierter Auswertungen und Metriken

Letzte Aktualisierung: 22. Nov. 2024
Erstellung benutzerdefinierter Auswertungen und Metriken

Um angepasste Bewertungen zu erstellen, wählen Sie eine Gruppe angepasster Metriken aus, um Ihre Modellbereitstellung und Geschäftsanwendung quantitativ zu verfolgen. Sie können diese benutzerdefinierten Metriken definieren und sie zusammen mit Metriken verwenden, die von anderen Arten von Auswertungen generiert werden.

Sie können eine der folgenden Methoden verwenden, um angepasste Auswertungen und Metriken zu verwalten:

Angepasste Metriken mit dem Python SDK verwalten

Zur Verwaltung angepasster Metriken mit dem Python SDK müssen Sie die folgenden Tasks ausführen:

  1. Registrieren Sie die angepasste Überwachung mit der Metrikdefinition.
  2. Aktivieren Sie die angepasste Überwachung.
  3. Speichern Sie die Metrikwerte.

Im folgenden Lernprogramm für Fortgeschrittene wird die Ausführung dieser Task erläutert:

Die angepasste Überwachung kann jederzeit inaktiviert oder aktiviert werden. Sie können die angepasste Überwachung löschen, wenn sie nicht mehr benötigt wird.

Weitere Informationen finden Sie in der Dokumentation zum Python-SDK.

Schritt 1: Angepasste Überwachung mit Metrikdefinition registrieren

Bevor Sie mit der Verwendung angepasster Metriken beginnen können, müssen Sie die angepasste Überwachung registrieren. Dies ist der Prozessor, der die Metriken verfolgt. Außerdem müssen Sie die Metriken an sich definieren.

  1. Verwenden Sie die Methode get_definition(monitor_name), um die Objekte Metric und Tag zu importieren.
  2. Verwenden Sie die Methode metrics, um die Metriken zu definieren, für die Werte für name, thresholds und type erforderlich sind.
  3. Verwenden Sie die Methode tags, um Metadaten zu definieren.

Der folgende Code stammt aus dem zuvor erwähnten, funktionsfähigen Beispielnotebook:

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

Führen Sie den Befehl client.data_mart.monitors.list() aus, um zu überprüfen, ob die neu erstellte Überwachung und die neu erstellten Metriken ordnungsgemäß konfiguriert sind.

Sie können die Überwachungs-ID auch mit dem folgenden Befehl abrufen:

custom_monitor_id = custom_monitor_details.metadata.id
 
print(custom_monitor_id)

Führen Sie den folgenden Befehl aus, um ausführlichere Informationen abzurufen:

custom_monitor_details = wos_client.monitor_definitions.get(monitor_definition_id=custom_monitor_id).result
print('Monitor definition details:', custom_monitor_details)

Schritt 2: Angepasste Überwachung aktivieren

Als Nächstes müssen Sie die angepasste Überwachung für das Abonnement aktivieren. Dabei werden die Überwachung aktiviert und die Schwellenwerte festgelegt.

  1. Verwenden Sie die Methode target, um das Objekt Threshold zu importieren.
  2. Verwenden Sie die Methode thresholds, um den Metrikwert für lower_limit festzulegen. Geben Sie den Wert metric_id als einen der Parameter an. Wenn Sie den Wert nicht kennen, können Sie jederzeit durch Ausführen des Befehls custom_monitor_details die Details abrufen, wie im vorherigen Beispiel gezeigt.

Der folgende Code stammt aus dem zuvor erwähnten, funktionsfähigen Beispielnotebook:

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

Verwenden Sie zum Überprüfen Ihrer Konfigurationsdetails den Befehl subscription.monitoring.get_details(monitor_uid=monitor_uid).

Schritt 3: Metrikwerte speichern

Sie müssen Ihre benutzerdefinierten Metriken in der Region speichern, in der Ihre Dienstinstanz existiert.

  1. Verwenden Sie die Methode metrics, um festzulegen, welche Metriken gespeichert werden sollen.
  2. Verwenden Sie die Methode subscription.monitoring.store_metrics, um die Metriken festzuschreiben.

Der folgende Code stammt aus dem zuvor erwähnten, funktionsfähigen Beispielnotebook:

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)

Führen Sie den folgenden Befehl aus, um alle angepassten Überwachungen aufzulisten:

published_measurement = wos_client.monitor_instances.measurements.get(monitor_instance_id=custom_monitor_instance_id, measurement_id=published_measurement_id).result
print(published_measurement)

Verwaltung benutzerdefinierter Metriken mit watsonx.governance

Schritt 1: Metrikgruppen hinzufügen

  1. Klicken Sie auf der Registerkarte Konfigurieren auf Metrikgruppe hinzufügen.
  2. Wenn Sie eine Metrikgruppe manuell konfigurieren wollen, klicken Sie auf Neue Gruppe konfigurieren.
    a. Geben Sie einen Namen und eine Beschreibung für die Metrikgruppe an.
    Die Länge des angegebenen Namens muss kleiner-gleich 48 Zeichen sein.
    b. Klicken Sie auf das Symbol Bearbeiten auf der Kachel Eingabeparameter und geben Sie die Details für Ihre Eingabeparameter an.
    Der von Ihnen angegebene Parametername muss mit dem in der Metrik-API angegebenen Parameternamen übereinstimmen.
    c. Wenn der Parameter für die Konfiguration des angepassten Monitors erforderlich ist, aktivieren Sie das Kontrollkästchen Erforderlicher Parameter .
    d. Klicken Sie auf Hinzufügen.
    Klicken Sie nach dem Hinzufügen der Eingabeparameter auf Weiter.
    e. Wählen Sie die Modelltypen aus, die Ihre Bewertung unterstützt, und klicken Sie auf Next.
    f. Wenn Sie keinen Auswertungszeitplan angeben möchten, klicken Sie auf Speichern.
    g. Wenn Sie einen Auswertungszeitplan angeben möchten, klicken Sie auf die Umschaltfläche.
    Sie müssen das Intervall für den Auswertungszeitplan angeben und auf Speichernklicken. h. Klicken Sie auf Metrik hinzufügen und geben Sie die Metrikdetails an.
    Klicken Sie auf Speichern.
  3. Wenn Sie eine Metrikgruppe mithilfe einer JSON-Datei konfigurieren wollen, klicken Sie auf Aus Datei importieren.
    Laden Sie eine JSON-Datei hoch und klicken Sie auf Import.

Schritt 2: Metrikendpunkte hinzufügen

  1. Klicken Sie im Abschnitt Metrikendpunkte auf Metrikendpunkt hinzufügen.
  2. Geben Sie einen Namen und eine Beschreibung für den Metrikendpunkt an.
  3. Klicken Sie auf das Symbol Bearbeiten auf der Kachel Verbindung und geben Sie die Verbindungsdetails an.
    Klicken Sie auf Weiter.
  4. Wählen Sie die Metrikgruppen aus, die Sie dem Metrikendpunkt zuordnen möchten und klicken Sie auf Speichern.

Schritt 3: Angepasste Überwachungen konfigurieren

  1. Wählen Sie auf der Seite Insights Dashboard die Option Überwachungen konfigurieren auf einer Modellbereitstellungskachel aus.
  2. Wählen Sie im Abschnitt Bewertungen den Namen der Metrikgruppe aus, die Sie hinzugefügt haben.
  3. Wählen Sie das Symbol Bearbeiten auf der Kachel Metrikendpunkt aus.
  4. Wählen Sie einen Metrikendpunkt aus und klicken Sie auf Next.
    Wenn Sie keinen Metrikendpunkt verwenden wollen, wählen Sie Keineaus.
  5. Verwenden Sie die Umschaltungen, um die Metriken anzugeben, die Sie zum Auswerten des Modells und zum Bereitstellen von Schwellenwerten verwenden wollen.
    Klicken Sie auf Weiter.
  6. Geben Sie Werte für die Eingabeparameter an. Wenn Sie JSON als Datentyp für die Metrikgruppe ausgewählt haben, fügen Sie die JSON-Daten hinzu.
    Klicken Sie auf Weiter.

Sie können Modelle jetzt mit einem angepassten Monitor auswerten.

Angepasste Metriken aufrufen und visualisieren

Für den Zugriff auf und die Visualisierung angepasster Metriken können Sie die programmgesteuerte Schnittstelle verwenden. Im folgenden Lernprogramm für Fortgeschrittene wird die Ausführung dieser Task erläutert:

Die Visualisierung Ihrer benutzerdefinierten Metriken erscheint auf dem Insights-Dashboard.

Weitere Informationen

Bewertungsergebnisse überprüfen

Übergeordnetes Thema: Modellevaluierungen konfigurieren