第 4 章 监控模型 bias
作为数据科学家,您可能想要监控机器学习模型中的 bias。这意味着监控可能会偏移模型生成的结果或决策的算法问题。重要的是,这种类型的监控可帮助您确保该模型不会针对特定的受保护的组或功能提供。
Red Hat OpenShift AI 提供了一组指标,可帮助您监控您的模型。您可以使用 OpenShift AI 接口选择可用指标,然后配置特定于模型的详细信息,如受保护的属性、特权和非特权组、您要监控的结果,以及 bias 的阈值。然后,您可以看到指定模型推论的计算值的图表。
有关特定 bias 指标的更多信息,请参阅使用 bias 指标。
4.1. 创建 bias 指标 复制链接链接已复制到粘贴板!
要监控部署的 bias 模型,您必须首先创建 bias 指标。当您创建 bias 指标时,您可以指定与模型相关的详细信息,如受保护的属性、特权和非特权组、模型结果和您要监控的值,以及 bias 的可接受的阈值。
有关特定 bias 指标的详情,请参考 使用bias 指标。
有关 TrustyAI 指标的完整列表,请参阅 TrustyAI 服务 API。
您可以使用 OpenShift AI 仪表板或使用 OpenShift 命令行界面(CLI)为模型创建 bias 指标。
4.1.1. 使用仪表板创建 bias 指标 复制链接链接已复制到粘贴板!
您可以使用 OpenShift AI 仪表板为模型创建一个 bias 指标。
先决条件
- 您熟悉可用于 OpenShift AI 的 bias 指标,以及如何解释它们。
- 熟悉特定的数据集模式,并了解输入和输出的名称和含义。
- 您的 OpenShift 集群管理员作为用户添加到 OpenShift 集群,并为包含部署模型的数据科学项目安装了 TrustyAI 服务。
- 为您的数据科学项目设置 TrustyAI,如 为项目设置 TrustyAI 中所述。
流程
可选:要设置
TRUSTY_ROUTE变量,请按照以下步骤操作。在终端窗口中,登录部署了 OpenShift AI 的 OpenShift 集群。
oc login将
TRUSTY_ROUTE变量设置为 TrustyAI 服务 pod 的外部路由。TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})
-
在 OpenShift AI 仪表板的左侧菜单中,点 Models
Model deployments。 - 在 Model deployments 页面中,从下拉列表中选择您的项目。
- 点您要为其配置 bias 指标的模型名称。
- 在模型的指标页面中,点 Model bias 选项卡。
- 单击 Configure。
在 Configure bias 指标 对话框中,完成以下步骤来配置 bias 指标:
- 在 Metric name 字段中,为您的 bias 指标输入一个唯一名称。请注意,您无法稍后更改此指标的名称。
- 从 Metric type 列表中,选择 OpenShift AI 中提供的一个指标类型。
在 Protected attribute 字段中,键入您要监控 bias 的模型中的属性名称。
提示您可以使用
curl命令查询元数据端点并查看输入属性名称和值。例如:curl -H "Authorization: Bearer $TOKEN" $TRUSTY_ROUTE/info | jq ".[0].data.inputSchema"- 在 Privileged value 字段中,为您指定的 protected 属性输入特权组的名称。
- 在 Unprivileged value 字段中,为您指定的 protected 属性键入非特权用户的名称。
在 Output 字段中,输入您要监控的模型结果的名称。
提示您可以使用
curl命令查询元数据端点并查看输出属性名称和值。例如:curl -H "Authorization: Bearer $TOKEN" $TRUSTY_ROUTE/info | jq ".[0].data.outputSchema"- 在 Output value 字段中,键入您要监控 bias 的结果值。
- 在 Violation threshold 字段中,为所选指标类型输入 bias 阈值。此阈值定义在模型被视为计费前,指定的指标的公平值如何来自公平值。
- 在 Metric batch size 字段中,键入 OpenShift AI 每次计算指标时所包含的模型数量。
确保输入的值正确。
注意您无法在创建模型 bias 指标配置后编辑模型 bias 指标配置。相反,您可以复制指标,然后编辑(配置)它;但是,原始指标的历史记录不会应用到副本。
- 单击 Configure。
验证
- Bias 指标配置 页面显示您为模型配置的 bias 指标。
后续步骤
要查看指标,请在 Bias 指标配置 页面中,单击右上角的 View metrics。
4.1.2. 使用 CLI 创建 bias 指标 复制链接链接已复制到粘贴板!
您可以使用 OpenShift 命令行界面(CLI)为模型创建 bias 指标。
先决条件
- 您熟悉可用于 OpenShift AI 的 bias 指标,以及如何解释它们。
- 熟悉特定的数据集模式,并了解输入和输出的名称和含义。
- 您的 OpenShift 集群管理员作为用户添加到 OpenShift 集群,并为包含部署模型的数据科学项目安装了 TrustyAI 服务。
- 为您的数据科学项目设置 TrustyAI,如 为项目设置 TrustyAI 中所述。
流程
在终端窗口中,登录部署了 OpenShift AI 的 OpenShift 集群。
oc login将
TRUSTY_ROUTE变量设置为 TrustyAI 服务 pod 的外部路由。TRUSTY_ROUTE=https://$(oc get route/trustyai-service --template={{.spec.host}})(可选)获取 TrustyAI 服务端点和有效负载的完整列表。
curl -H "Authorization: Bearer $TOKEN" --location $TRUSTY_ROUTE/q/openapi使用
POST /metrics/group/fairness/spd/request来调度重复的 bias 监控指标,语法和有效负载结构:语法 :
curl -sk -H "Authorization: Bearer $TOKEN" -X POST --location $TRUSTY_ROUTE/metrics/group/fairness/spd/request \ --header 'Content-Type: application/json' \ --data <payload>有效负载结构 :
modelId- 要查询的模型的名称。
protectedAttribute- 区分您要检查的组的功能名称。
privilegedAttribute- 怀疑被选择(可能为 biased)课程。
unprivilegedAttribute- 可怀疑的未发布(非正)类。
outcomeName- 提供您要检查的输出的名称。
favorableOutcome-
描述 favorable 或 desired 模型预测的 results
Name输出的值。 batchSize- 计算中要包含的前一个影响的数量。
例如:
curl -sk -H "Authorization: Bearer $TOKEN" -X POST --location $TRUSTY_ROUTE /metrics/group/fairness/spd/request \
--header 'Content-Type: application/json' \
--data "{
\"modelId\": \"demo-loan-nn-onnx-alpha\",
\"protectedAttribute\": \"Is Male-Identifying?\",
\"privilegedAttribute\": 1.0,
\"unprivilegedAttribute\": 0.0,
\"outcomeName\": \"Will Default?\",
\"favorableOutcome\": 0,
\"batchSize\": 5000
}"
验证
bias 指标请求应返回类似如下的输出:
{
"timestamp":"2023-10-24T12:06:04.586+00:00",
"type":"metric",
"value":-0.0029676404469311524,
"namedValues":null,
"specificDefinition":"The SPD of -0.002968 indicates that the likelihood of Group:Is Male-Identifying?=1.0 receiving Outcome:Will Default?=0 was -0.296764 percentage points lower than that of Group:Is Male-Identifying?=0.0.",
"name":"SPD",
"id":"d2707d5b-cae9-41aa-bcd3-d950176cbbaf",
"thresholds":{"lowerBound":-0.1,"upperBound":0.1,"outsideBounds":false}
}
specificDefinition 字段可帮助您了解这些指标值的实际解释。在本例中,模型比 Male-Identifying? 字段公平,正结果的速率仅因 -0.3% 的不同而不同。
4.1.3. 复制 bias 指标 复制链接链接已复制到粘贴板!
如果要编辑现有的指标,您可以在 OpenShift AI 界面中复制(复制)它,然后编辑副本中的值。但请注意,原始指标的历史记录不会应用到副本。
先决条件
- 您熟悉可用于 OpenShift AI 的 bias 指标,以及如何解释它们。
- 熟悉特定的数据集模式,并了解输入和输出的名称和含义。
- 有一个您要复制的现有 bias 指标。
流程
-
在 OpenShift AI 仪表板的左侧菜单中,点 Models
Model deployments。 - 在 Model deployments 页面中,单击带有您要重复的 bias 指标的模型名称。
- 在模型的指标页面中,点 Model bias 选项卡。
- 单击 Configure。
- 在 Bias 指标配置 页面中,点击您要复制的指标旁的操作菜单(RCU),然后点 Duplicate。
在 Configure bias 指标 对话框中,执行以下步骤:
- 在 Metric name 字段中,为您的 bias 指标输入一个唯一名称。请注意,您无法稍后更改此指标的名称。
- 根据需要更改字段的值。有关这些字段的描述,请参阅使用 仪表板创建双向指标。
- 确保输入的值正确,然后单击 配置。
验证
- Bias 指标配置 页面显示您为模型配置的 bias 指标。
后续步骤
要查看指标,请在 Bias 指标配置 页面中,单击右上角的 View metrics。