低延迟实时推理 AWS PrivateLink - Amazon SageMaker

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

低延迟实时推理 AWS PrivateLink

Amazon SageMaker 为实时推断提供低延迟,同时使用多可用区部署保持高可用性和弹性。应用程序延迟由两个主要部分组成:基础设施或网络延迟以及模型推理延迟。减少开销延迟创造了新的可能性,例如部署更复杂、更深入、更精确的模型,或者将单体应用程序拆分为可扩展和可维护的微服务模块。您可以使用 AWS PrivateLink 部署来减少实时推断的 SageMaker 延迟。借 AWS PrivateLink助,您可以使用接口VPC端点,以可扩展的方式私密访问虚拟私有云 (VPC) 中的所有 SageMaker API操作。接口VPC终端节点是子网中的弹性网络接口,其私有 IP 地址可作为所有 SageMaker API呼叫的入口点。

默认情况下,具有 2 个或更多实例的 SageMaker 终端节点部署在至少 2 个 AWS 可用区 (AZs) 中,并且任何可用区中的实例都可以处理调用。这会导致一个或多个可用区“跳跃”,从而造成开销延迟。将 privateDNSEnabled 选项设置为 true 的 AWS PrivateLink 部署通过实现两个目标来缓解这个问题:

  • 它将所有推理流量保持在你的内部。VPC

  • 使用 Runt SageMaker ime 时,它会将调用流量与发起调用流量的客户端保持在同一个可用区中。这样可以避免在AZs减少开销延迟之间的 “跳跃”。

本指南的以下部分演示了如何通过 AWS PrivateLink 部署减少实时推理的延迟。

要进行部署 AWS PrivateLink,请先为其创建一个接口终端节点,VPC从该终端节点连接到 SageMaker 终端节点。请按照使用接口终端节点访问 AWS 服务中的步骤创建接口VPC终端节点。创建端点时,请在控制台界面中选择以下设置:

  • 选中 “其他设置” 下的 “启用DNS名称” 复选框

  • 选择要与 SageMaker 端点一起使用的相应安全组和子网。

还要确保VPC已打开DNS主机名。有关如何更改DNS属性的更多信息VPC,请参阅查看和更新您的DNS属性VPC

在中部署 SageMaker 终端节点 VPC

要实现低开销延迟,请使用您在部署 AWS PrivateLink时指定的相同子网创建 SageMaker 终端节点。这些子网应与您的客户端应用程序相匹配,如以下代码片段所示。AZs

model_name = '<the-name-of-your-model>' vpc = 'vpc-0123456789abcdef0' subnet_a = 'subnet-0123456789abcdef0' subnet_b = 'subnet-0123456789abcdef1' security_group = 'sg-0123456789abcdef0' create_model_response = sagemaker_client.create_model( ModelName = model_name, ExecutionRoleArn = sagemaker_role, PrimaryContainer = { 'Image': container, 'ModelDataUrl': model_url }, VpcConfig = { 'SecurityGroupIds': [security_group], 'Subnets': [subnet_a, subnet_b], }, )

上述代码片段假定您已按照 开始前的准备工作 中的步骤进行操作。

调用 SageMaker 终端节点

最后,指定 SageMaker Runtime 客户端并调用 SageMaker 端点,如以下代码片段所示。

endpoint_name = '<endpoint-name>' runtime_client = boto3.client('sagemaker-runtime') response = runtime_client.invoke_endpoint(EndpointName=endpoint_name, ContentType='text/csv', Body=payload)

有关端点配置的更多信息,请参阅部署模型以进行实时推理