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

Lecture de 3 minute(s)
0

Lorsque j'appelle mon point de terminaison Amazon SageMaker, je constate une latence considérable.

Brève description

Utilisez Amazon CloudWatch pour surveiller les métriques de latence ModelLatency et OverheadLatency pour un point de terminaison SageMaker correspondant à un modèle unique.

  • ModelLatency est le temps nécessaire à un modèle pour répondre à une demande d'inférence, comme visualisé par SageMaker. Cette durée inclut le temps de communication local nécessaire au modèle pour envoyer la demande et récupérer la réponse. Il inclut également le délai d'exécution de l'inférence à l'intérieur du conteneur modèle.
  • OverheadLatency est le temps nécessaire à SageMaker pour répondre à une demande d'invocation comportant des frais supplémentaires. La durée de cette mesure est comprise entre le moment où SageMaker reçoit une demande et celui où il renvoie une réponse, moins ModelLatency.

Lorsque vous utilisez un point de terminaison multi-modèle SageMaker, les métriques supplémentaires suivantes sont disponibles dans CloudWatch :

  • Temps d'attente de chargement du modèle : Durée pendant laquelle une demande d'invocation attend le téléchargement ou le chargement du modèle cible avant d'effectuer une inférence.
  • Durée de téléchargement du modèle : Durée nécessaire pour télécharger le modèle depuis Amazon Simple Storage Service (Amazon S3).
  • Temps de chargement du modèle : Durée nécessaire pour charger le modèle depuis le conteneur.
  • Modèle CacheHit : Nombre de requêtes InvokeEndpoint envoyées au point de terminaison sur lequel le modèle a été précédemment chargé.

Les terminaux multi-modèles chargent et déchargent des modèles tout au long de leur durée de vie. Vous pouvez utiliser la métrique LoadedModelCount CloudWatch pour afficher le nombre de modèles chargés pour un point de terminaison.

Résolution

Latence élevée du modèle

Pour réduire cette latence, effectuez l'une des actions suivantes :

  • Comparez le modèle à l’extérieur d'un point de terminaison SageMaker pour tester les performances.
  • Si SageMaker Neo prend en charge votre modèle, vous pouvez le compiler. SageMaker Neo optimise les modèles pour qu'ils s'exécutent jusqu'à deux fois plus vite avec moins d'un dixième de l'encombrement mémoire, sans perte de précision.
  • Si AWS Inferentia prend en charge votre modèle, vous pouvez le compiler pour Inferentia. Le débit est jusqu'à trois fois supérieur, et le coût par inférence jusqu'à 45 % inférieur à celui des instances basées sur les GPU AWS.
  • Si vous utilisez une instance CPU et que le modèle prend en charge l'accélération GPU, utilisez une instance GPU pour ajouter une 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.
  • L’utilisation excessive d’un point de terminaison peut entraîner une latence du modèle plus élevée. Pour augmenter et diminuer de manière dynamique le nombre d'instances disponibles pour un point de terminaison, ajoutez autoscaling à un point de terminaison.

Latence de frais généraux élevée

Plusieurs facteurs peuvent contribuer à uneOverheadLatency. 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 présenter une augmentation de la latence en raison d'un démarrage à froid. C'est ce qui est prévu lors des premières demandes d'invocation. Pour éviter ce problème, envoyez des demandes de test au terminal pour le préchauffer. Notez que des demandes peu fréquentes peuvent également entraîner une augmentation de OverheadLatency.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an