本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
从批量转换作业捕获数据
无论您使用还是 SageMaker Python,为批处理转换作业开启数据捕获所需的步骤都是相似 Amazon SDK for Python (Boto) 的SDK。如果使用 Amazon SDK,请在CreateTransformJob
方法中定义DataCaptureConfig字典以及必填字段以开启数据捕获。如果您使用 SageMaker PythonSDK,请导入该BatchDataCaptureConfig
类并从该类中初始化一个实例。然后,将此对象传递给转换作业实例的 batch_data_capture_config
参数。
要使用以下代码片段,请替换 italicized placeholder
text
在示例代码中包含您自己的信息。
如何启用数据捕获
启动转换作业时指定数据捕获配置。无论您使用还是 SageMaker PythonSDK,都必须提供DestinationS3Uri
参数,即您希望转换作业记录捕获数据的目录。 Amazon SDK for Python (Boto3) (可选)您还可以设置以下参数:
-
KmsKeyId
:用于加密捕获数据的密 Amazon 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
:为转换作业捕获的输出数据。
为避免数据重复,上述两个目录下捕获的数据都是清单。每个清单都是一个包含源对象的 Amazon S3 位置的JSONL文件。清单文件可能如以下示例所示:
# 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 下午 13 点开始转换作业UTC,则会使用前缀字符串标记捕获的数据。2022/08/26/13/
InferenceId 世代
为转换作业配置 DataCaptureConfig
时,可以打开布尔标志 GenerateInferenceId
。当您需要运行模型质量和模型偏差监控作业(需要用户摄取的 Ground Truth 数据)时,这特别有用。Model Monitor 依靠推理 ID 来匹配捕获的数据和 Ground Truth 数据。有关 Ground Truth 摄取的更多详细信息,请参阅收录 Ground Truth 标签并将其与预测合并。启用后GenerateInferenceId
,转换输出会为每条记录附加推理 ID(随机UUID)以及转换作业UTC的开始时间。运行模型质量和模型偏差监控时需要这两个值。构造 Ground Truth 数据时,需要提供相同的推理 ID 以匹配输出数据。目前,此功能支持以CSVJSON、和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 和转换作业开始时间。请勿修改它们。其余列是您的转换作业输出。
如果您的转换输出JSONL采用JSON或格式,则输出文件类似于以下示例:
{"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
。如果需要运行模型质量或模型偏差监控,请勿修改这些字段,因为合并作业需要这些字段。