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
- Gestión de métricas personalizadas con watsonx.governance
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:
- Registrar el supervisor personalizado con la definición de métricas.
- Habilitar el supervisor personalizado.
- Almacenar valores de métrica.
La siguiente guía de aprendizaje avanzada muestra cómo hacerlo:
Puede inhabilitar y habilitar de nuevo la supervisión personalizada en cualquier momento. Puede eliminar el supervisor personalizado si ya no lo necesita.
Para obtener más información, consulte la documentación del SDK de Python.
Paso 1: Registrar el supervisor 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.
- Utilice el método
get_definition(monitor_name)
para importar los objetosMetric
yTag
. - Utilice el método
metrics
para definir las métricas, que requieren los valoresname
,thresholds
ytype
. - 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)
Paso 2: Habilitar el supervisor personalizado.
A continuación, debe habilitar el supervisor personalizado para la suscripción. Así se activa el supervisor y se establecen los umbrales.
- Utilice el método
target
para importar el objetoThreshold
. - Utilice el método
thresholds
para establecer el valor de la métricalower_limit
. Proporcione el valormetric_id
como uno de los parámetros. Si no lo recuerda, siempre puede utilizar el mandatocustom_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)
.
Paso 3: Almacenar valores de métrica.
Debe almacenar, o guardar, sus métricas personalizadas en la región donde existe su instancia de servicio.
- Utilice el método
metrics
para establecer qué métricas está almacenando. - 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 watsonx.governance
Paso 1: Añadir grupos de métricas
- En el separador Configurar , pulse Añadir grupo de métricas.
- Si desea configurar un grupo de métricas manualmente, pulse Configurar nuevo grupo.
a. Especifique un nombre y una descripción para el grupo de métricas.
La longitud del nombre que especifique debe ser menor o igual que 48 caracteres.
b. Pulse el icono Editar en el mosaico Parámetros de entrada y especifique los detalles de los parámetros de entrada.
El nombre de parámetro que especifique debe coincidir con el nombre de parámetro especificado en la API de métrica.
c. Si el parámetro es necesario para configurar el supervisor personalizado, seleccione el recuadro de selección Parámetro necesario .
d. Pulse Añadir.
Después de añadir los parámetros de entrada, pulse Siguiente.
e. Seleccione los tipos de modelo a los que da soporte la evaluación y pulse Siguiente.
f. Si no desea especificar una planificación de evaluación, pulse Guardar.
g. Si desea especificar una planificación de evaluación, pulse el conmutador.
Debe especificar el intervalo para la planificación de evaluación y pulsar Guardar. h. Pulse Añadir métrica y especifique los detalles de la métrica.
Haga clic en Guardar. - Si desea configurar un grupo de métricas utilizando un archivo JSON, pulse Importar desde archivo.
Cargue un archivo JSON y pulse Importar.
Paso 2: Añadir puntos finales de métrica
- En la sección Puntos finales de métrica , pulse Añadir punto final de métrica.
- Especifique un nombre y una descripción para el punto final de métrica.
- Pulse el icono Editar en el mosaico Conexión y especifique los detalles de conexión.
Pulse Siguiente. - Seleccione los grupos de métricas que desea asociar con el punto final de métrica y pulse Guardar.
Paso 3: Configurar supervisores personalizados
- En la página Panel de instrumentos de Insights , seleccione Configurar supervisores en un mosaico de despliegue de modelo.
- En la sección Evaluaciones , seleccione el nombre del grupo de métricas que ha añadido.
- Seleccione el icono Editar en el mosaico Punto final de métrica .
- Seleccione un punto final de métrica y pulse Siguiente.
Si no desea utilizar un punto final de métrica, seleccione Ninguno. - Utilice los conmutadores para especificar las métricas que desea utilizar para evaluar el modelo y proporcionar valores de umbral.
Pulse Siguiente. - 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
Para acceder y visualizar métricas personalizadas, puede utilizar la interfaz programática. La siguiente guía de aprendizaje avanzada muestra cómo hacerlo:
Trabajar con IBM watsonx.ai Runtime
Para obtener más información, consulte la documentación del SDK de Python.
La visualización de sus métricas personalizadas aparece en el panel de control de Insights.
Más información
Revisión de los resultados de la evaluación
Tema padre: Configuración de evaluaciones de modelo