Per creare valutazioni personalizzate, selezionare una serie di metriche personalizzate per tracciare quantitativamente la distribuzione del modello e l'applicazione aziendale. È possibile definire queste metriche personalizzate e utilizzarle insieme alle metriche generate da altri tipi di valutazioni.
È possibile utilizzare uno dei seguenti metodi per gestire le valutazioni e le metriche personalizzate:
- Gestione delle metriche personalizzate con l'SDK Python
- Gestione delle metriche personalizzate con watsonx.governance
Gestione delle metriche personalizzate con Python SDK
Per gestire le metriche personalizzate con l'SDK Python , devi eseguire queste attività:
- Registrare il monitor personalizzato con la definizione delle metriche.
- Abilita monitoraggio personalizzato.
- Memorizza valori di metrica.
La seguente esercitazione avanzata mostra come eseguire questa operazione:
È possibile disabilitare e abilitare di nuovo il monitoraggio personalizzato in qualsiasi momento. È possibile rimuovere il monitor personalizzato se non è più necessario.
Per ulteriori informazioni, vedi la documentazione dell'SDKPython.
Passo 1: Registrare il monitor personalizzato con la definizione di metrica.
Prima di poter iniziare utilizzando le metriche personalizzate, è necessario registrare il monitor personalizzato, che è il processore che traccia le metriche. È anche necessario definire le metriche stesse.
- Utilizzare il metodo
get_definition(monitor_name)
per importare gli oggettiMetric
eTag
. - Utilizzare il metodo
metrics
per definire le metriche, che richiedono valoriname
,thresholds
etype
. - Utilizzare il metodo
tags
per definire i metadati.
Il seguente codice proviene dal notebook di esempio di lavoro che è stato precedentemente menzionato:
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
Per controllare come stai facendo, esegui il comando client.data_mart.monitors.list()
per vedere se il tuo monitor e le tue metriche appena creati sono configurati correttamente.
È anche possibile richiamare l'ID monitor eseguendo il seguente comando:
custom_monitor_id = custom_monitor_details.metadata.id
print(custom_monitor_id)
Per una vista più dettagliata, eseguire il seguente comando:
custom_monitor_details = wos_client.monitor_definitions.get(monitor_definition_id=custom_monitor_id).result
print('Monitor definition details:', custom_monitor_details)
Passo 2: Abilitare il monitor personalizzato.
Successivamente, è necessario abilitare il monitor personalizzato per la sottoscrizione. Ciò attiva il monitor e imposta le soglie.
- Utilizzare il metodo
target
per importare l'oggettoThreshold
. - Utilizzare il metodo
thresholds
per impostare il valore della metricalower_limit
. Fornire il valoremetric_id
come uno dei parametri. Se non ti ricordi, puoi sempre utilizzare il comandocustom_monitor_details
per ottenere i dettagli come mostrato nell'esempio precedente.
Il seguente codice proviene dal notebook di esempio di lavoro che è stato precedentemente menzionato:
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
Per verificare i dettagli di configurazione, utilizzare il comando subscription.monitoring.get_details(monitor_uid=monitor_uid)
.
Passo 3: Memorizzare i valori di metrica.
È necessario memorizzare o salvare le metriche personalizzate nella regione in cui esiste l'istanza del servizio.
- Utilizzare il metodo
metrics
per impostare quali metriche memorizzare. - Utilizzare il metodo
subscription.monitoring.store_metrics
per eseguire il commit delle metriche.
Il seguente codice proviene dal notebook di esempio di lavoro che è stato precedentemente menzionato:
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)
Per elencare tutti i monitor personalizzati, eseguire il seguente comando:
published_measurement = wos_client.monitor_instances.measurements.get(monitor_instance_id=custom_monitor_instance_id, measurement_id=published_measurement_id).result
print(published_measurement)
Gestione delle metriche personalizzate con watsonx.governance
Passo 1: aggiungi gruppi di metrica
- Sulla scheda Configura , fare clic su Aggiungi gruppo di metriche.
- Se si desidera configurare un gruppo di metriche manualmente, fare clic su Configura nuovo gruppo.
a. Specificare un nome e una descrizione per il gruppo di metriche.
La lunghezza del nome specificato deve essere inferiore o uguale a 48 caratteri.
b. Fare clic sull'icona Modifica nel riquadro Parametri di immissione e specificare i dettagli per i parametri di immissione.
Il nome parametro specificato deve corrispondere al nome parametro specificato nell'API della metrica.
c. Se il parametro è richiesto per configurare il monitoraggio personalizzato, selezionare la check box Parametro obbligatorio .
g. Fare clic su Aggiungi.
Dopo aver aggiunto parametri di input, fare clic su Avanti.
e. Selezionare i tipi di modello supportati dalla valutazione e fare clic su Avanti.
f. Se non si desidera specificare una pianificazione di valutazione, fare clic su Salva.
es. Se si desidera specificare una pianificazione di valutazione, fare clic sull'interruttore.
È necessario specificare l'intervallo per la pianificazione della valutazione e fare clic su Salva. h. Fare clic su Aggiungi metrica e specificare i dettagli della metrica.
Fare clic su Salva. - Se vuoi configurare un gruppo di metriche utilizzando un file JSON, fai clic su Importa da file.
Carica un file JSON e fai clic su Importa.
Passo 2: aggiungi endpoint di metrica
- Nella sezione Endpoint metrica , fare clic su Aggiungi endpoint metrica.
- Specificare un nome e una descrizione per l'endpoint di metrica.
- Fare clic su Modifica nel riquadro Connessione e specificare i dettagli della connessione.
Fare clic su Avanti. - Selezionare i gruppi di metriche che si desidera associare all'endpoint di metrica e fare clic su Salva.
Fase 3: configurare i monitor personalizzati
- Nella pagina Dashboard insight , selezionare Configura monitor in un riquadro di distribuzione del modello.
- Nella sezione Valutazioni , seleziona il nome del gruppo di metriche che hai aggiunto.
- Seleziona l'icona Edit nel riquadro Metric endpoint .
- Selezionare un endpoint di metrica e fare clic su Avanti.
Se non si desidera utilizzare un endpoint di metrica, selezionare Nessuno. - Utilizzare le opzioni per specificare le metriche che si desidera utilizzare per valutare il modello e fornire valori di soglia.
Fare clic su Avanti. - Specificare i valori per i parametri di input. Se hai selezionato JSON come tipo di dati per il gruppo di metriche, aggiungi i dati JSON.
Fare clic su Avanti.
Ora è possibile valutare i modelli con un monitor personalizzato.
Accesso e visualizzazione di metriche personalizzate
Per accedere e visualizzare metriche personalizzate, puoi utilizzare l'interfaccia programmatica. La seguente esercitazione avanzata mostra come eseguire questa operazione:
Lavorare con il runtime IBM watsonx.ai
Per ulteriori informazioni, vedi la documentazione dell'SDK Python.
La visualizzazione delle metriche personalizzate viene visualizzata nella dashboard Insights.
Ulteriori informazioni
Revisione dei risultati di valutazione
Argomento principale Configurazione delle valutazioni del modello