本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
配置分析
分析的输入是由ProcessingInputAPI。这些区域有:"analysis_config"的值input_name指定名为的 JSON 文件分析 _config.json包含配置值。JSON 文件的路径在source的参数ProcessingInput. 在参数说明之后,为 CSV、JSON 行、图像和文本数据集的 JSON 文件提供了分析配置 JSON 文件的示例。
JSON 配置文件的参数
在 JSON 配置文件中,可以指定以下参数。
-
"version"—(可选)配置文件的架构版本。如果未提供,则使用最新支持的版本。 -
"dataset_type"—(必填)数据集的格式。有效值为"text/csv"对于 CSV,"application/jsonlines"对于 JSON 行,application/x-parquet对于 Apache 实木复合地板,以及application/x-image以实现计算机视觉的可解释性。有关更多信息,请参阅用于推理的常见数据格式. -
"dataset_uri"—(可选)数据集 S3 前缀/对象URI(如果没有给定为ProcessingInput)。如果是前缀,则处理作业会递归收集前缀下的所有 S3 文件。对于计算机视觉,URI 是必需的,它可以是图像清单文件的路径,也可以是要解释的图像存储桶的路径。 -
"headers"—(可选)数据集中的列名列表。如果dataset_type是"application/jsonlines"和"label"被指定,那么最后一个标题应为标签列的标题。 -
"label"—(可选)要用于的模型的目标属性偏差指标. 指定为列名称;如果数据集格式为 CSV,则指定为索引;如果数据集格式为 JSON 线,则指定为 JSONPath。 -
"probability_threshold"—(可选)一个浮点值,用于指示在二进制分类情况下选择二进制标签的阈值。此参数用于对象检测,用于过滤掉被置信度低于probability_threshold值。默认值为 0.5。 -
"features"—(可选)如果数据集格式为 JSON 线,则 JsonPath 用于查找偏差指标的要素列。 -
"label_values_or_threshold"—(可选)标签值或阈值列表。表示用于偏见指标的积极结果。 -
"facet"—(可选)敏感属性的要素列表,称为小平面。刻面用于偏差指标以货币对的形式,包括以下内容:-
"name_or_index"— Facet 列名称或索引。 -
"value_or_threshold"—(可选)小平面列可以采用的值或阈值的列表。表示敏感组,例如用于衡量偏差的组。如果未提供,则偏差指标将作为每个唯一值(而不是所有值)的一组计算。如果小平面列为数字,则应用此阈值作为选择敏感组的下限。
-
-
"group_variable"—(可选)一个列名或索引,用于指示要用于偏差指标 有条件的人口差异。 -
"joinsource_name_or_index"—(可选)数据集中用作标识符列的列的名称或索引,例如,在执行连接时。此列仅用作标识符,不用于任何其他计算。除了数据集包含多个文件之外,除非在所有情况下,这都是可选字段。"save_local_shap_values"设置为true. -
"methods"— 分析和报告的方法及其参数的列表。如果省略了任何部分,则不会计算它。-
"pre_training_bias"—(可选)关于培训前偏差指标的章节。-
"methods"— 要计算的预训练指标列表。
-
-
"post_training_bias"—(可选)关于训练后偏差指标的部分。-
"methods"— 要计算的训练后指标的列表。
-
-
"shap"—(可选)关于 SHAP 值计算的部分。-
"agg_method"— 全局 SHAP 值的聚合方法。有效值如下所示:-
"mean_abs"— 所有实例的绝对 SHAP 值的均值。 -
"median"— 所有实例的 SHAP 值的中位数。 -
"mean_sq"— 所有实例的 SHAP 平方值的均值。
-
-
"baseline"—(可选)行列表(至少一个)或 S3 对象 URI。用作内核 SHAP 算法中的基线数据集(也称为背景数据集)。格式应与数据集格式相同。每行应只包含特征列(或值),并忽略在发送到模型之前必须排除的任何列。这包括labelColumnjoinsource列和包含在"exclude_column"字段中返回的子位置类型。-
对于计算机视觉,指向基线图像的路径,用于掩盖输入图像中的要素。默认值:RGB 噪声掩码。
-
对于文本列的自然语言处理 (NLP),基线值应该是用于替换指定的文本单位
granularity中的"text_config". 文本单位的有效值为token、sentence, 和paragraph.
-
-
"num_clusters"—(可选)如果"baseline"未提供,Clarify 尝试通过对数据集进行聚类来计算基线。这些区域有:"num_clusters"确定数据集聚集到的集群的数量。每个集群都有助于一个基线,因此群集的数量直接影响 SHAP 解释的运行时间。 -
"num_samples"— 内核 SHAP 算法中要使用的样本数量。此数字决定了用于计算 SHAP 值的生成合成数据集的大小。 -
"seed"—(可选)随机数生成器的种子值,以获得确定性 SHAP 结果。 -
"text_config"—(必需)指定自然语言处理 (NLP) 功能的配置。如果提供此配置,则将文本功能视为文本,并为单个文本单元提供说明。文本单位由"granularity".-
"granularity"—(必需)对于 NLP,确定文本要素分析的粒度单位。有效值为"token"、"sentence"或"paragraph"。这些单位中的每个单位都被视为要素,并为指定的要素计算 Shap 值。 -
"language"—(必填)指定用于自然语言处理 (NLP) 的文本要素的语言。有效值为"chinese"、"danish"、"dutch"、"english"、"french"、"german"、"greek"、"italian"、"japanese"、"lithuanian"、"multi-language"、"norwegian bokmål"、"polish"、"portuguese"、"romanian"、"russian"、"spanish"、"afrikaans"、"albanian"、"arabic"、"armenian"、"basque"、"bengali"、"bulgarian"、"catalan"、"croatian"、"czech"、"estonian"、"finnish"、"gujarati"、"hebrew"、"hindi"、"hungarian"、"icelandic"、"indonesian"、"irish"、"kannada"、"kyrgyz"、"latvian"、"ligurian"、"luxembourgish"、"macedonian"、"malayalam"、"marathi"、"nepali"、"persian"、"sanskrit"、"serbian"、"setswana"、"sinhala"、"slovak"、"slovenian"、"swedish"、"tagalog"、"tamil"、"tatar"、"telugu"、"thai"、"turkish"、"ukrainian"、"urdu"、"vietnamese"、"yoruba". 使用"multi-language"混合使用多种语言。
-
-
"use_logit"—(可选)布尔值,用于指示是否将 logit 函数应用于模型预测。如果"use_logit"是,那么 SHAP 值具有对数赔率单位。原定设置值为truefalse。 -
"image_config"—(可选)用于配置 SHAP 配置参数以实现计算机视觉可解释性的部分。-
"model_type"— 物体检测模型或图像分类模型。 -
"num_segments"—(可选)确定输入图像中要标记的片段的大致数量。默认值为 20。 -
"segment_compactness"—(可选)确定由 SKLearn 的 slic 方法生成的图像片段的形状和大小。有关更多详细信息,请参阅cikit-image文档中)。默认 为 5。 -
"max_objects"—(可选)用于按最高置信度分数过滤计算机视觉模型检测到的对象。默认值为 3。 -
"iou_threshold"—(可选)用于根据原始检测值评估预测值的最小交集 (IOU) 量度。使用是因为在掩蔽期间检测框将移动。默认值为 0.5。 -
"context"—(可选)在运行 SHAP 时掩盖检测到对象的边界框周围的区域。有效值为0掩盖所有东西,或者 1 来掩盖任何东西。默认值是 1。
-
-
"save_local_shap_values"—(可选)布尔值,用于指示是否将本地 SHAP 值保存在输出位置。使用true拯救他们;false不救他们。默认为false。
-
-
"pdp"—(可选)用于配置部分依赖性图 (PDP) 的部分。显示目标响应对一组感兴趣的输入要素的依赖关系。边缘化所有其他输入要素的值。-
"features": ["pdp_feature_1", "pdp_feature_2"…]—(可选)要计算和绘制部分依赖性图的要素名称或索引的列表。如果没有请求 SHAP,则必须提供这些功能。 -
"grid_resolution"—(必填)用于数字要素。表示将数值范围划分到的存储桶数量。这指定 PDP 图的网格粒度。 -
"top_k_features"—(可选)如果features未提供参数,而且shap已提供,澄清选择顶部k基于 SHAP 归因的功能。您可以设置此值以指定 PDP 图必须使用多少顶级要素。默认值为 10。
-
-
-
"predictor"—(可选)关于模型参数的部分,如果需要"shap"和"post_training_bias"存在部分。-
"model_name"— 由创建的模型名称CreateModelAPI,容器模式为SingleModel. -
"instance_type"— 影子终端节点的实例类型。 -
"initial_instance_count"— 影子终端节点的实例计数。 -
"content_type"—(可选)用于获取影子端点推断的模型输入格式。有效值为"text/csv"对于 CSV,"application/jsonlines"对于 JSON 行,application/x-parquet对于 Apache 实木复合地板,以及application/x-image以启用计算机视觉的可解释性。默认值与dataset_type格式的日期和时间。 -
"accept_type"—(可选)模型输出用于获取影子端点推断的格式。有效值为"text/csv"对于 CSV,"application/jsonlines"对于 JSON 行,application/x-parquet对于 Apache 实木复合地板,以及application/x-image以启用计算机视觉的可解释性。默认值与content_type. -
"accelerator_type"—(可选)要附加到实例的 Elastic Inference (EI) 加速器类型。例如:ml.eia1.medium(有关更多信息,请参阅 使用 Amazon SageMaker Elastic Inference (EI) 。) -
"custom_attributes"—(可选)提供有关向亚马逊托管模型提交的推理请求的其他信息 SageMaker 终端节点。该信息是逐字转发的不透明值。例如,您可以使用此值提供跟踪请求的 ID。您还可以使用此值提供服务端点编程处理的元数据。该值必须包含不超过 1024 个可见的 US-ASCII 字符,如第 3.3.6 节。字段值组件超文本传输协议 (HTTP/1.1)。 -
"label"—(可选)偏差指标使用的目标属性的模型输出中的索引或 jsonPath 位置。如果labelCSV 中没有提供accept_typecase,然后澄清假定模型输出是与分数或概率对应的单个数值。 -
"probability"—(可选)模型输出中的索引或 jsonPath 位置,用于解释性的概率或分数。例如,如果模型输出是带有标签和概率列表的 JSON Line,则会选择与最大概率对应的标签进行偏差计算。对于可解释性方法,目前对所有概率进行了解释。 -
"endpoint_name-prefix"—(可选)为临时终端节点的名称提供自定义前缀。 -
"endpoint_name"—(可选)指定用于获取预测的现有终端节点,使用现有终端节点可缩短引导时间,但可能会导致现有终端节点的负载显著增加。指定现有生产终端节点时要谨慎。 -
"target_model"—(可选)在使用多模型端点时设置目标模型名称。有关多模型终端节点的更多信息,请参阅Request Syntax. -
"label_headers"—(可选)"label"获取数据集。将模型端点返回的分数与相应的标签值相关联。用于提取分数最高作为预测标签的标签值。 -
"content_template"—(可选)用于从数据集实例构造模型输入的模板字符串。它只在以下情况下使用"content_type"是"application/jsonlines". 模板应仅有一个占位符,$features,它在运行时由功能列表替换。例如,给定"content_template":"{\"myfeatures\":$features}",如果实例(没有标签)1,2,3,然后模型输入变为 JSON Line'{"myfeatures":[1,2,3]}'.
-
-
"report"—(可选)关于报告参数的部分。如果存在此部分,则会生成报告。-
"name"—(可选)报表笔记本和 PDF 文件的文件名前缀。默认名称为"report"。 -
"title"—(可选)报表笔记本和 PDF 文件的标题字符串。默认标题是"SageMaker Analysis Report".
-
示例 JSON 配置文件
以下是 CSV、JSON 行、图像和文本数据集的分析配置 JSON 文件的示例。
CSV 数据集的分析配置 JSON 文件
以下代码示例显示如何为 CSV 数据集配置分析。
{ "dataset_type": "text/csv", "headers": [ "feature_0", "feature_1", "feature_2", "feature_3", "target" ], "label": "target", "label_values_or_threshold": [1], "probability_threshold" : 0.7, "facet": [ { "name_or_index" : "feature_1", "value_or_threshold": [1] }, { "name_or_index" : "feature_2", "value_or_threshold": [0.7] } ], "group_variable": "feature_3", "joinsource_name_or_index":'column_name', "methods": { "shap": { "baseline": [ [ "yes", 3, 0.9, 1 ] ], "num_samples": 1000, "agg_method": "mean", "use_logit": true, "save_local_shap_values": true, "num_clusters": 5, "seed": 1234 }, "pre_training_bias": { "methods": "all" }, "post_training_bias": { "methods": "all" }, "report": { "name": "report", "title": "Analysis Report" } }, "predictor": { "model_name": "my_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1, "content_type": "text/csv", "accept_type": "text/csv", "accelerator_type":"ml.eia1.medium", "custom_attributes": "c000b4f9-df62-4c85-a0bf-7c525f9104a4", "label": 0, "probability": 1, "endpoint_name_prefix": "myendpointprefix", "target_model": "" } }
CSV 格式的模型输出如下:
Current,"[0.028986845165491104, 0.8253824710845947, 0.028993206098675728, 0.02898673340678215, 0.029557107016444206, 0.0290389321744442, 0.02905467338860035]"
相应的预测变量配置如下:
"predictor": { ..., "accept_type": "text/csv", "label": 0, "probability": 1, ... }
JSON 线数据集的分析配置 JSON 文件
以下代码示例演示了如何为 JSON Line 数据集配置分析。
{ "dataset_type": "application/jsonlines", "dataset_uri": "s3://my_bucket/my_folder/dataset.jsonl", "headers": ["Label", "Feature1", "Feature2"], "label": "data.label", "features": "data.features.values", "facet":[ { "name_or_index": "Feature1", "value_or_threshold": [1,5] }, { "name_or_index": "Feature2", "value_or_threshold": [2,6] } ], "methods": { "shap": { "baseline": [ {"data":{"features":{"values":[9,10]},"label":0}}, {"data":{"features":{"values":[11,12]},"label":1}} ] } }, "predictor": { "model_name": "my_jsonl_model", "instance_type": "ml.m5.xlarge", "initial_instance_count": 1 } }
作为 S3 前缀的数据集如下:
"dataset_uri": "s3://my_bucket/my_folder"
作为 S3 对象的数据集如下:
"dataset_uri": "s3://my_bucket/my_folder/train.csv"
作为 S3 对象的基线如下:
"baseline": "s3://my_bucket/my_folder/baseline.csv"
以 JSON 行形式输出模型如下:
{"predicted_label": "Current", "score": "[0.028986845165491104, 0.8253824710845947, 0.028993206098675728, 0.02898673340678215, 0.029557107016444206, 0.0290389321744442, 0.02905467338860035]"}
相应的预测变量配置如下:
"predictor": { ..., "accept_type": "application/jsonlines", "label": "predicted_label", "probability": "score", ... }
影像数据集的分析配置 JSON 文件
以下代码示例演示了如何使用计算机视觉为对象检测配置分析。
"dataset_type": "application/x-image", "dataset_uri": "s3://<BUCKET/KEY"> "probability_threshold": 0.7, "methods": { "shap": { "num_samples": 500, "baseline": "s3://path/to/baseline/image/noise_rgb.png", "image_config": { "model_type": "(OBJECT_DETECTION|IMAGE_CLASSIFICATION)", "num_segments": 20, "segment_compactness": (5|10|100), "max_objects" : 3, "overlap": 0.5, "context": 1.0 } } }, "predictor": { "endpoint_name": "sagemaker-endpoint-name", "content_type": "(image/jpeg | image/png | application/x-npy)", "label_headers": [...] # Required for CV }
文本数据集的 NLP 分析配置 JSON 文件
以下代码示例演示了如何为自然配置分析。语言正在处理。
{ "dataset_type":... . . "methods": { "shap" : { "baseline": ".." "num_samples": 100 *"text_config": { "granularity": "(token|sentence|paragraph)" "language": ".." }* } . . }