持续评估作业定义 AI Platform 数据标签服务如何对已部署到 AI Platform Prediction 的模型版本执行持续评估。在您为模型版本创建评估作业时,将开始发生以下两种情况:
- 随着模型版本提供在线预测服务,部分预测的输入和输出会保存在 BigQuery 表中。
- 持续评估作业会定期运行,并执行以下任务:
- 该作业创建一个数据标签服务数据集,其中包含自上次运行后 BigQuery 中所有新添加的行。
- (可选)该作业提交标签请求,让人工审核者为预测提供标准答案标签。
- 该作业会计算一组评估指标,您可以在 Google Cloud 控制台。
准备工作
在开始之前,您必须将模型版本部署到 AI Platform Prediction 以满足特定模型要求。您还必须启用某些 Google Cloud API。请参阅开始持续评估之前,了解如何满足这些要求。
配置基本选项
以下部分介绍了如何导航到任务创建页面,并为评估作业配置基本详情。
导航到任务创建页面
如需为模型版本创建评估作业,请在 Google Cloud 控制台中转到该模型版本的相应页面,然后打开作业创建页面:
打开 Google Cloud 控制台中的 AI Platform 模型 (AI Platform models) 页面:
点击要为其创建评估作业的模型版本所属模型的名称。
点击要为其创建评估作业的模型版本的名称。该模型版本不能已附加评估作业。
点击评估标签页。然后点击设置评估作业。
指定说明、模型目标、标签和采样百分比
以下步骤描述了您必须在任务创建表单中指定的基本配置详情:
在作业说明字段中为评估作业添加说明。
指定机器学习模型在模型目标字段中执行的任务类型。详细了解持续评估所支持的机器学习模型的类型。
- 如果您的模型执行分类,请在分类类型字段中指定模型执行单标签分类还是多标签分类。
- 如果您的模型执行图片对象检测,请指定一个 0 到 1 之间的交并比 (IOU) 下限。这会定义为使模型的预测边界框被视为正确的预测,需要与标准答案边界框相似的程度。
在预测标签文件路径字段中,指定指向 Cloud Storage 中的 CSV 文件的路径,该文件包含可能用于模型预测的标签。此文件为您的模型定义了一个注释规范集。了解如何构建此文件。
在每日采样百分比字段中,指定您希望导出到 BigQuery 并在持续评估过程中分析的模型版本所处理的预测结果百分比。
此外,指定每日采样限额,以设置您希望在任意一个评估期内采样的预测结果数的上限。
例如,您可能希望对 10% 的预测结果采样来进行持续评估。但是,如果您在某一天获得了很多预测结果,那么您需要确保对于当天的评估作业运行,您采样的预测结果数不能超过 100 个。(大量的预测结果可能需要人工审核者较长的时间才能完成加标签,并且产生超出您预期的 Data Labeling Service 费用。)
指定 BigQuery 表
在 BigQuery 表字段中,您必须指定一个 BigQuery 表名称,数据标签服务可在其中存储来自模型版本预测结果的采样。
如果您指定的表名称尚不存在,数据标签服务将为您创建一个具有正确架构的表。
您必须按照以下列格式提供表的完整名称:bq://YOUR_PROJECT_ID.YOUR_DATASET_NAME.YOUR_TABLE_NAME
- YOUR_PROJECT_ID 必须是您目前在其中创建评估作业的项目的 ID。
- YOUR_DATASET_NAME 可以是任意有效的 。数据集不需要已经存在。
- YOUR_TABLE_NAME 可以是任意有效的 。
如果您指定的表已存在,则必须具有正确的架构才能进行持续评估:
字段名称 | 类型 | 模式 |
---|---|---|
model | 字符串 | 必填 |
model_version | 字符串 | 必填 |
time | 时间戳 | 必填 |
raw_data | 字符串 | 必填 |
raw_prediction | 字符串 | 可以为 Null |
groundtruth | 字符串 | 可以为 Null |
除此之外,表中不得包含任何其他列。
指定预测键
您必须指定指向输入中的特定字段的键,以便数据标签服务能够从存储在 BigQuery 表中的原始预测输入和输出 JSON 中提取必要的信息。请确保您的模型版本接受输入并以所需的格式返回预测结果。然后提供相关键:
数据键:指向包含用于预测的数据的模型版本预测输入中某个字段的键。如果您启用人工标签,则数据标签服务会将该数据提供给人工审核者,以提供评估依据标签。当您在 Google Cloud 控制台中查看评估指标时,Data Labeling Service 还将使用该数据进行并排比较。
如果模型版本执行文本分类或一般分类,则必须提供此键。如果您的模型版本执行图片分类或图片对象检测并接受 base64 编码的图片作为预测输入,您也必须提供此键。
数据引用键:指向包含图片的 Cloud Storage 路径的模型版本预测输入中某字段的键。数据标签服务会加载该图片,其作用与数据键相同。
仅当您的模型版本执行图片分类或图片对象检测并接受指向 Cloud Storage 中的图片的路径作为预测输入时,才提供此键。必须至少提供数据键和数据引用键中的其中一个。
预测标签键:指向包含一组预测标签的模型版本预测输出中某字段的键。数据标签服务会将这些值与评估依据值进行比较,以计算混淆矩阵等评估指标。
此字段为必填字段。
预测分数键:指向包含一组预测分数的模型版本预测输出中某字段的键。数据标签服务会将这些值与预测标签和评估依据标签结合使用,以计算精确率/召回率曲线等评估指标。
此字段为必填字段。
边界框键:指向包含一组边界框的模型版本预测输出中某字段的键。这是评估图片对象检测所必需的。
仅在模型版本执行图片对象检测时才会提供此键。
预测键示例
以下部分展示了如何为不同类型的模型提供预测键的示例:
图片分类
Base64 编码示例
假设您的模型版本可以接受以下输入:
{
"instances": [
{
"image_bytes": {
"b64": "iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAhUlEQVR4AWOAgZeONnHvHcXiGJDBqyDTXa+dVC888oy51F9+eRdY8NdWwYz/RyT//znEsAjEt277+syt5VMJw989DM/+H2MI/L8tVBQk4d38xcWp7ctLhi97ZCZ0rXV6yLA4b6dH59sjTq3fnji1fp4AsWS5j7PXstRg+/b3gU7N351AQgA8+jkf43sjaQAAAABJRU5ErkJggg=="
}
}
]
}
并且假设它返回以下输出:
{
"predictions": [
{
"sentiments": [
"happy"
],
"confidence": [
"0.8"
]
}
]
}
然后提供以下键:
- 数据键:
image_bytes/b64
- 预测标签键:
sentiments
- 预测分数键:
confidence
Cloud Storage 引用示例
假设您的模型版本可以接受以下输入:
{
"instances": [
{
"image_path": "gs://cloud-samples-data/datalabeling/image/flower_1.jpeg"
}
]
}
并且假设它返回以下输出:
{
"predictions": [
{
"sentiments": [
"happy"
],
"confidence": [
"0.8"
]
}
]
}
然后提供以下键:
- 数据引用键:
image_path
- 预测标签键:
sentiments
- 预测分数键:
confidence
文本分类
假设您的模型版本可以接受以下输入:
{
"instances": [
{
"text": "If music be the food of love, play on;"
}
]
}
并且假设它返回以下输出:
{
"predictions": [
{
"sentiments": [
"happy"
],
"confidence": [
"0.8"
]
}
]
}
然后提供以下键:
- 数据键:
text
- 预测标签键:
sentiments
- 预测分数键:
confidence
一般分类
假设您的模型版本可以接受以下输入:
{
"instances": [
{
"weather": [
"sunny",
72,
0.22
]
}
]
}
并且假设它返回以下输出:
{
"predictions": [
{
"sentiments": [
"happy"
],
"confidence": [
"0.8"
]
}
]
}
然后提供以下键:
- 数据键:
weather
- 预测标签键:
sentiments
- 预测分数键:
confidence
图片对象检测
Base64 编码示例
假设您的模型版本可以接受以下输入:
{
"instances": [
{
"image_bytes": {
"b64": "iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAhUlEQVR4AWOAgZeONnHvHcXiGJDBqyDTXa+dVC888oy51F9+eRdY8NdWwYz/RyT//znEsAjEt277+syt5VMJw989DM/+H2MI/L8tVBQk4d38xcWp7ctLhi97ZCZ0rXV6yLA4b6dH59sjTq3fnji1fp4AsWS5j7PXstRg+/b3gU7N351AQgA8+jkf43sjaQAAAABJRU5ErkJggg=="
}
}
]
}
并且假设它返回以下输出:
{
"predictions": [
{
"bird_locations": [
{
"top_left": {
"x": 53,
"y": 22
},
"bottom_right": {
"x": 98,
"y": 150
}
}
],
"species": [
"rufous hummingbird"
],
"probability": [
0.77
]
}
]
}
然后提供以下键:
- 数据键:
image_bytes/b64
- 预测标签键:
species
- 预测分数键:
probability
- 边界框键:
bird_locations
Cloud Storage 引用示例
假设您的模型版本可以接受以下输入:
{
"instances": [
{
"image_path": "gs://cloud-samples-data/datalabeling/image/flower_1.jpeg"
}
]
}
并且假设它返回以下输出:
{
"predictions": [
{
"bird_locations": [
{
"top_left": {
"x": 53,
"y": 22
},
"bottom_right": {
"x": 98,
"y": 150
}
}
],
"species": [
"rufous hummingbird"
],
"probability": [
0.77
]
}
]
}
然后提供以下键:
- 数据引用键:
image_path
- 预测标签键:
species
- 预测分数键:
probability
- 边界框键:
bird_locations
指定标准答案方法
持续评估的工作原理是将机器学习模型的预测结果与由人工注释的评估依据标签进行比较。点击首选标准答案方法,选择您要创建标准答案标签的方式:
Google 管理的标签服务:如果您选择此选项,则每次运行评估作业时,数据标签服务都会将所有新的采样数据发送给人工审核者,以按照评估依据加标签。数据标签服务价格适用。如果您选择此选项,则必须提供 PDF 说明,以便为预测输入加标签。了解如何撰写优质说明。
提供您自己的标签:如果选择此选项,则您必须自己向评估作业的 BigQuery 表添加评估依据标签。在下次运行评估作业之前,您必须为采样的任何新预测输入添加评估依据标签。默认情况下,评估作业每天的运行时间为世界协调时间 (UTC) 上午 10 点,因此在此之前您必须每天为 BigQuery 表中的任何新行添加标准答案标签。否则,系统将不会评估该数据,并且在 Google Cloud 控制台中会出现错误。
如果模型版本执行一般分类,则此选项是唯一选择。
创建作业
点击创建按钮,创建您的评估作业。系统应会立即开始对模型版本中的预测输入和输出进行采样,并存储在 BigQuery 表中。
后续步骤
了解如何查看评估指标。