用于监控偏置漂移的参数 - Amazon SageMaker

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

用于监控偏置漂移的参数

Ama SageMaker zon Clarify 偏差监控会重复使用分析配置中使用的参数子集。分析配置文件在描述了配置参数之后,本主题提供了JSON文件示例。当机器学习模型投入生产时,这些文件用于配置CSV和JSON线条数据集,以监控它们的偏差漂移。

必须在JSON文件中提供以下参数。此JSON文件的路径必须在的ConfigUri参数中提供ModelBiasAppSpecificationAPI。

  • "version" -(可选)配置文件的架构版本。如果未提供,则使用支持的最新版本。

  • "headers" -(可选)数据集中的列名称列表。如果 dataset_type"application/jsonlines" 且指定了 "label",则最后一个标题将成为标签列的标题。

  • "label" -(可选)用于偏差指标 的模型的目标属性。指定为列名或索引(如果数据集格式为CSV),或者指定为JMESPath(如果数据集格式为JSON线)。

  • "label_values_or_threshold" -(可选)标签值或阈值列表。表示用于偏差指标的阳性结果。

  • "facet" -(可选)作为敏感属性的特征列表,称为分面。分面以成对的形式用于偏差指标,包括以下内容:

    • "name_or_index" - 分面列名称或索引。

    • "value_or_threshold" -(可选)分面列可以采用的值或阈值列表。表示敏感组,例如用于衡量偏差的组。如果未提供,则每个唯一值(而不是所有值)的偏差指标将按一个组进行计算。如果分面列为数字,则应用此阈值作为选择敏感组的下限。

  • "group_variable" -(可选)列名称或索引,指示用于偏差指标条件人口统计差异 的组变量。

其他参数应在的EndpointInput(对于实时端点)或BatchTransformInput(对于批处理转换作业)中提供ModelBiasJobInputAPI。

  • FeaturesAttribute - 如果端点输入数据格式为 "application/jsonlines",则需要使用此参数。如果数据集格式为 Lin JSON es,则它JMESPath用于定位特征列。

  • InferenceAttribute— 目标属性在模型输出中的索引或JMESPath位置,用于使用偏差指标监测偏差。如果CSVaccept_type案例中未提供该值,则假设模型输出是与分数或概率相对应的单个数值。

  • ProbabilityAttribute— 概率在模型输出中的索引或JMESPath位置。例如,如果模型输出是带有标签和概率列表的JSON线,则会选择与最大概率相对应的标签进行偏差计算。

  • ProbabilityThresholdAttribute -(可选)一个浮点值,用于表示在二进制分类情况下选择二进制标签的阈值。默认值为 0.5。

CSV和JSON线数据集的JSON配置文件示例

以下是用于配置JSON的文件CSV和用于监控其偏差漂移的JSON线数据集的示例。

CSV数据集

考虑一个包含四个特征列和一个标签列的数据集,其中第一个特征和标签为二进制,如下例所示。

0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499, 0 1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713, 1 0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576, 1 1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697, 1

假设模型输出有两列,其中第一列是预测标签,第二列是概率,如下例所示。

1, 0.5385257417814224

然后,以下JSON配置文件显示了如何配置此CSV数据集的示例。

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "target", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

预测标签由 "InferenceAttribute" 参数选择。使用从零开始的编号,因此 0 表示模型输出的第一列。

"EndpointInput": { ... "InferenceAttribute": 0 ... }

或者,您可以使用不同的参数将概率值转换为二进制预测标签。使用从零开始的编号:1 表示第二列;ProbabilityThresholdAttribute 值为 0.6 表示大于 0.6 的概率预测二进制标签为 1。

"EndpointInput": { ... "ProbabilityAttribute": 1, "ProbabilityThresholdAttribute": 0.6 ... }

JSON线条数据集

考虑一个包含四个特征列和一个标签列的数据集,其中第一个特征和标签为二进制,如下例所示。

{"features":[0, 0.5814568701544718, 0.6651538910132964, 0.3138080342665499], "label":0} {"features":[1, 0.6711642728531724, 0.7466687034026017, 0.1215477472819713], "label":1} {"features":[0, 0.0453256543003371, 0.6377430803264152, 0.3558625219713576], "label":1} {"features":[1, 0.4785191813363956, 0.0265841045263860, 0.0376935084990697], "label":1}

假设模型输出有两列,其中第一列是预测标签,第二列是概率。

{"predicted_label":1, "probability":0.5385257417814224}

以下JSON配置文件显示了如何配置这个 Lin JSON es 数据集的示例。

{ "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "label", "label_values_or_threshold": [1], "facet": [{ "name_or_index": "feature_1", "value_or_threshold": [1] }] }

然后,使用 EndpointInput(对于实时端点)或 BatchTransformInput(对于批量转换作业)中的 "features" 参数值来定位数据集中的特征,"predicted_label" 参数值从模型输出中选择预测标签。

"EndpointInput": { ... "FeaturesAttribute": "features", "InferenceAttribute": "predicted_label" ... }

或者,您可以使用 ProbabilityThresholdAttribute 参数值将概率值转换为预测的二进制标签。例如,值为 0.6 表示大于 0.6 的概率预测二进制标签为 1。

"EndpointInput": { ... "FeaturesAttribute": "features", "ProbabilityAttribute": "probability", "ProbabilityThresholdAttribute": 0.6 ... }