Comment résoudre les problèmes de latence sur mon point de terminaison Amazon SageMaker ?

Dernière mise à jour : 2022-10-14

Je rencontre une latence élevée lorsque j'invoque mon point de terminaison Amazon SageMaker.

Brève description

Vous pouvez utiliser Amazon CloudWatch pour surveiller les mesures de latence ModelLatency et OverheadLatency pour un point de terminaison SageMaker qui dessert un modèle unique.

  • ModelLatency est le temps nécessaire à un modèle pour répondre à une demande d'inférence telle qu'elle est visualisée par SageMaker. Cette durée inclut le temps de communication local pour envoyer la demande et récupérer la réponse, ainsi que le temps nécessaire pour terminer l'inférence dans le conteneur modèle.
  • LaOverheadLatency est le temps nécessaire pour répondre à une demande d'invocation avec des frais généraux de SageMaker. Cela se mesure à partir du moment où SageMaker reçoit une demande jusqu'à ce qu'il renvoie une réponse, moins ModelLatency.

Lorsque vous utilisez un point de terminaison multimodèle SageMaker, les mesures supplémentaires suivantes sont disponibles dans CloudWatch :

  • ModelLoadingWaitTime est la durée pendant laquelle une demande d'appel a attendu que le modèle cible soit téléchargé ou chargé avant d'effectuer une inférence.
  • ModelDownloadingTime est le temps nécessaire pour télécharger le modèle depuis Amazon Simple Storage Service (Amazon S3).
  • ModelLoadingTime est le temps nécessaire pour charger le modèle à partir du conteneur.
  • ModelCacheHit est le nombre de requêtes InvokeEndpoint envoyées au point de terminaison sur lequel le modèle a déjà été chargé.

Les points de terminaison multimodèles chargent et déchargent des modèles pendant toute leur durée de vie. Vous pouvez consulter le nombre de modèles chargés pour un point de terminaison à l'aide de la métrique LoadedModelCount publiée dans CloudWatch.

Solution

ModelLatency élevée

ModelLatency est le temps passé par SageMaker à envoyer une demande d'invocation à votre conteneur modèle, puis à recevoir le résultat. Cela signifie que vous pouvez effectuer les opérations suivantes pour réduire cette latence :

  • Comparez le modèle à l'extérieur d'un point de terminaison SageMaker pour tester les performances.
  • Si votre modèle est pris en charge par SageMaker Neo, vous pouvez le compiler. Amazon SageMaker Neo optimise l'exécution des modèles jusqu'à deux fois plus rapidement, avec moins d'un dixième de l'encombrement mémoire, sans perte de précision.
  • Si votre modèle est pris en charge par AWS Inferentia, vous pouvez compiler le modèle pour Inferentia qui offre un débit jusqu'à trois fois plus élevé et un coût par inférence jusqu'à 45 % inférieur à celui des instances basées sur des GPU AWS.
  • Si vous utilisez une instance CPU et que le modèle prend en charge l'accélération GPU, vous pouvez utiliser une instance GPU ou Amazon Elastic Inference pour ajouter l'accélération GPU à une instance.
    Remarque : Le code d'inférence peut affecter la latence du modèle en fonction de la façon dont le code gère l'inférence. Tout retard dans le code augmente la latence.
  • Si un point de terminaison est surutilisé, cela peut entraîner une latence plus élevée du modèle. Vous pouvez ajouter la mise à l'échelle automatique à un point de terminaison pour augmenter et diminuer dynamiquement le nombre d'instances disponibles pour une instance.

OverheadLatency élevée

La latence globale est le temps nécessaire à SageMaker pour répondre à une demande sans inclure le ModelLatency. Plusieurs facteurs peuvent contribuer à la OverheadLatency Ces facteurs incluent la taille de la charge utile pour les demandes et les réponses, la fréquence des demandes et l'authentification ou l'autorisation de la demande.

La première invocation d'un point de terminaison peut entraîner une augmentation de la latence en raison d'un démarrage à froid. Cela est prévu pour les premières demandes d'invocation. Pour éviter ce problème, vous pouvez envoyer des demandes de test au point de terminaison pour le préchauffer. Notez que les demandes peu fréquentes peuvent également entraîner une augmentation de la OverheadLatency.


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?