本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的低延遲即時推論 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
若要部署 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)
如需有關端點組態的詳細資訊,請參閱部署模型以進行即時推論。