本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从批量转换作业捕获数据
无论您使用的是 Python SDK 还是 SageMaker Python SDK,为批处理转换作业开启数据采集所需的步骤都是相似的。 AWS SDK for Python (Boto) 如果您使用 AWS SDK,请在CreateTransformJob方法中定义DataCaptureConfig字典以及必填字段,以开启数据采集。如果您使用 SageMaker AI Python SDK,请导入该BatchDataCaptureConfig类并从该类初始化一个实例。然后,将此对象传递给转换作业实例的 batch_data_capture_config 参数。
要使用以下代码片段,请用您自己的信息替换示例代码italicized placeholder
text中的。
如何启用数据捕获
启动转换作业时指定数据捕获配置。无论您使用还是 SageMaker Python SDK,都必须提供DestinationS3Uri参数,即您希望转换作业记录捕获数据的目录。 适用于 Python (Boto3) 的 AWS SDK (可选)您还可以设置以下参数:
-
KmsKeyId:用于加密捕获数据的密 AWS KMS 钥。 -
GenerateInferenceId:一个布尔标志,用于在捕获数据时指示您是否希望转换作业将推理 ID 和时间附加到输出中。这对于需要摄取 Ground Truth 数据的模型质量监控非常有用。推理 ID 和时间有助于将捕获的数据与您的 Ground Truth 数据进行匹配。
如何查看捕获的数据
转换作业完成后,捕获的数据将记录在您随数据捕获配置提供的 DestinationS3Uri 下。DestinationS3Uri 下有两个子目录:/input 和 /output。如果 DestinationS3Uri 为 s3://my-data-capture,则转换作业将创建以下目录:
-
s3://my-data-capture/input:为转换作业捕获的输入数据。 -
s3://my-data-capture/output:为转换作业捕获的输出数据。
为避免数据重复,上述两个目录下捕获的数据都是清单。每个清单都是一个 JSONL 文件,其中包含源对象的 Amazon S3 位置。清单文件可能如以下示例所示:
# under "/input" directory [ {"prefix":"s3://input_S3_uri/"}, "dummy_0.csv", "dummy_1.csv", "dummy_2.csv", ... ] # under "/output" directory [ {"prefix":"s3://output_S3_uri/"}, "dummy_0.csv.out", "dummy_1.csv.out", "dummy_2.csv.out", ... ]
转换任务使用 yyyy/mm/dd/hh S3 前缀整理和标记这些清单,以指示它们何时被捕获。这有助于 Model Monitor 确定要分析的数据的相应部分。例如,如果您在 2022-8-26 13PM UTC 开始转换作业,则捕获的数据将标有 2022/08/26/13/ 前缀字符串。
InferenceId 世代
为转换作业配置 DataCaptureConfig 时,可以打开布尔标志 GenerateInferenceId。当您需要运行模型质量和模型偏差监控作业(需要用户摄取的 Ground Truth 数据)时,这特别有用。Model Monitor 依靠推理 ID 来匹配捕获的数据和 Ground Truth 数据。有关 Ground Truth 摄取的更多详细信息,请参阅输入地面实况标签并与预测结果合并。打开 GenerateInferenceId 后,转换输出会为每条记录附加推理 ID(随机 UUID)以及转换作业开始时间 (UTC)。运行模型质量和模型偏差监控时需要这两个值。构造 Ground Truth 数据时,需要提供相同的推理 ID 以匹配输出数据。目前,此特征支持 CSV、JSON 和 JSONL 格式的转换输出。
如果您的转换输出采用 CSV 格式,则输出文件类似于以下示例:
0, 1f1d57b1-2e6f-488c-8c30-db4e6d757861,2022-08-30T00:49:15Z 1, 22445434-0c67-45e9-bb4d-bd1bf26561e6,2022-08-30T00:49:15Z ...
最后两列是推理 ID 和转换作业开始时间。请勿修改它们。其余列是您的转换作业输出。
如果转换输出采用 JSON 或 JSONL 格式,则输出文件类似于以下示例:
{"output": 0, "SageMakerInferenceId": "1f1d57b1-2e6f-488c-8c30-db4e6d757861", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"} {"output": 1, "SageMakerInferenceId": "22445434-0c67-45e9-bb4d-bd1bf26561e6", "SageMakerInferenceTime": "2022-08-30T00:49:15Z"} ...
有两个保留的附加字段:SageMakerInferenceId 和 SageMakerInferenceTime。如果需要运行模型质量或模型偏差监控,请勿修改这些字段,因为合并作业需要这些字段。