Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Comment résoudre les problèmes liés à mon point de terminaison d’inférence Amazon SageMaker AI sans serveur ?
Je reçois un message d'erreur lorsque j'utilise un point de terminaison d'inférence Amazon SageMaker AI sans serveur pour ma charge de travail.
Résolution
Remédiez à votre problème en fonction du message d'erreur reçu.
La taille du conteneur d'images est trop grande pour un point de terminaison d'inférence sans serveur
Les points de terminaison d'inférence sans serveur prennent en charge Bring Your Own Container (BYOC), de la même manière que les points de terminaison en temps réel. Étant donné qu’AWS Lambda prend en charge ce type d'inférence spécifique, la taille du conteneur doit être inférieure à 10 Go pour ce type d'inférence spécifique.
Si votre conteneur dépasse la limite de 10 Go, vous recevez un message d'erreur similaire au suivant :
« Image size 11271073144 is greater than the supported size 10737418240 » (La taille d'image 11271073144 est supérieure à la taille prise en charge de 10737418240)
Pour résoudre le problème, prenez l'une des mesures suivantes :
- Supprimez les packages inutilisés et réduisez le nombre de couches de votre fichier Docker afin de réduire la taille de l'image et d'optimiser le conteneur Docker.
- Utilisez une image de base de plus petite taille et créez une nouvelle configuration de point de terminaison. Spécifiez le type d'instance souhaité et les autres paramètres pertinents pour héberger le point de terminaison en temps réel.
- Passez d'un point de terminaison sans serveur à un point de terminaison en temps réel. Créez une nouvelle configuration de point de terminaison pour spécifier votre type d'instance et d'autres paramètres pour héberger le point de terminaison en temps réel. Mettez ensuite à jour votre point de terminaison existant avec la nouvelle configuration.
- Pour créer une nouvelle configuration de point de terminaison, utilisez le modèle suivant :
Remarque : Remplacez YourVariantName par le nom de la variante de votre instance et YourModelName par le nom de votre modèle. Remplacez 1 par votre nombre d'instances initial. Remplacez ml.m5.xlarge par votre type d'instance. Remplacez 1.0 par le poids de variante initial de votre instance.import boto3 client = boto3.client('sagemaker', region_name = 'us-east-1') endpoint_config_name = 'new-endpoint-config' production_variants = [ { 'VariantName': 'AllTraffic', 'ModelName': 'ModelName', 'InitialInstanceCount': 1, 'InstanceType': 'ml.m5.xlarge', 'InitialVariantWeight': 1.0 } ] create_endpoint_config_response = client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=production_variants ) - Créez un nouveau point de terminaison avec la nouvelle configuration pour le faire passer d'un terminal sans serveur à un point de terminaison en temps réel. Vous pouvez également mettre à jour un point de terminaison sans serveur existant avec la nouvelle configuration.
Créez un nouvel exemple de point de terminaison :
Exemple de mise à jour d'un point de terminaison existant :endpoint_name = 'new-endpoint' create_endpoint_response = client.create_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name )endpoint_name = 'my-old-endpoint' update_endpoint_response = client.update_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name )
Pour déterminer la taille du conteneur, récupérez l'URI de l'image depuis Amazon Elastic Container Registry (ECR). Puis, exécutez la commande Docker suivante pour obtenir les détails de l'image Docker :
docker images
Mémoire ou espace disque insuffisant sur le point de terminaison d'inférence sans serveur
Les points de terminaison sans serveur SageMaker AI disposent d'une allocation de mémoire maximale de 6 Go et d'une capacité de stockage sur disque éphémère de 5 Go.
Si la mémoire du point de terminaison sans serveur dépasse la limite, vous recevez un message d'erreur similaire au suivant :
« UnexpectedStatusException: Error hosting endpoint: Failed. Reason: Ping failed due to insufficient memory. » (Erreur lors de l'hébergement du point de terminaison : Échec. Raison : Le ping a échoué en raison d'une mémoire insuffisante.)
Pour résoudre le problème, choisissez l'une des options suivantes :
- Ajustez le paramètre MemorySizeInMB.
- Optimisez la configuration de votre environnement de travail.
- Déployez le point de terminaison en tant que point de terminaison en temps réel et fournissez les informations d'instance requises.
Régler le paramètre MemorySizeInMB
- Créez une nouvelle configuration de point de terminaison sans serveur avec une valeur de paramètre MemorySizeInMB accrue.
Exemple :
Remarque : Remplacez YourVariantName par le nom de votre variante et YourModelName par le nom de votre modèle. Remplacez NewMemorySize par la limite de taille de mémoire. La valeur maximale que vous pouvez utiliser est de 6 Go.import boto3 client = boto3.client('sagemaker', region_name='us-east-1') endpoint_config_name = "new-endpoint-config" endpoint_config_response = client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[ { "VariantName": YourVariantName, "ModelName": YourModelName, "ServerlessConfig": { "MemorySizeInMB": NewMemorySize, "MaxConcurrency": 1, }, }, ], ) - Mettez à jour le point de terminaison sans serveur avec la nouvelle configuration.
Exemple :endpoint_name = 'my-old-endpoint' update_endpoint_response = client.update_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name )
Optimiser la configuration de votre environnement de travail
Pour éviter une erreur de mémoire, créez un seul environnement de travail dans le conteneur qui utilise toutes les ressources de processeur disponibles. Cette approche diffère des points de terminaison en temps réel, où certains conteneurs SageMaker AI peuvent créer un environnement de travail pour chaque processeur virtuel.
Pour les conteneurs prédéfinis dotés de la boîte à outils d'inférence SageMaker AI, modifiez la création du modèle pour l'inférence en réglant SAGEMAKER_MODEL_SERVER_WORKERS sur 1.
Exemple :
import boto3 client = boto3.client('sagemaker', region_name='us-east-1') response = client.create_model( ModelName='YourModelName', Containers=[ { 'Image': "YourImage" 'Mode': 'SingleModel', 'ModelDataUrl': "YourModelDataURL", 'Environment': { 'SAGEMAKER_CONTAINER_LOG_LEVEL': '20', 'SAGEMAKER_MODEL_SERVER_WORKERS': '1' } } ], ExecutionRoleArn=role )
Remarque : Remplacez YourModelName par le nom de votre modèle, YourImage par le nom de votre image et YourModelDataUrl par l'URL de données de votre modèle.
Déployer le point de terminaison en tant que point de terminaison en temps réel et fournissez les informations d'instance requises
Pour plus d'informations sur la procédure de déploiement du point de terminaison en tant que point de terminaison en temps réel, consultez la section « Transition d'un point de terminaison sans serveur à un point de terminaison en temps réel » dans cet article.
Espace disque insuffisant
Si votre point de terminaison sans serveur ne dispose pas d'espace disque disponible, le message d'erreur suivant peut s'afficher :
« OSError: [Errno 28] No space left on device » (Erreur du système d’exploitation : [Errno 28] Aucun espace restant sur l’appareil)
Pour résoudre ce problème, prenez les mesures suivantes :
- Assurez-vous que la taille du modèle compressé ne dépasse pas l'espace disque disponible lors de la décompression. Un fichier est décompressé jusqu'à trois fois sa taille compressée.
- Utilisez un artefact de modèle de plus petite taille, puis assurez-vous que tous les fichiers de l'archive .tar sont essentiels à votre déploiement.
- Si l'inférence sans serveur n'est pas possible, déployez-la sur un point de terminaison en temps réel pour personnaliser les spécifications de l'instance.
Scénarios de démarrage à froid dans les points de terminaison d'inférence sans serveur
En raison de la nature à la demande du provisionnement des ressources et des limites d'inférence sans serveur de SageMaker AI, il n'existe pas de méthode définitive pour préchauffer un point de terminaison d'inférence sans serveur SageMaker AI. Pour plus d'informations, consultez la section Minimiser les démarrages à froid.
Pour la concurrence provisionnée allouée, SageMaker AI maintient le point de terminaison à l'état chaud pour répondre en quelques millisecondes. Pour minimiser les problèmes de latence liés au démarrage à froid, mettez à jour votre point de terminaison avec ProvisionedConcurrency. Pour plus d'informations, consultez la section Métriques de surveillance d'Amazon SageMaker AI avec Amazon CloudWatch.
Procédez comme suit :
- Créez une nouvelle configuration de point de terminaison sans serveur avec un paramètre ProvisionedConcurrency inférieur ou égal à MaxConcurrency.
Exemple de configuration :
Remarque : Remplacez YourVariantName par le nom de votre variante et YourModelName par le nom de votre modèle. Remplacez NewMemorySize par la limite de taille de mémoire. La valeur maximale que vous pouvez utiliser est de 6 Go.import boto3 client = boto3.client('sagemaker', region_name='us-east-1') endpoint_config_name = "new-endpoint-config" endpoint_config_response = client.create_endpoint_config( EndpointConfigName=endpoint_config_name, ProductionVariants=[ { "VariantName": YourVariantName, "ModelName": YourModelName, "ServerlessConfig": { "MemorySizeInMB": NewMemorySize, "MaxConcurrency": 1, "ProvisionedConcurrency": 1, }, }, ], ) - Mettez à jour le point de terminaison avec la nouvelle configuration.
Exemple :endpoint_name = 'my-serverless-endpoint' update_endpoint_response = client.update_endpoint( EndpointName=endpoint_name, EndpointConfigName=endpoint_config_name )
Remarque : Il est recommandé d'utiliser le kit d'analyse comparative des inférences sans serveur de SageMaker AI afin de déterminer la configuration de déploiement la plus efficace pour votre point de terminaison sans serveur.
Informations connexes
Déployer des modèles avec l’inférence Amazon SageMaker AI sans serveur
- Balises
- Amazon SageMaker
- Langue
- Français

Contenus pertinents
- demandé il y a 3 ans
- demandé il y a 3 ans
- demandé il y a 2 ans
AWS OFFICIELA mis à jour il y a un an