创建基准 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

创建基准

统计数据和约束的基准计算需要作为可以检测数据偏差和其他数据质量问题的标准。 模型监控器 提供了一个内置容器,它提供了自动建议 CSV 和平面 JSON 输入的约束的功能。此 sagemaker-model-monitor-analyzer 容器还为您提供了一系列的模型监控功能,包括针对基准的约束验证和发出 Amazon CloudWatch 指标。此容器基于 Spark,并通过 Deequ 构建。基准数据集中的所有列名称都必须符合 Spark 标准。对于列名称,请仅使用小写字符,并将 _ 用作唯一特殊字符。

用来训练模型的训练数据集通常是一个很好的基准数据集。训练数据集数据架构和推理数据集架构应完全匹配(特征的数量和顺序)。请注意,预测/输出列假定为训练数据集中的第一个列。在训练数据集中,您可以要求 SageMaker 建议一组基准约束,并生成描述性统计数据来探究数据。对于此示例,上传已用于训练本示例中包含的预训练模型的训练数据集。如果您已将训练数据集存储在 中Amazon S3,则可以直接指向它。

从训练数据集创建基准

在准备好训练数据并将其存储在 中后Amazon S3,DefaultModelMonitor.suggest_baseline(..)请使用 通过 启动基准处理作业Amazon SageMaker Python SDK。这将使用Amazon SageMaker 模型监控器 预构建的容器,它会生成基准统计数据,建议数据集的基准约束并将其写入您指定的 output_s3_uri 位置。

from sagemaker.model_monitor import DefaultModelMonitor from sagemaker.model_monitor.dataset_format import DatasetFormat my_default_monitor = DefaultModelMonitor( role=role, instance_count=1, instance_type='ml.m5.xlarge', volume_size_in_gb=20, max_runtime_in_seconds=3600, ) my_default_monitor.suggest_baseline( baseline_dataset=baseline_data_uri+'/training-dataset-with-header.csv', dataset_format=DatasetFormat.csv(header=True), output_s3_uri=baseline_results_uri, wait=True )
注意

如果您在训练数据集中提供特征/列名称作为第一行并设置 header=True 选项,如上一个代码示例所示,则 SageMaker 将使用约束和统计数据文件中的特征名称。

数据集的基准统计数据包含在 statistics.json 文件中,建议的基准约束包含在 constraints.json 文件中,这两个文件位于您使用 output_s3_uri 指定的位置。

表格数据集统计数据和约束的输出文件
文件名称 描述
statistics.json

此文件应具有所分析数据集中每个特征的列式统计数据。有关此文件的架构的更多信息,请参阅统计数据的架构(statistics.json 文件)

constraints.json

此文件应对观察到的特征有约束。有关此文件的架构的更多信息,请参阅约束的架构(constraints.json 文件)

Amazon SageMaker Python SDK提供了用于生成基准统计数据和约束的易于使用的函数。但是,如果您要直接调用处理作业以实现此目的,则需要设置 Environment 映射,如以下示例所示:

"Environment": { "dataset_format": "{\"csv\”: { \”header\”: true}", "dataset_source": "/opt/ml/processing/sm_input", "output_path": "/opt/ml/processing/sm_output", "publish_cloudwatch_metrics": "Disabled", }