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

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

创建基准

统计数据和约束的基准计算需作为检测数据漂移和其他数据质量问题的标准。Model Monitor 提供了一个内置容器,该容器能够自动为CSV扁平JSON输入建议约束条件。此sagemaker-model-monitor-analyzer容器还为您提供了一系列模型监控功能,包括根据基准进行约束验证和发出 Amazon CloudWatch 指标。此容器基于 Spark 版本 3.3.0,并通过 Deequ 版本 2.0.2 构建。基准数据集中的所有列名称都必须符合 Spark。对于列名称,请仅使用小写字符,_ 是唯一的特殊字符。

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

从训练数据集创建基准

将训练数据准备就绪并存储在 Amazon S3 中后,DefaultModelMonitor.suggest_baseline(..)使用 A maz SageMaker on 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 文件)

Amaz SageMaker on 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", }