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 modelos para evaluaciones de modelos de aprendizaje automático
- Envío de transacciones de modelos para evaluaciones de activos de IA generativa
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 .
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.
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.
Puede utilizar los siguientes pasos para enviar transacciones de modelos para sus evaluaciones de modelos con puntos finales:
- En la página de configuración del supervisor, seleccione el separador Puntos finales .
- Si desea cargar datos de carga útil con un archivo CSV, pulse Cargar datos de carga útil.
- Si desea cargar datos de comentarios con un archivo CSV, pulse Cargar datos de comentarios.
- En el panel Información de modelo , pulse Puntos finales.
- En el menú Punto final , seleccione el tipo de punto final que desea utilizar.
- En el menú Idioma de código , elija el tipo de fragmento de código que desea utilizar.
- Haga clic en Copiar al 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.
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:
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:
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