本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
用于监控偏置漂移的参数
Ama SageMaker zon Clarify 偏差监控会重复使用分析配置中使用的参数子集。分析配置文件在描述了配置参数之后,本主题提供了JSON文件示例。当机器学习模型投入生产时,这些文件用于配置CSV和JSON线条数据集,以监控它们的偏差漂移。
必须在JSON文件中提供以下参数。此JSON文件的路径必须在的ConfigUri
参数中提供ModelBiasAppSpecification
API。
-
"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
(对于批处理转换作业)中提供ModelBiasJobInput
API。
-
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 ... }