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

无服务器推理

Amazon SageMaker 无服务器推理是一个专用的推理选项,使您能够部署和扩展 ML 模型,而无需配置或管理任何底层基础设施。按需无服务器推理非常适合那些在流量激增之间有空闲期并且可以容忍冷启动的工作负载。无服务器端点可自动启动计算资源,并根据流量的大小扩展和缩减资源,而无需选择实例类型或管理扩展策略。这消除了选择和管理服务器的无差别繁重工作。无服务器推理与 Amazon Lambda 集成,为您提供高可用性、内置容错能力和自动扩展功能。无服务器推理采用按使用量付费的模式,如果您的流量模式不频繁或不可预测,那么无服务器推理是一种经济高效的选择。在没有请求的情况下,无服务器推理会将您的端点缩减到 0,从而使您能最大限度地降低成本。有关按需无服务器推理定价的更多信息,请参阅 Amazon SageMaker 定价

您还可以选择将预置并发与无服务器推理结合使用。当您的流量出现可预测的突发情况时,使用预置并发的无服务器推理是一种经济高效的选择。预置并发允许您在无服务器端点上部署模型,并通过保持端点温度来实现可预测的性能和高可扩展性。SageMaker 可确保根据您分配的预置并发数,初始化计算资源并使资源在几毫秒内做出响应。对于使用预置并发的无服务器推理,您需要为用于处理推理请求的计算容量付费,按毫秒和处理的数据量计费。您还需根据配置的内存、预置的持续时间和启用的并发量,为预置并发使用量付费。有关使用预置并发的无服务器推理定价的更多信息,请参阅 Amazon SageMaker 定价

您可以将无服务器推理与 MLOps Pipelines 集成以简化 ML 工作流,还可以使用无服务器端点来托管在模型注册表中注册的模型。

无服务器推理在 21 个 Amazon 区域普遍可用:美国东部(弗吉尼亚州北部)、美国东部(俄亥俄州)、美国西部(北加利福尼亚)、美国西部(俄勒冈州)、非洲(开普敦)、亚太地区(香港)、亚太地区(孟买)、亚太地区(东京)、亚太地区(首尔)、亚太地区(大阪)、亚太地区(新加坡)、亚太地区(悉尼)、加拿大(中部)、欧洲地区(法兰克福)、欧洲地区(爱尔兰)、欧洲地区(伦敦)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)、欧洲地区(米兰)、中东(巴林)、南美洲(圣保罗)。有关 Amazon SageMaker 区域可用性的更多信息,请参阅 Amazon 区域服务清单

工作方式

下图显示了按需无服务器推理的工作流以及使用无服务器端点的好处。


    无服务器推理工作流示意图:客户端向无服务器推理发送请求,而模型预测则作为响应发送回来。

当您创建按需无服务器端点时,SageMaker 会为您预置和管理计算资源。然后,您可以向端点发出推理请求,并在响应中接收模型预测。SageMaker 可根据需要扩展和缩减计算资源以处理您的请求流量,而且您只需为所使用的资源付费。

对于预置并发,无服务器推理还与 Application Auto Scaling 集成,因此您可以根据目标指标或计划管理预置并发。有关更多信息,请参阅 自动扩展无服务器端点的预置并发

以下各节提供了有关无服务器推理及其工作方式的其他详细信息。

容器支持

对于端点容器,您可以选择 SageMaker 提供的容器或自带容器。SageMaker 为其内置算法提供容器,并为一些最常见的机器学习框架(如 Apache MXNet、TensorFlow、PyTorch 和 Chainer)提供预构建的 Docker 映像。有关可用 SageMaker 映像的列表,请参阅可用的深度学习容器映像。如果您自带容器,则必须对其进行修改,以便与 SageMaker 配合使用。有关自带容器的更多信息,请参阅调整自己的推理容器

您可以使用的容器映像的最大大小为 10 GB。对于无服务器端点,我们建议在容器中只创建一个 worker,并且只加载模型的一个副本。请注意,这与实时端点不同,在实时端点中,一些 SageMaker 容器可能会为每个 vCPU 创建一个 worker 以处理推理请求,并在每个 worker 中加载模型。

如果您已经有一个用于实时端点的容器,您就可以将相同的容器用于无服务器端点,不过某些功能会被排除在外。要了解有关无服务器推理不支持的容器功能的更多信息,请参阅功能排除。如果您选择使用同一个容器,SageMaker 会代管(保留)容器映像的副本,直到您删除使用该映像的所有端点。SageMaker 使用 SageMaker 拥有的 Amazon KMS 密钥对复制的映像进行静态加密。

内存大小

无服务器端点的最小 RAM 大小为 1024 MB (1 GB),可选择的最大 RAM 大小为 6144 MB (6 GB)。您可以选择的内存大小有 1024 MB、2048 MB、3072 MB、4096 MB、5120 MB 或 6144 MB。无服务器推理会自动分配与所选内存成比例的计算资源。如果选择更大的内存大小,容器就可以访问更多的 vCPU。根据模型大小选择端点内存大小。一般来说,内存大小至少应与模型大小相同。您可能需要进行基准测试,以便根据延迟 SLA 为模型选择合适的内存大小。有关基准测试的分步指南,请参阅 Amazon SageMaker 无服务器推理基准测试工具包简介。内存大小增量有不同的定价;有关更多信息,请参阅 Amazon SageMaker 定价页面

无论您选择多大的内存,您的无服务器端点都有 5 GB 的临时磁盘存储空间可用。要解决使用存储时的容器权限问题,请参阅问题排查

并发调用

按需无服务器推理可为端点容量管理预定义的扩展策略和限额。无服务器端点对同时处理并发调用的数量有限额限制。如果端点在处理完第一个请求之前被调用,那么它将并发地处理第二个请求。

您可以在账户中的所有无服务器端点之间共享的总并发量取决于您所在的区域:

  • 对于美国东部(俄亥俄州)、美国东部(弗吉尼亚州北部)、美国西部(俄勒冈州)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、欧洲地区(法兰克福)和欧洲地区(爱尔兰)区域,您账户中每个区域的所有无服务器端点之间可共享的总并发量为 1000。

  • 对于美国西部(北加利福尼亚)、非洲(开普敦)、亚太地区(香港)、亚太地区(孟买)、亚太地区(大阪)、亚太地区(首尔)、加拿大(中部)、欧洲地区(伦敦)、欧洲地区(米兰)、欧洲地区(巴黎)、欧洲地区(斯德哥尔摩)、中东(巴林)和南美洲(圣保罗)区域,您账户中每个区域的总并发量为 500。

您可以将单个端点的最大并发量设置为 200,一个区域中可托管的无服务器端点总数为 50。单个端点的最大并发量可防止该端点占用账户允许的所有调用,任何超出最大值的端点调用都会被节流。

注意

分配给无服务器端点的预置并发应始终小于或等于分配给该端点的最大并发量。

要了解如何设置端点的最大并发量,请参阅创建端点配置。有关限额和限制的更多信息,请参阅Amazon Web Services 一般参考中的 Amazon SageMaker 端点和限额。如需提高服务限制,请联系 Amazon Support。有关如何申请提高服务限制的说明,请参阅支持的区域和配额

最大限度减少冷启动

如果您的按需无服务器推理端点有一段时间没有收到流量,然后突然收到新请求,那么您的端点可能需要一些时间才能启动计算资源来处理这些请求。这称为冷启动。由于无服务器端点按需预置计算资源,因此您的端点可能会出现冷启动。如果并发请求超过当前并发请求使用量,也会出现冷启动。冷启动时间取决于模型大小、下载模型所需的时间以及容器的启动时间。

要监控冷启动时间,可以使用 Amazon CloudWatch 指标 OverheadLatency 来监控无服务器端点。该指标跟踪为端点启动新计算资源所需的时间。要了解有关将 CloudWatch 指标用于无服务器端点的更多信息,请参阅监控无服务器端点

使用预置并发可以最大限度地减少冷启动。SageMaker 会根据您分配的预置并发数,使端点保持热状态并在几毫秒内做出响应。

功能排除

SageMaker 实时推理目前可用的一些功能不受无服务器推理支持,包括 GPU、Amazon Marketplace 模型包、私有 Docker 注册表、多模型端点、VPC 配置、网络隔离、数据捕获、多种生产变体、模型监控器和推理管道。

您不能将基于实例的实时端点转换为无服务器端点。如果您尝试将实时端点更新为无服务器端点,您会收到 ValidationError 消息。您可以将无服务器端点转换为实时端点,但一旦进行了更新,就无法将其还原为无服务器端点。

开始使用

您可以使用 SageMaker 控制台、Amazon SDK、Amazon SageMaker Python SDK 和 Amazon CLI 创建、更新、描述和删除无服务器端点。您可以使用 Amazon SDK、Amazon SageMaker Python SDK 和 Amazon CLI 调用端点。对于使用预置并发的无服务器端点,您可以使用 Application Auto Scaling 根据目标指标或计划自动扩缩预置并发。有关如何设置和使用无服务器端点的更多信息,请阅读指南创建、调用、更新和删除无服务器端点。有关自动扩缩使用预置并发的无服务器端点的更多信息,请参阅自动扩展无服务器端点的预置并发

注意

Amazon CloudFormation 目前不支持使用预置并发的无服务器推理的 Application Auto Scaling。

示例笔记本和博客

有关展示端到端无服务器端点工作流的 Jupyter 笔记本示例,请参阅无服务器推理示例笔记本