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
- Verwaltung benutzerdefinierter Metriken mit watsonx.governance
Angepasste Metriken mit dem Python SDK verwalten
Zur Verwaltung angepasster Metriken mit dem Python SDK müssen Sie die folgenden Tasks ausführen:
- Registrieren Sie die angepasste Überwachung mit der Metrikdefinition.
- Aktivieren Sie die angepasste Überwachung.
- Speichern Sie die Metrikwerte.
In dem folgenden Lernprogramm für Fortgeschrittene wird die Vorgehensweise veranschaulicht:
Sie können die angepasste Überwachung jederzeit inaktivieren und wieder aktivieren. Wenn Sie die angepasste Überwachung nicht mehr benötigen, können Sie sie entfernen.
Weitere Informationen finden Sie in der Dokumentation zum Python-SDK.
Schritt 1: Registrieren Sie die angepasste Überwachung mit der Metrikdefinition.
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 selbst definieren.
- Verwenden Sie die Methode
get_definition(monitor_name)
, um die ObjekteMetric
undTag
zu importieren. - Verwenden Sie die Methode
metrics
, um die Metriken zu definieren, für die Werte fürname
,thresholds
undtype
erforderlich sind. - Verwenden Sie die Methode
tags
, um Metadaten zu definieren.
Der folgende Code stammt aus dem oben angeführten funktionierenden 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.
Durch die Ausführung des folgenden Befehls können Sie auch die Überwachungs-ID abrufen:
custom_monitor_id = custom_monitor_details.metadata.id
print(custom_monitor_id)
Durch die Ausführung des folgenden Befehls können Sie weitere Details abrufen:
custom_monitor_details = wos_client.monitor_definitions.get(monitor_definition_id=custom_monitor_id).result
print('Monitor definition details:', custom_monitor_details)
Schritt 2: Aktivieren Sie die angepasste Überwachung.
Als Nächstes müssen Sie die angepasste Überwachung für das Abonnement aktivieren. Dadurch wird die Überwachung aktiviert und die Schwellenwerte werden festgelegt.
- Verwenden Sie die Methode
target
, um das ObjektThreshold
zu importieren. - Verwenden Sie die Methode
thresholds
, um den Metrikwert fürlower_limit
festzulegen. Geben Sie den Wertmetric_id
als einen der Parameter an. Wenn Sie den Wert nicht kennen, können Sie jederzeit durch Ausführen des Befehlscustom_monitor_details
die Details abrufen, wie im vorherigen Beispiel gezeigt.
Der folgende Code stammt aus dem oben angeführten funktionierenden 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
Um die Konfigurationsdetails zu überprüfen, verwenden Sie den Befehl subscription.monitoring.get_details(monitor_uid=monitor_uid)
.
Schritt 3: Speichern Sie die Metrikwerte.
Sie müssen Ihre benutzerdefinierten Metriken in der Region speichern, in der Ihre Dienstinstanz existiert.
- Verwenden Sie die Methode
metrics
, um festzulegen, welche Metriken Sie speichern. - Verwenden Sie die Methode
subscription.monitoring.store_metrics
, um die Metriken festzuschreiben.
Der folgende Code stammt aus dem oben angeführten funktionierenden 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 Monitore 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
- Klicken Sie auf der Registerkarte Konfigurieren auf Metrikgruppe hinzufügen.
- 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. - 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
- Klicken Sie im Abschnitt Metrikendpunkte auf Metrikendpunkt hinzufügen.
- Geben Sie einen Namen und eine Beschreibung für den Metrikendpunkt an.
- Klicken Sie auf das Symbol Bearbeiten auf der Kachel Verbindung und geben Sie die Verbindungsdetails an.
Klicken Sie auf Weiter. - Wählen Sie die Metrikgruppen aus, die Sie dem Metrikendpunkt zuordnen möchten und klicken Sie auf Speichern.
Schritt 3: Angepasste Überwachungen konfigurieren
- Wählen Sie auf der Seite Insights Dashboard die Option Überwachungen konfigurieren auf einer Modellbereitstellungskachel aus.
- Wählen Sie im Abschnitt Bewertungen den Namen der Metrikgruppe aus, die Sie hinzugefügt haben.
- Wählen Sie das Symbol Bearbeiten auf der Kachel Metrikendpunkt aus.
- Wählen Sie einen Metrikendpunkt aus und klicken Sie auf Next.
Wenn Sie keinen Metrikendpunkt verwenden wollen, wählen Sie Keineaus. - 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. - 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.
Auf angepasste Metriken zugreifen und diese visualisieren
Für den Zugriff auf und die Visualisierung angepasster Metriken können Sie die programmgesteuerte Schnittstelle verwenden. In dem folgenden Lernprogramm für Fortgeschrittene wird die Vorgehensweise veranschaulicht:
Arbeiten mit IBM watsonx.ai Runtime
Weitere Informationen finden Sie in der Dokumentation zum Python-SDK.
Die Visualisierung Ihrer benutzerdefinierten Metriken erscheint auf dem Insights-Dashboard.
Weitere Informationen
Bewertungsergebnisse überprüfen
Übergeordnetes Thema: Modellevaluierungen konfigurieren