为了启动监控作业,模型监控需要知道表格数据集的架构,才能正确解析输入载荷。
对于 AutoML 模型,模型监控会自动解析架构,因为 Vertex AI 有权访问您的训练数据。
对于自定义训练模型:
模型监控可以自动解析使用标准键值对输入格式的模型的架构。
对于不使用键值对输入格式的自定义训练模型,您可能需要在创建监控作业时提供架构。
架构生成取决于您是为在线预测端点还是为批量预测启用模型监控。
在线预测端点的架构解析
对于在线预测端点,您可以让模型监控在您创建监控作业时自动解析架构或上传架构。
自动架构解析
为在线端点启用偏差或偏移检测后,模型监控通常可以自动解析输入架构。对于自动架构解析,模型监控会分析前 1,000 个输入请求以确定架构。
如果输入请求采用键值对格式,其中 "key"
是特征的名称,"value"
是特征的值,则自动架构解析效果最佳。例如:
"key":"value"
{"TenYearCHD":"0", "glucose":"5.4", "heartRate":"1", "age":"30", "prevalentStroke":"0", "gender":"f", "ethnicity":"latin american"}
如果输入并非采用 "key":"value"
格式,则模型监控会尝试识别每个特征的数据类型,并自动为每个输入分配默认特征名称。
自定义实例架构
您可以在创建模型监控作业时提供自己的输入架构,以确保模型监控正确解析模型的输入。
此架构称为分析实例架构。架构文件指定输入载荷的格式、每个特征的名称以及每个特征的类型。
架构必须编写为采用 Open API 格式的 YAML 文件。以下示例适用于采用 object
格式的预测请求:
type: object properties: age: type: string BMI: type: number TenYearCHD: type: string cigsPerDay: type: array items: type: string BPMeds: type: string required: - age - BMI - TenYearCHD - cigsPerDay - BPMeds
type
指示您的预测请求是否为以下格式之一:object
:键值对array
:类似数组string
:csv 字符串
properties
指示各个特征的类型。如果请求采用数组或 csv 字符串格式,请在
required
字段下指定每个请求中特征的列出顺序。
如果您的预测请求采用数组或 csv 字符串格式,则应将所有缺失的特征表示为 null 值。例如,假设某个预测请求具有五个特征:
[feature_a, feature_b, feature_c, feature_d, feature_e]
如果 feature_c
允许缺失值,则缺失 feature_c
的示例请求如下所示:{[1, 2, , 4, 6]}
。列表长度仍然是 5,中间有一个 null 值。
用于批量预测的架构解析
对于批量预测,您可以让模型监控在您创建监控作业时自动解析架构或上传架构。
自动架构解析
如果您在创建监控作业期间未提供架构,则模型监控会推断特征的数据类型,并根据训练数据生成架构。
模型监控还需要知道哪个特征是目标列,即要预测的特征。目标列已从架构和特征偏差指标中排除。您可以在创建监控作业时指定目标列。
目标列规范
如果您在创建监控作业时未指定目标列,则模型监控会将训练数据中的最后一个特征名称标记为目标列。
例如,模型监控会将此 CSV 训练数据中的 column_c
标记为目标列,因为 column_c
位于第一行的末尾:
column_a, column_b, column_d, column_c 1,"a", 2, "c" 2,"b", 342, "d"
同样,模型监控会将此 JSONL 文件中的 column_c
标记为目标列,因为 column_c
位于第一行的末尾:
{"column_a": 1, "column_b": "a", "column_d": 2, "column_c": "c" } {"column_a": 2, "column_b": "b", "column_c": "d", "column_d": 342}
在这两个示例中,最终架构仅包含 column_a
、column_b
和 column_d
。
自定义架构
您的自定义架构指定了输入载荷的格式、每个特征的名称以及每个特征的类型。
架构必须编写为采用 Open API 语法的 YAML 文件。以下示例适用于采用 object
格式的预测请求:
type: object properties: age: type: string BMI: type: number TenYearCHD: type: string cigsPerDay: type: array items: type: string BPMeds: type: string required: - age - BMI - TenYearCHD - cigsPerDay - BPMeds
模型监控根据 JSON 行批量预测输出计算特征偏差。如果您的数据类型包含数组,则输入数据中数组的长度必须等于 yaml 文件中指定的特征数量。否则,模型监控会从特征偏差计算中排除数组长度不正确的预测实例。
例如,以下数据类型的数组包含两个特征:
数组:
{[[1, 2]]}
“键”/“值”:
{"key": 0, "values": [[1, 2]]}
相应的架构还必须指定两个功能:
type: object properties: name: type: string age: type: number required: - name - age
后续步骤
- 为模型启用偏差和偏移检测。
- 在 Colab 中试用示例笔记本或在 GitHub 上查看示例笔记本。