Je souhaite résoudre les problèmes qui surviennent lorsque j'invoque ou crée un point de terminaison asynchrone Amazon SageMaker AI.
Brève description
Pour détecter les erreurs qui se produisent lorsque vous invoquez un point de terminaison asynchrone, consultez les journaux Amazon CloudWatch Logs du point de terminaison. Consultez les journaux CloudWatch sous le nom de groupe de journaux /aws/sagemaker/Endpoints/example-endpoint-name et sous le nom du flux de journaux example-production-variant-name/example-instance-id/data-log. Pour plus d'informations, consultez la section Métriques de point de terminaison communes et la section Métriques de points de terminaison d’inférence asynchron de la rubrique Surveillance avec CloudWatch.
Résolution
Remédiez aux problèmes qui se produisent lorsque vous invoquez ou créez un point de terminaison asynchrone SageMaker AI en fonction des erreurs suivantes :
« ModelError: An error occurred (ModelError) when calling the InvokeEndpoint operation: Received client error (413) from primary and could not load the entire response body »
Si cette erreur se produit lorsque la taille de la charge utile est inférieure à 1 Go, consultez les journaux CloudWatch du point de terminaison asynchrone. Testez également localement le modèle avec différentes tailles d'images et vérifiez si l'erreur se produit avec des tailles de charge utile inférieures à 1 Go.
Pour déboguer le modèle localement, effectuez d'autres opérations de journalisation (instructions d'impression), puis vérifiez la partie du code à l'origine de l'erreur. Si le modèle s'exécute sans erreur localement, hébergez-le sur SageMaker AI. Pour plus d'informations, consultez la page amazon-sagemaker-local-mode sur le site Web de GitHub.
Exemple de code :
import logging
import syslogger = logging.getLogger(__name__)
logger.setLevel(logging.DEBUG)
logger.addHandler(logging.StreamHandler(sys.stdout))
logger.info("Loading file.")print("Loading file. --> from print statement")
Délai d'expiration de l’environnement de travail
Cette erreur se produit lorsque le nombre d’environnements de travail est insuffisant dans le conteneur de modèles pour traiter les requêtes ping et d'invocation. Pour résoudre cette erreur, augmentez le nombre d’environnements de travail et la valeur de model_server_timeout.
ApproximateAgeOfOldestRequest augmente fréquemment jusqu'à ce que la file d'attente soit effacée
Ce problème se produit lorsque les requêtes de file d'attente ne sont pas traitées efficacement. Les points de terminaison asynchrones SageMaker AI utilisent une approche « premier entré, premier sorti » (FIFO). Cependant, le temps d'inférence du modèle, la contention des ressources ou les latences du réseau peuvent interférer avec l'approche FIFO.
Si les requêtes expirent, augmentez la valeur du paramètre InvocationTimeoutSeconds. Ce paramètre indique la durée pendant laquelle SageMaker AI attend que l'inférence soit effectuée avant qu'une erreur ne soit renvoyée. La valeur maximale que vous pouvez définir est de 3 600 secondes (1 heure).
Il est également recommandé d'ajouter une politique de mise à l’échelle automatique qui surveille ApproximateBacklogSizePerInstance. Cela permet la mise à l’échelle verticale ascendante de votre point de terminaison en fonction de la taille du backlog et de traiter les requêtes plus rapidement.
La taille de votre backlog est élevée et le nombre d'instances n'augmente pas
Pour résoudre ce problème, utilisez les commandes de l'interface de ligne de commande AWS describe-scalable-target, describe-scaling-policies et describe-scaling-activities. Vérifiez également si le point de terminaison est à l’état InService.
Informations connexes
Résolution des problèmes
Comment puis-je obtenir des journaux ou imprimer des instructions depuis le point de terminaison déployé par SageMaker PyTorch ?
Configuration des points de terminaison d'inférence de mise à l'échelle automatique dans Amazon SageMaker
Définir une politique de mise à l’échelle automatique
amazon-sagemaker-examples à partir du site Web de GitHub