使用 的低延遲即時推論 AWS PrivateLink - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 的低延遲即時推論 AWS PrivateLink

Amazon 為即時推論 SageMaker 提供低延遲,同時使用多可用區域部署維持高可用性和彈性。應用程式延遲由兩個主要元件組成:基礎架構或額外負荷延遲以及模型推論延遲。減少額外負荷延遲開啟了新的可能性,例如部署更複雜、更深入且精確的模型,或將整體應用程式分割為可擴充且可維護的微服務模組。您可以使用 SageMaker 部署來降低即時推論 AWS PrivateLink 的延遲。透過 AWS PrivateLink,您可以使用介面VPC端點,以可擴展的方式從虛擬私有雲端 (VPC) 私下存取所有 SageMaker API操作。介面VPC端點是子網路中的彈性網路介面,其私有 IP 地址可做為所有 SageMaker API呼叫的進入點。

根據預設,具有 2 個或更多執行個體的 SageMaker 端點會部署在至少 2 個 AWS 可用區域 (AZs) 中,而任何 AZ 中的執行個體都可以處理調用。這會導致一個或多個 AZ “跳轉” 造成額外負荷延遲。其 privateDNSEnabled 選項設定為 true 的 AWS PrivateLink 部署可藉由達成兩個目標來減輕此問題:

  • 它會保留 內的所有推論流量VPC。

  • 它會將調用流量保留在與使用 SageMaker 執行期時產生它的用戶端相同的 AZ 中。這可避免AZs減少額外負荷延遲之間的「跳轉」。

本指南的以下各節示範如何透過 AWS PrivateLink 部署降低即時推論的延遲。

若要部署 AWS PrivateLink,請先為您連線端點的 VPC 建立介面 SageMaker 端點。請依照使用介面VPC端點存取 AWS 服務中的步驟來建立介面端點。建立端點時,請在主控台介面中選取下列設定:

  • 選取其他設定下的啟用DNS名稱核取方塊

  • 選取要與 SageMaker 端點搭配使用的適當安全群組和子網路。

此外,請確定 VPC已開啟DNS主機名稱。如需如何變更 的DNS屬性的詳細資訊VPC,請參閱檢視和更新 的DNS屬性VPC

在 中部署 SageMaker 端點 VPC

若要達到低額外負荷延遲,請使用您在部署 時指定的相同子網路建立 SageMaker 端點 AWS PrivateLink。這些子網路應與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)

如需有關端點組態的詳細資訊,請參閱部署模型以進行即時推論