Inférence en temps réel à faible latence avec AWS PrivateLink - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Inférence en temps réel à faible latence avec AWS PrivateLink

Amazon SageMaker AI fournit une faible latence pour les inférences en temps réel tout en maintenant une disponibilité et une résilience élevées grâce au déploiement multi-AZ. La latence des applications comprend deux composants principaux : la latence d'infrastructure ou de surcharge et la latence d'inférence de modèle. La réduction de la latence de surcharge ouvre de nouvelles possibilités, telles que le déploiement de modèles plus complexes, profonds et précis, et la division d'applications monolithiques en modules de microservices évolutifs et gérables. Vous pouvez réduire la latence pour les inférences en temps réel grâce à l' SageMaker IA à l'aide d'un AWS PrivateLink déploiement. Vous pouvez ainsi accéder en privé à toutes les opérations d' SageMaker API depuis votre Virtual Private Cloud (VPC) de manière évolutive en utilisant les points de terminaison VPC de l'interface. AWS PrivateLink Un point de terminaison VPC d'interface est une interface réseau élastique de votre sous-réseau dotée d'adresses IP privées qui sert de point d'entrée pour tous les SageMaker appels d'API.

Par défaut, un point de terminaison SageMaker AI comportant 2 instances ou plus est déployé dans au moins 2 zones de AWS disponibilité (AZs) et les instances de n'importe quelle zone de disponibilité peuvent traiter les appels. Il en résulte un ou plusieurs « sauts » de zone de disponibilité qui contribuent à la latence de surcharge. Un déploiement d' AWS PrivateLink avec l'option privateDNSEnabled définie comme true atténue cela en atteignant deux objectifs :

  • Il conserve tout le trafic d'inférence au sein de votre VPC.

  • Il conserve le trafic d'invocation dans la même zone de disponibilité que le client qui en est à l'origine lors de l'utilisation de SageMaker Runtime. Cela permet d'éviter les « sauts » entre les deux AZs en réduisant le temps de latence.

Les sections suivantes de ce guide montrent comment réduire la latence pour les inférences en temps réel avec le déploiement d' AWS PrivateLink .

Pour le déploiement AWS PrivateLink, créez d'abord un point de terminaison d'interface pour le VPC à partir duquel vous vous connectez aux points de terminaison SageMaker AI. Veuillez suivre les étapes décrites dans Accéder à un AWS service à l'aide d'un point de terminaison VPC d'interface pour créer le point de terminaison d'interface. Lors de la création du point de terminaison, sélectionnez les paramètres suivants dans l'interface de la console :

  • Cochez la case Activer le nom DNS sous Paramètres supplémentaires.

  • Sélectionnez les groupes de sécurité et les sous-réseaux appropriés à utiliser avec les points de terminaison SageMaker AI.

Assurez-vous également que les noms d'hôtes DNS sont activés sur le VPC. Pour plus d'informations sur la modification d'attributs DNS pour votre VPC, consultez Afficher et mettre à jour les attributs DNS pour votre VPC.

Déployer un point de terminaison SageMaker AI dans un VPC

Pour réduire le temps de latence, créez un point de terminaison SageMaker AI en utilisant les mêmes sous-réseaux que ceux que vous avez spécifiés lors du déploiement AWS PrivateLink. Ces sous-réseaux doivent correspondre à ceux AZs de votre application cliente, comme indiqué dans l'extrait de code suivant.

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

L'extrait de code susmentionné suppose que vous avez suivi les étapes figurant dans Avant de commencer.

Appelez le point de terminaison SageMaker AI

Enfin, spécifiez le client SageMaker Runtime et appelez le point de terminaison SageMaker AI comme indiqué dans l'extrait de code suivant.

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

Pour plus d'informations sur la configuration du point de terminaison, consultez Déployez des modèles pour une inférence en temps réel.