Inferenza in tempo reale a bassa latenza con AWS PrivateLink - Amazon SageMaker

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Inferenza in tempo reale a bassa latenza con AWS PrivateLink

Amazon SageMaker offre una bassa latenza per le inferenze in tempo reale mantenendo al contempo disponibilità e resilienza elevate utilizzando la distribuzione Multi-AZ. La latenza dell'applicazione è costituita da due componenti principali: la latenza dell'infrastruttura o sovraccarico e la latenza dell'inferenza del modello. La riduzione della latenza di sovraccarico apre nuove possibilità, come l'implementazione di modelli più complessi, precisi e accurati o la suddivisione di applicazioni monolitiche in moduli di microservizi scalabili e gestibili. Puoi ridurre la latenza per le inferenze in tempo reale utilizzando una distribuzione. SageMaker AWS PrivateLink Con AWS PrivateLink, puoi accedere privatamente a tutte le SageMaker API operazioni dal tuo Virtual Private Cloud (VPC) in modo scalabile utilizzando gli endpoint dell'interfaccia. VPC Un VPC endpoint di interfaccia è un'interfaccia di rete elastica nella sottorete con indirizzi IP privati che funge da punto di ingresso per tutte le SageMaker API chiamate.

Per impostazione predefinita, un SageMaker endpoint con 2 o più istanze viene distribuito in almeno 2 zone di disponibilità (AZs) e le istanze in qualsiasi zona di AWS disponibilità possono elaborare le chiamate. Ciò comporta uno o più "salti" di AZ che contribuiscono alla latenza di sovraccarico. Un'implementazione AWS PrivateLink con l'opzione privateDNSEnabled impostata su true attenua questo problema grazie al raggiungimento di due obiettivi:

  • Mantiene tutto il traffico di inferenza all'interno del tuo. VPC

  • Mantiene il traffico di invocazione nella stessa AZ del client che lo ha originato quando si utilizza Runtime. SageMaker In questo modo si evitano i «salti» tra AZs una riduzione della latenza di sovraccarico e l'altra.

Le seguenti sezioni di questa guida mostrano come ridurre la latenza delle inferenze in tempo reale con la distribuzione di AWS PrivateLink .

Per la distribuzione AWS PrivateLink, crea innanzitutto un endpoint di interfaccia per il VPC quale ti connetti agli endpoint. SageMaker Segui la procedura descritta in Accedere a un AWS servizio utilizzando un endpoint di interfaccia per creare l'VPCendpoint di interfaccia. Durante la creazione dell'endpoint, seleziona le seguenti impostazioni nell'interfaccia della console:

  • Seleziona la casella di controllo Abilita DNS nome in Impostazioni aggiuntive

  • Seleziona i gruppi di sicurezza appropriati e le sottoreti da utilizzare con gli endpoint. SageMaker

Assicurati inoltre che i nomi DNS host siano VPC attivati. Per ulteriori informazioni su come modificare DNS gli DNSattributi del tuo VPC. VPC

Distribuisci un SageMaker endpoint in un VPC

Per ottenere una bassa latenza di overhead, crea un SageMaker endpoint utilizzando le stesse sottoreti che hai specificato durante la distribuzione. AWS PrivateLink Queste sottoreti devono corrispondere a quelle AZs dell'applicazione client, come illustrato nel seguente frammento di codice.

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], }, )

Il frammento di codice sopra menzionato presuppone che tu abbia seguito le fasi descritte in Prima di iniziare.

SageMaker Invoca l'endpoint

Infine, specifica il client SageMaker Runtime e richiama l' SageMaker endpoint come mostrato nel seguente frammento di codice.

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

Per ulteriori informazioni sulla configurazione degli endpoint, consulta Implementa modelli per l'inferenza in tempo reale.