本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
低延迟实时推理 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
要进行部署 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)
有关端点配置的更多信息,请参阅部署模型以进行实时推理。