0 / 0
Volver a la versión inglesa de la documentación
Envío de transacciones de modelo
Última actualización: 05 dic 2024
Envío de transacciones de modelo

Si está evaluando modelos de aprendizaje automático o activos de IA generativa, debe enviar transacciones de modelos desde su despliegue para permitir las evaluaciones de modelos.

Para generar continuamente resultados precisos para las evaluaciones de sus modelos, debe seguir enviando nuevos datos desde su implantación.

Las secciones siguientes describen distintos métodos que puede utilizar para enviar transacciones para evaluaciones de modelo:

Envío de transacciones de modelo

Importación de datos

Cuando revise los resultados de la evaluación en el panel de control de Insights, puede utilizar el menú Acciones para importar datos de carga útil y retroalimentación para sus evaluaciones de modelos.

Para los modelos de preproducción, puede importar datos cargando archivos CSV o conectándose a datos almacenados en Cloud Object Storage o una base de datos Db2 .

importar datos de prueba en preproducción

Si desea cargar datos que ya están puntuados, puede seleccionar el recuadro de selección Test data includes model output . Cloud Object Storage no vuelve a marcar los datos de prueba cuando selecciona esta opción. Los datos que importe también pueden incluir columnas record_id/transaction_id y record_timestamp que se añaden a las tablas de registro de carga útil y de comentarios cuando se selecciona esta opción.

Para los modelos de producción, puede importar datos cargando archivos CSV o utilizando puntos finales para enviar las transacciones de modelo.

importar datos de prueba en producción

Uso de puntos finales

Para los modelos de producción, se admiten puntos finales que puede utilizar para proporcionar datos en formatos que permitan las evaluaciones. Puede utilizar el punto final de registro de carga útil para enviar solicitudes de puntuación para evaluaciones de equidad y desviación y utilizar el punto final de registro de comentarios para proporcionar datos de comentarios para evaluaciones de calidad. También puede cargar archivos CSV para proporcionar datos para evaluaciones de modelo. Para obtener más información sobre los formatos de datos, consulte Gestión de datos para evaluaciones de modelo.

También se admite un punto final de transacciones degradadas que puede utilizar para revisar los resultados de las evaluaciones de equidad. El punto final de transacciones sin sesgo aplica el sesgo activo en los datos de carga útil para detectar cualquier sesgo en el modelo. Para obtener más información sobre la eliminación del sesgo activa, consulte Revisión de transacciones sin sesgo.

Menú de selección de puntos finales

Puede utilizar los siguientes pasos para enviar transacciones de modelos para sus evaluaciones de modelos con puntos finales:

  1. En la página de configuración del supervisor, seleccione el separador Puntos finales .
  2. Si desea cargar datos de carga útil con un archivo CSV, pulse Cargar datos de carga útil.
  3. Si desea cargar datos de comentarios con un archivo CSV, pulse Cargar datos de comentarios.
  4. En el panel Información de modelo , pulse Puntos finales.
  5. En el menú Punto final , seleccione el tipo de punto final que desea utilizar.
  6. En el menú Idioma de código , elija el tipo de fragmento de código que desea utilizar.
  7. Haga clic en Copiar al portapapeles ' Se visualiza el icono Copiar en portapapeles. para copiar el fragmento de código y ejecutar el código en su bloc de notas o aplicación.

Registro de datos de carga útil con Python

Cuando se selecciona el punto final de datos de carga útil en el menú Endpoints de Watson OpenScale, se puede utilizar el siguiente fragmento de código para mostrar cómo registrar los datos de carga útil:

from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient

service_credentials = {
	"apikey": "$API_KEY",
	"url": "{$WOS_URL}"
}

authenticator = IAMAuthenticator(
	apikey=service_credentials["apikey"],
	url="https://iam.cloud.ibm.com/identity/token"
)
SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])

from ibm_watson_openscale.data_sets import DataSetTypes, TargetTypes

# Put your subscription ID here
SUBSCRIPTION_ID = "{$SUBSCRIPTION_ID}"
payload_logging_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING, target_target_id=SUBSCRIPTION_ID, target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id

from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord

# Put your data here
REQUEST_DATA = {
	"parameters": {
		"template_variables": {
			"{$TEMPLATE_VARIABLE_1}": "$TEMPLATE_VARIABLE_1_VALUE",
			"{$TEMPLATE_VARIABLE_2}": "$TEMPLATE_VARIABLE_2_VALUE"
		}
	},
	"project_id": "$PROJECT_ID"
}
RESPONSE_DATA = {
	"results": [
		{
			"generated_text": "$GENERATED_TEXT"
		}
	]
}
RESPONSE_TIME = $RESPONSE_TIME
wos_client.data_sets.store_records(data_set_id=payload_logging_data_set_id, request_body=[PayloadRecord(request=REQUEST_DATA, response=RESPONSE_DATA, response_time=RESPONSE_TIME)])

El valor ' "project_id": "$PROJECT_ID" ' especifica que desea registrar datos de carga útil para evaluaciones en proyectos. Para registrar datos de carga útil para evaluaciones en espacios, puede especificar el valor ' "space_id": "$SPACE_ID" ' en su lugar. Puede utilizar la pestaña Gestionar en proyectos y espacios para identificar el ID de proyecto o espacio de su modelo.

Registro de datos de retroalimentación con Python

Al seleccionar el endpoint de datos de feedback en el menú Endpoints de Watson OpenScale, se puede utilizar el siguiente fragmento de código para mostrar cómo registrar los datos de feedback:

from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient
from ibm_watson_openscale.supporting_classes.enums import DataSetTypes, TargetTypes

service_credentials = {
	"apikey": "$API_KEY",
	"url": "{$WOS_URL}"
}

authenticator = IAMAuthenticator(
	apikey=service_credentials["apikey"],
	url="https://iam.cloud.ibm.com/identity/token"
)

SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])
	
subscription_id = "{$SUBSCRIPTION_ID}"
feedback_dataset_id = wos_client.data_sets.list(type=DataSetTypes.FEEDBACK, target_target_id=subscription_id, target_target_type=TargetTypes.SUBSCRIPTION).result.data_sets[0].metadata.id
	
fields = [
	"{$TEMPLATE_VARIABLE_1}",
	"{$TEMPLATE_VARIABLE_2}",
	"{$LABEL_COLUMN}",
	"_original_prediction"
]
values = [
	[
		"$TEMPLATE_VARIABLE_1_VALUE",
		"$TEMPLATE_VARIABLE_2_VALUE",
		"$LABEL_COLUMN_VALUE",
		"$GENERATED_TEXT_VALUE"
	]
]
	
wos_client.data_sets.store_records(
	data_set_id=feedback_dataset_id,
	request_body=[{"fields": fields, "values": values}],
	background_mode=False
)

Envío de transacciones de modelo en watsonx.governance

Importación de datos en watsonx.governance

Cuando revise los resultados de la evaluación en watsonx.governance, puede importar datos seleccionando Evaluar ahora en el menú Acciones para importar datos de carga útil y comentarios para las evaluaciones de modelo.

Analizar resultados de evaluación de plantilla de solicitud

Para modelos de preproducción, debe cargar un archivo CSV que contenga ejemplos de datos de entrada y salida. Para ejecutar evaluaciones con datos importados, debe correlacionar variables de solicitud con las columnas asociadas en el archivo CSV y seleccionar Cargar y evaluar tal como se muestra en el ejemplo siguiente:

cargar archivo CSV

Para los modelos de producción, puede seleccionar Cargar datos de carga útil o Cargar datos de comentarios en la ventana Importar datos de prueba para cargar un archivo CSV tal como se muestra en el ejemplo siguiente:

Importar datos de prueba

El archivo CSV debe contener columnas etiquetadas que coincidan con las columnas de los esquemas de carga útil y comentarios. Cuando la carga se complete correctamente, puede seleccionar Evaluar ahora para ejecutar las evaluaciones con los datos importados.

Utilización de puntos finales en watsonx.governance

Para los modelos de producción, se admiten los puntos finales que se pueden utilizar para proporcionar datos en formatos que permitan las evaluaciones. Puede utilizar el punto final de registro de carga útil para enviar solicitudes de puntuación para evaluaciones de desviación y utilizar el punto final de registro de comentarios para proporcionar datos de comentarios para evaluaciones de calidad.

Puede utilizar fragmentos de código para registrar las solicitudes de puntuación con las API o sus blocs de notas.

Registro de datos de respuesta con cuRL

El siguiente ejemplo muestra cómo registrar datos de respuesta con fragmentos de código cURL:


# Generate an IAM access token by passing an API key as $APIKEY in the request below
# See: https://cloud.ibm.com/docs/account?topic=account-iamtoken_from_apikey

curl -k -X POST --header "Content-Type: application/x-www-form-urlencoded" --header "Accept: application/json" --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" --data-urlencode "apikey=$APIKEY" "https://iam.cloud.ibm.com/identity/token"

# the above CURL request will return an auth token that you will use as $IAM_TOKEN in the requests below.

# retrieve the ID of the data set to store the feedback records
curl --location --request GET "${WOS_URL}/openscale/${WOS_SERVICE_INSTANCE_ID}/v2/data_sets?target.target_id=${SUBSCRIPTION_ID}&target.target_type=subscription&type=feedback" --header "Authorization: bearer $IAM_TOKEN" --header "Accept: application/json"

# the above request will return the ID of feedback records data set that you will use as $DATA_SET_ID in the request below. ID will be found at data_sets[0]['metadata']['id']

# TODO: manually define fields and list of values for feedback data

FEEDBACK_PAYLOAD = '[{
    "fields": [
        "${TEMPLATE_VARIABLE_1}",
        "${TEMPLATE_VARIABLE_2}",
        "${LABEL_COLUMN}",
        "_original_prediction"
    ],
	"values": [
		[
			"$TEMPLATE_VARIABLE_1_VALUE",
			"$TEMPLATE_VARIABLE_2_VALUE",
			"$LABEL_COLUMN_VALUE",
			"$GENERATED_TEXT_VALUE"
		]
	]
}]'

curl --location --request POST "${WOS_URL}/openscale/${WOS_SERVICE_INSTANCE_ID}/v2/data_sets/$DATA_SET_ID/records" -d "$FEEDBACK_PAYLOAD" --header "Authorization: bearer $IAM_TOKEN" --header "Accept: application/json" --header "Content-Type: application/json"

Registro de datos de retroalimentación con Python

El siguiente ejemplo muestra cómo registrar datos de respuesta con fragmentos de código Python:

from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient
from ibm_watson_openscale.supporting_classes.enums import DataSetTypes, TargetTypes

service_credentials = {
	"apikey": "$API_KEY",
	"url": "{$WOS_URL}"
}

authenticator = IAMAuthenticator(
	apikey=service_credentials["apikey"],
	url="https://iam.cloud.ibm.com/identity/token"
)

SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])
	
subscription_id = "{$SUBSCRIPTION_ID}"
PROJECT_ID = "{$PROJECT_ID}"
feedback_dataset_id = wos_client.data_sets.list(type=DataSetTypes.FEEDBACK, target_target_id=subscription_id, target_target_type=TargetTypes.SUBSCRIPTION, project_id=PROJECT_ID).result.data_sets[0].metadata.id
	
fields = [
	"{$TEMPLATE_VARIABLE_1}",
	"{$TEMPLATE_VARIABLE_2}",
	"{$LABEL_COLUMN}",
	"_original_prediction"
]
values = [
	[
		"$TEMPLATE_VARIABLE_1_VALUE",
		"$TEMPLATE_VARIABLE_2_VALUE",
		"$LABEL_COLUMN_VALUE",
		"$GENERATED_TEXT_VALUE"
	]
]
	
wos_client.data_sets.store_records(
	data_set_id=feedback_dataset_id,
	request_body=[{"fields": fields, "values": values}],
    project_id=PROJECT_ID
	background_mode=False
)

El valor " project_id=PROJECT_ID " especifica que desea registrar los datos de feedback para las evaluaciones en los proyectos. Para registrar datos de retroalimentación para evaluaciones en espacios, puede especificar el valor ' space_id=SPACE_ID ' en su lugar. Puede utilizar la pestaña Gestionar en proyectos y espacios para identificar el ID de proyecto o espacio de su modelo.

Registro de datos de carga útil con cURL

El siguiente ejemplo muestra cómo registrar datos de carga útil con fragmentos de código cURL:

# Generate an IAM access token by passing an API key as $APIKEY in the request below
# See: https://cloud.ibm.com/docs/account?topic=account-iamtoken_from_apikey

curl -k -X POST \
--header "Content-Type: application/x-www-form-urlencoded" \
--header "Accept: application/json" \
--data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
--data-urlencode "apikey=$APIKEY" \
"https://iam.cloud.ibm.com/identity/token"

# the above CURL request will return an auth token that you will use as $IAM_TOKEN in the requests below.

# retrieve the ID of the data set to store the payload records
curl --location --request GET "${WOS_URL}/openscale/{$WOS_SERVICE_INSTANCE_ID}/v2/data_sets?target.target_id=${SUBSCRIPTION_ID}&target.target_type=subscription&type=payload_logging" \
--header "Authorization: bearer $IAM_TOKEN" \
--header "Accept: application/json"

# the above request will return the ID of payload records data set that you will use as $DATA_SET_ID in the request below.

# TODO: manually define and pass:
# request - input to scoring endpoint in format supported by Watson OpenScale - replace sample fields and values with proper ones
# response - output from scored model in format supported by Watson OpenScale - replace sample fields and values with proper ones
# - $SCORING_TIME - Time (ms) taken to make prediction (for performance monitoring)

SCORING_PAYLOAD='[{
	"response_time": "$SCORING_TIME",
	"request": {
		"parameters": {
			"template_variables": {
				"${TEMPLATE_VARIABLE_1}": "$TEMPLATE_VARIABLE_1_VALUE",
				"${TEMPLATE_VARIABLE_2}": "$TEMPLATE_VARIABLE_2_VALUE"
			}
		},
		"project_id": "$PROJECT_ID"
	},
	"response": {
		"results": [
			{
				"generated_text": "$GENERATED_TEXT"
			}
		]
	},
	"user_id": "$USER_ID"
}]'

curl --location --request POST "${WOS_URL}/openscale/${WOS_SERVICE_INSTANCE_ID}/v2/data_sets/$DATA_SET_ID/records" \
-d "$SCORING_PAYLOAD" \
--header "Authorization: bearer $IAM_TOKEN" \
--header "Accept: application/json" \
--header "Content-Type: application/json"

El valor ' "project_id": "$PROJECT_ID" ' especifica que desea registrar datos de carga útil para evaluaciones en proyectos. Para registrar datos de carga útil para evaluaciones en espacios, puede especificar el valor ' "space_id": "$SPACE_ID" ' en su lugar. Puede utilizar la pestaña Gestionar en proyectos y espacios para identificar el ID de proyecto o espacio de su modelo.

Registro de datos de carga útil con Python

El siguiente ejemplo muestra cómo registrar datos de carga útil con fragmentos de código Python:

from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
from ibm_watson_openscale import APIClient

service_credentials = {
	"apikey": "$API_KEY",
	"url": "{$WOS_URL}"
}

authenticator = IAMAuthenticator(
	apikey=service_credentials["apikey"],
	url="https://iam.cloud.ibm.com/identity/token"
)
SERVICE_INSTANCE_ID = "{$WOS_SERVICE_INSTANCE_ID}"
wos_client = APIClient(authenticator=authenticator, service_instance_id=SERVICE_INSTANCE_ID, service_url=service_credentials["url"])

from ibm_watson_openscale.data_sets import DataSetTypes, TargetTypes

# Put your subscription ID here
SUBSCRIPTION_ID = "{$SUBSCRIPTION_ID}"
PROJECT_ID = "{$PROJECT_ID}"
payload_logging_data_set_id = wos_client.data_sets.list(type=DataSetTypes.PAYLOAD_LOGGING, target_target_id=SUBSCRIPTION_ID, target_target_type=TargetTypes.SUBSCRIPTION, project_id=PROJECT_ID).result.data_sets[0].metadata.id

from ibm_watson_openscale.supporting_classes.payload_record import PayloadRecord

# Put your data here
REQUEST_DATA = {
	"parameters": {
		"template_variables": {
			"{$TEMPLATE_VARIABLE_1}": "$TEMPLATE_VARIABLE_1_VALUE",
			"{$TEMPLATE_VARIABLE_2}": "$TEMPLATE_VARIABLE_2_VALUE"
		}
	},
	"project_id": PROJECT_ID
}
RESPONSE_DATA = {
	"results": [
		{
			"generated_text": "$GENERATED_TEXT"
		}
	]
}
RESPONSE_TIME = $RESPONSE_TIME
wos_client.data_sets.store_records(data_set_id=payload_logging_data_set_id, request_body=[PayloadRecord(request=REQUEST_DATA, response=RESPONSE_DATA, response_time=RESPONSE_TIME)], project_id=PROJECT_ID)

El " PROJECT_ID = "{$PROJECT_ID}" " especifica que desea registrar datos de carga útil para evaluaciones en proyectos. Para registrar datos de carga útil para evaluaciones en espacios, puede especificar el valor ' SPACE_ID = "{$SPACE_ID}" ' en su lugar. Puede utilizar la pestaña Gestionar en proyectos y espacios para identificar el ID de proyecto o espacio de su modelo.

Para obtener más información sobre los formatos de datos, consulte Gestión de datos para evaluaciones de modelo.

Tema principal: Gestión de datos para la evaluación de modelos

Búsqueda y respuesta de IA generativa
Estas respuestas las genera un modelo de lenguaje grande en watsonx.ai que se basa en el contenido de la documentación del producto. Más información