如果您正在评估机器学习模型或生成式人工智能资产,则必须从部署中发送模型事务,以启用模型评估。
要持续为模型评估生成准确的结果,您必须不断从部署中发送新数据。
发送模型事务
正在导入数据
在"洞察 "仪表板上查看评估结果时,可以使用 "操作"菜单为模型评估导入有效载荷和反馈数据。
对于预生产模型,您可以通过上载 CSV 文件或连接到存储在 Cloud Object Storage 或 Db2 数据库中的数据来导入数据。
如果要上载已评分的数据,可以选中 Test data includes model output
复选框。 选择此选项时, Cloud Object Storage 不会重新配置测试数据。 当选择此选项时,导入的数据还可以包括添加到有效内容日志记录和反馈表的 record_id
/transaction_id
和 record_timestamp
列。
对于生产模型,您可以通过上载 CSV 文件或使用端点发送模型事务来导入数据。
使用端点
对于生产模型,我们支持端点,您可以使用这些端点以能够进行评估的格式提供数据。 您可以使用有效内容日志记录端点来发送用于公平性和漂移评估的评分请求,并使用反馈日志记录端点来提供用于质量评估的反馈数据。 您还可以上载 CSV 文件以提供用于模型评估的数据。 有关数据格式的更多信息,请参阅 管理数据以进行模型评估。
此外,还支持一个可用于审查公平性评估结果的去重事务端点。 去偏差事务端点会对有效内容数据应用主动去偏差,以检测模型中的任何偏差。 有关活动除偏的更多信息,请参阅 查看除偏事务。
您可以使用以下步骤为带有端点的模型评估发送模型事务:
- 在监视器配置页面上,选择 端点 选项卡。
- 如果要使用 CSV 文件上载有效内容数据,请单击 上载有效内容数据。
- 如果要使用 CSV 文件上载反馈数据,请单击 上载反馈数据。
- 在 " 模型信息 " 面板中,单击 端点。
- 从 端点 菜单中,选择要使用的端点类型。
- 从 代码语言 菜单中,选择要使用的代码片段的类型。
- 单击复制到剪贴板",复制代码段并在笔记本或应用程序中运行代码。
用Python记录有效载荷数据
When you select the payload data endpoint from the 端点菜单 in Watson OpenScale, you can use the following code snippet to show you how to log your payload data:
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)])
"project_id": "$PROJECT_ID"
值表示要记录有效载荷数据,以便在项目中进行评估。 要记录空格内评估的有效载荷数据,可指定 ""space_id": "$SPACE_ID"
值。 您可以使用项目和空间中的 "管理 "选项卡来确定模型的项目或空间 ID。
用Python记录反馈数据
When you select the feedback data endpoint from the 端点菜单 in Watson OpenScale, you can use the following code snippet to show you how to log your feedback data:
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
)
父主题: 为模型评估管理数据