在自动导航生成的容器中配置推理输出 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

在自动导航生成的容器中配置推理输出

Amazon SageMaker Autopilot 生成订购ContainerDefinition列表,该列表可用于构建模型以在机器学习管道中部署。此模型可用于在线托管和推理。客户可以访问推理容器定义列表,使用ListCandidateForAutoMLJobAPI。代表最佳候选项的推断容器定义列表也可作为DescribeAutoMLJob响应.

回归和分类问题类型的推理容器定义

生成的推理容器取决于作业的问题类型。

  • 回归:生成两个容器:

    1. 首先是将原始要素转换为回归算法可以训练的要素的要素工程容器。

    2. 其次是转换要素并为数据集生成回归分数的算法容器。

  • Classification:生成三个容器:

    1. 首先是将原始要素转换为分类算法可以训练的要素的要素工程容器。

    2. 其次是生成获胜的算法容器predicted_label这也可以产生与推断响应中的分类结果有关的各种概率.

    3. 第三个是一个要素工程容器,用于执行算法预测的后处理,例如,将预测标注转换为原始标注。

选择分类模型的推理响应

分类推理容器允许您选择推理响应的内容。有四个预定义键:

  • predicted_label: 由自动驾驶仪确定的获奖标签.

  • probabilityTrue类进行二进制分类。获胜类别多类别分类的概率。

  • probabilities:所有相应标签的概率列表。

  • labels:所有标签列表

默认情况下,推理容器配置为生成predicted_label仅限 。

三个环境变量用于选择可选的推理内容:

  • SAGEMAKER_INFERENCE_SUPPORTED:此设置为向用户提供有关每个容器支持哪些内容的提示。

  • SAGEMAKER_INFERENCE_INPUT:应该设置为容器在其输入有效载荷中期望的键。

  • SAGEMAKER_INFERENCE_OUTPUT:应该用容器输出的键集填充。

为了选择推理响应内容,我们需要添加SAGEMAKER_INFERENCE_INPUTSAGEMAKER_INFERENCE_OUTPUT适当地在第二个和第三个集装箱的分类问题的集装箱清单.

第三个分类模型容器支持的密钥是predicted_labellabelsprobabilityprobabilities因此,SAGEMAKER_INFERENCE_SUPPORTED环境中包含所有这些键的名称。

第二个容器(算法)支持的键是预测的 _label、概率和概率。请注意,“标签” 是故意不会添加到 SAGEKER 推理支持的。

以下是如何更新推断容器的定义以接收predicted_labelprobability.

containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'}) containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label, probability'}) containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probability'})

以下是如何更新推断容器的定义以接收predicted_labelprobabilitieslabels. 请注意,您不需要传递labels添加到第二个容器(算法容器),因为它是冗余的,并且可以由第三个容器独立生成。这减少了延迟。

containers[1]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label,probabilities'}) containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_INPUT': 'predicted_label,probabilities'}) containers[2]['Environment'].update({'SAGEMAKER_INFERENCE_OUTPUT': 'predicted_label, probabilities,labels'})

您可以使用Amazon SageMaker Python 开发工具包。来完成此操作,如下所示:

from sagemaker import AutoML aml = AutoML.attach(auto_ml_job_name='AUTOML_JOB_NAME') aml_best_model = aml.create_model(name='SELECT_MODEL_NAME', candidate=None, inference_response_keys=['probabilities', 'labels']) aml_transformer = aml_best_model.transformer(accept='text/csv', assemble_with='Line', instance_type='ml.m5.xlarge', instance_count=1,) aml_transformer.transform(test_data_s3_path, content_type='text/csv', split_type='Line', job_name=<Add jobName>, wait=True)