运行经过训练的 Amazon Rekognition Custom Labels 模型 - Rekognition

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

运行经过训练的 Amazon Rekognition Custom Labels 模型

当您对模型性能感到满意后,就可以开始使用它了。您可以使用控制台或 AWS SDK 启动和停止模型。控制台还包含您可以使用的示例 SDK 操作。

推理单元

启动模型时,需要指定模型使用的计算资源(称为推理单元)的数量。

重要

根据您配置模型运行的方式,您需要为模型运行的小时数和模型在运行时使用的推理单元数付费。例如,如果使用两个推理单元启动模型并使用模型 8 小时,则需要支付 16 个推理小时(8 小时运行时间 x 两个推理单元)的费用。有关更多信息,请参阅推理小时。如果没有明确停止模型,则即使没有主动使用模型来分析图像,也需要付费。

单个推理单元支持的每秒事务数 (TPS) 受以下因素影响。

  • 检测图像级标签(分类)的模型通常比使用边界框检测和定位物体(物体检测)的模型具有更高的 TPS。

  • 模型的复杂性。

  • 分辨率更高的图像需要的分析时间更多。

  • 图像中包含的物体越多,需要的分析时间也越多。

  • 小图像的分析速度比大图像更快。

  • 以图像字节形式传递的图像与先将图像上传到 Amazon S3 存储桶,然后再引用上传的图像相比,前者的分析速度更快。以图像字节形式传递的图像必须小于 4.0 MB。在近乎实时地处理大小小于 4.0 MB 的图像时,建议使用图像字节。例如,从 IP 摄像头捕获的图像。

  • 处理存储在 Amazon S3 存储桶中的图像,比下载图像、转换为图像字节,然后再传递图像字节进行分析要快。

  • 分析已存储在 Amazon S3 存储桶中的图像可能比分析作为图像字节传递的相同图像要快。当图像较大时,尤其如此。

如果调用 DetectCustomLabels 的次数超过了模型使用的推理单元总数所支持的最大 TPS,Amazon Rekognition Custom Labels 将返回 ProvisionedThroughputExceededException 异常。

使用推理单元管理吞吐量

可以根据应用程序的需求提高或降低模型的吞吐量。可通过增加推理单元来提高吞吐量。每增加一个推理单元,您的处理速度就会增加一个推理单元。有关如何计算所需的推理单元数,请参阅计算 Amazon Rekognition Custom Labels 和 Amazon Lookout for Vision 模型的推理单元数量。如果要更改模型支持的吞吐量,您有两种选择:

手动添加或移除推理单元

停止模型,然后使用所需数量的推理单元重新启动模型。这种方法的缺点是,模型在重新启动时无法接收请求,也不能用于应对需求高峰。如果您的模型具有稳定的吞吐量,并且您的使用场景可以容忍 10-20 分钟的停机时间,请使用此方法。例如,您想使用每周计划对模型进行批量调用。

自动扩缩推理单元数量

如果模型必须应对需求高峰,Amazon Rekognition Custom Labels 可以自动扩缩模型使用的推理单元数量。随着需求的增加,Amazon Rekognition Custom Labels 会向模型添加额外的推理单元,并在需求减少时将其移除。

要让 Amazon Rekognition Custom Labels 自动扩缩模型的推理单元,请启动模型并使用 MaxInferenceUnits 参数设置模型可使用的最大推理单元数。通过设置最大推理单元数,您可以通过限制模型可使用的推理单元数量来管理模型的运行成本。如果不指定最大单元数,Amazon Rekognition Custom Labels 将不会自动扩缩模型,而只会使用启动时所用的推理单元数。有关最大推理单元数的信息,请参阅服务限额

您也可使用 MinInferenceUnits 参数指定最小推理单元数。这可让您为模型指定最小吞吐量,这里的一个推理单元代表 1 小时的处理时间。

注意

无法通过 Amazon Rekognition Custom Labels 控制台设置最大推理单元数,而应通过为 StartProjectVersion 操作指定 MaxInferenceUnits 输入参数来设置。

Amazon Rekognition 自定义标签提供了以下 CloudWatch 亚马逊日志指标,您可以使用这些指标来确定模型当前的自动扩展状态。

指标 描述

DesiredInferenceUnits

Amazon Rekognition Custom Labels 要增加或缩减到的推理单元数量。

InServiceInferenceUnits

模型正在使用的推理单元数量。

如果 DesiredInferenceUnits = InServiceInferenceUnits,Amazon Rekognition Custom Labels 目前不会增减推理单元的数量。

如果 DesiredInferenceUnits > InServiceInferenceUnits,Amazon Rekognition Custom Labels 会将数量增加到 DesiredInferenceUnits 的值。

如果 DesiredInferenceUnits < InServiceInferenceUnits,Amazon Rekognition Custom Labels 会将数量缩减到 DesiredInferenceUnits 的值。

有关亚马逊 Rekognition 自定义标签和筛选维度返回的指标的更多信息,请参阅 Rekognition 的指标。CloudWatch

要了解您为模型请求的最大推理单元数,请调用 DescribeProjectsVersion 并检查响应中的 MaxInferenceUnits 字段。有关代码示例,请参阅 描述模型 (SDK)

可用区

Amazon Rekognition Custom Labels 会将推理单元分配到 AWS 区域内的多个可用区,以提高可用性。有关更多信息,请参阅可用区。为帮助保护生产模型免受可用区中断和推理单元故障的影响,请使用至少两个推理单元启动生产模型。

如果可用区中断,可用区中的所有推理单元都将无法使用,模型容量也会减少。对DetectCustom标签的调用将重新分配到其余的推理单元中。如果此类调用不超过其余推理单元支持的每秒事务数 (TPS),则会成功。AWS 修复可用区后,推理单元将重新启动,模型也将恢复其全部容量。

如果单个推理单元出现故障,Amazon Rekognition Custom Labels 会自动在同一可用区内启动新的推理单元。在新推理单元启动之前,模型容量会降低。