Creación de evaluaciones y métricas personalizadas

Para crear evaluaciones personalizadas, seleccione un conjunto de métricas personalizadas para realizar un seguimiento cuantitativo del despliegue del modelo y de la aplicación empresarial. Puede definir estas métricas personalizadas y utilizarlas junto con las métricas generadas por otros tipos de evaluaciones.

Puede utilizar uno de los métodos siguientes para gestionar evaluaciones y métricas personalizadas:

Gestión de métricas personalizadas con el SDK de Python

Para gestionar métricas personalizadas con el SDK de Python , debe realizar las tareas siguientes:

  1. Registre el monitor personalizado con la definición de métricas.
  2. Habilita el monitor personalizado.
  3. Almacenar valores de métrica.

La siguiente guía de aprendizaje avanzada muestra cómo hacerlo:

Puede desactivar y volver a activar la supervisión personalizada en cualquier momento. Puede eliminar el monitor personalizado si ya no lo necesita.

Para obtener más información, consulte la documentación del SDK de Python.

Registrar el monitor personalizado con la definición de métricas

Para poder empezar utilizando métricas personalizadas, debe registrar el supervisor personalizado, que es el procesador que realiza el seguimiento de las métricas. También debe definir las propias métricas.

  1. Utilice el método get_definition(monitor_name) para importar los objetos Metric y Tag.
  2. Utilice el método metrics para definir las métricas, que requieren los valores name, thresholdsy type.
  3. Utilice el método tags para definir los metadatos.

El código siguiente procede del cuaderno de ejemplo de trabajo que se ha mencionado anteriormente:

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

Para comprobar cómo lo está haciendo, ejecute el mandato client.data_mart.monitors.list() para ver si el supervisor y las métricas que acaba de crear se han configurado correctamente.

También puede obtener el ID de supervisor ejecutando el mandato siguiente:

custom_monitor_id = custom_monitor_details.metadata.id

print(custom_monitor_id)

Para examinar con más detalle, ejecute el mandato siguiente:

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

Habilitar el monitor personalizado

A continuación, debe habilitar el supervisor personalizado para la suscripción. Así se activa el supervisor y se establecen los umbrales.

  1. Utilice el método target para importar el objeto Threshold.
  2. Utilice el método thresholds para establecer el valor de la métrica lower_limit. Proporcione el valor metric_id como uno de los parámetros. Si no lo recuerda, siempre puede utilizar el mandato custom_monitor_details para obtener los detalles tal como se muestra en el ejemplo anterior.

El código siguiente procede del cuaderno de ejemplo de trabajo que se ha mencionado anteriormente:

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

Para comprobar los detalles de la configuración, utilice el mandato subscription.monitoring.get_details(monitor_uid=monitor_uid).

Almacenar valores métricos

Debe almacenar, o guardar, sus métricas personalizadas en la región donde existe su instancia de servicio.

  1. Utilice el método metrics para establecer qué métricas está almacenando.
  2. Utilice el método subscription.monitoring.store_metrics para confirmar las métricas.

El código siguiente procede del cuaderno de ejemplo de trabajo que se ha mencionado anteriormente:

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)

Para listar todos los supervisores personalizados, ejecute el mandato siguiente:

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

Gestión de métricas personalizadas con el proveedor de métricas personalizadas y Python el SDK

Para gestionar métricas personalizadas con el SDK de Python , debe realizar las tareas siguientes:

  1. Registre el monitor personalizado con la definición de métricas.

  2. Cree el proveedor de métricas personalizadas.

  3. Habilita el monitor personalizado.

Crear el proveedor de métricas personalizadas

Defina los detalles del punto final del proveedor de métricas personalizadas con la información de autenticación. OpenScale Genera el token e invoca el punto final REST con el token durante el tiempo de ejecución

El siguiente código procede del cuaderno de ejemplos de trabajo

wos_client.integrated_systems.add(name="Custom Metrics Provider",
    description="Custom Metrics Provider", type="custom_metrics_provider",
    credentials=  {
        "auth_type":"bearer",
        "token_info": {
           "url":  IAM_URL,
           "headers": { "Content-type": "application/x-www-form-urlencoded" }
           "payload": "grant_type=urn:ibm:params:oauth:grant-type:apikey&response_type=cloud_iam&apikey=<api_key>”,
           "method": "POST"
        }
    },
    connection={
        "display_name": "Custom Metrics Provider",
        "endpoint": rest_endpoint_url
    }
).result
Consejo: El flujo simplificado del SDK registra automáticamente el monitor personalizado, lo habilita y crea el proveedor del sistema integrado. Todo lo que tienes que hacer es implementar el punto final métrico.

Gestión de métricas personalizadas con el proveedor de métricas personalizadas y la interfaz de usuario

Realice los pasos siguientes:

  1. Añadir grupos métricos.
  2. Añadir el punto final métrico.
  3. Configurar monitores personalizados.

Añadir grupos métricos

  1. En la página de inicio, haga clic en Configurar y, a continuación, haga clic en Grupos de métricas.
  2. Haga clic en Añadir grupo de métricas.
  3. Para configurar un grupo de métricas mediante un archivo JSON, haga clic en Importar desde archivo. Sube un archivo JSON y haz clic en Importar.
  4. Para configurar un grupo de métricas manualmente, haga clic en Configurar nuevo grupo.
    1. Escriba un nombre para el grupo de métricas y haga clic en Aplicar. El nombre debe tener menos de 48 caracteres.
    2. Haga clic en el icono Editar en los tipos de modelo compatibles y seleccione uno o varios tipos de modelo que su evaluación admita. Pulse Siguiente.
    3. Para especificar una programación de evaluación, haga clic en el botón de alternancia y especifique el intervalo. Pulse Siguiente.
    4. Especifique los detalles de los parámetros de entrada. Para cada parámetro de entrada, introduzca los detalles y, a continuación, haga clic en Añadir. El nombre del parámetro que especifique debe coincidir con el nombre del parámetro especificado en la API de métricas. Si se requiere un parámetro para configurar su monitor personalizado, seleccione la casilla de verificación Parámetro obligatorio.
    5. Pulse Guardar.

Añadir puntos finales métricos

  1. En la página de inicio, haga clic en Configurar y, a continuación, haga clic en Puntos finales métricos.

  2. Haga clic en Añadir punto final métrico.

  3. Especifique un nombre y una descripción para el punto final de métrica.

  4. Pulse el icono Editar en el mosaico Conexión y especifique los detalles de conexión. Pulse Siguiente.

  5. Seleccione los grupos de métricas que desea asociar al punto final de métricas y haga clic en Guardar.

    Si habilita la compatibilidad con lotes, cuando especifique un punto final de tiempo de ejecución URL watsonx.ai personalizado, puede añadir los siguientes parámetros de entrada a un grupo de métricas:

Parámetros de entrada
Parámetro Tipo de datos Valor
tipo_de_proveedor_de_métricas_personalizadas Serie wml_lote
space_id Serie Tu ID de espacio
id_de_implementación Serie watsonx.ai ID de implementación en tiempo de ejecución de su punto final de métricas personalizadas
id_especificación_hardware Serie watsonx.ai ID de especificaciones de hardware en tiempo de ejecución de su punto final de métricas personalizado
tiempo_de_espera_de_métricas_personalizadas Int tiempo en segundos (por ejemplo: 60)

Configurar monitores personalizados

  1. En la página de inicio, haz clic en Panel de información.
  2. En un mosaico de implementación de modelo, seleccione Configurar monitores.
  3. En la sección Evaluaciones , seleccione el nombre del grupo de métricas que ha añadido.
  4. Seleccione el icono Editar en el mosaico Punto final de métrica .
  5. Seleccione un punto final de métrica y pulse Siguiente. Si no desea utilizar un punto final métrico, seleccione Ninguno.
  6. Utilice los conmutadores para especificar las métricas que desea utilizar para evaluar el modelo y proporcionar valores de umbral. Pulse Siguiente.
  7. Especifique valores para los parámetros de entrada. Si ha seleccionado JSON como tipo de datos para el grupo de métricas, añada los datos JSON. Pulse Siguiente.

Ahora puede evaluar modelos con un supervisor personalizado.

Acceder y visualizar métricas personalizadas

La visualización de sus métricas personalizadas aparece en el panel de control de Insights.

La página del monitor de calidad RAG muestra un gráfico de series temporales que muestra métricas que incluyen HAP y PII.

Más información

Revisión de los resultados de la evaluación