配置分析 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

配置分析

分析的输入是由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". 文本单位的有效值为tokensentence, 和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"true,那么 SHAP 值具有对数赔率单位。原定设置值为 false

      • "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": ".." }* } . . }