Résolution des erreurs Inference Recommender - Amazon SageMaker

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.

Résolution des erreurs Inference Recommender

Cette section contient des informations sur la façon de comprendre et d'éviter les erreurs courantes, les messages d'erreur qu'elles génèrent, ainsi que des conseils sur la manière de résoudre ces erreurs.

Comment résoudre les problèmes

Vous pouvez tenter de résoudre l'erreur en suivant les étapes suivantes :

  • Vérifiez si vous avez couvert toutes les conditions préalables pour utiliser Inference Recommender. Consultez les prérequis.

  • Vérifiez que vous êtes en mesure de déployer votre modèle depuis Model Registry vers un point de terminaison et qu'il peut traiter vos charges utiles sans erreur. Consultez Déploiement d'un modèle dans le registre.

  • Lorsque vous lancez une tâche de recommandation d'inférence, vous devriez voir les points de terminaison créés dans la console et vous pouvez consulter les journaux. CloudWatch

Erreurs courantes

Consultez le tableau suivant pour connaître les erreurs Inference Recommender courantes et leurs solutions.

Erreur Solution

Spécifiez Domain dans le package de modèle version 1. Domain est un paramètre obligatoire pour la tâche.

Assurez-vous de fournir le domaine ML ou OTHER s'il est inconnu.

Le rôle fourni ARN ne peut pas être assumé et une AWSSecurityTokenServiceException erreur s'est produite.

Assurez-vous que le rôle d'exécution fourni possède les autorisations nécessaires spécifiées dans les prérequis.

Spécifiez Framework dans le package de modèle version 1. Framework est un paramètre obligatoire pour la tâche.

Assurez-vous de fournir le cadre ML ou OTHER s'il est inconnu.

Il y a 0 utilisateur à la fin de la phase précédente et 1 utilisateur initial de la phase actuelle.

Les utilisateurs font ici référence aux utilisateurs virtuels ou aux fils de discussion utilisés pour envoyer des demandes. Chaque phase commence avec les utilisateurs A et se termine avec les utilisateurs B, de sorte que B > A. Entre les phases séquentielles, x_1 et x_2, nous exigeons que abs(x_2.A - x_1.B) <= 3 et >= 0.

La durée totale du trafic (transversal) ne doit pas dépasser la durée de la tâche.

La durée totale de toutes vos phases ne peut pas dépasser la durée de la tâche.

Le type d'instance extensible ml.t2.medium n'est pas autorisé.

Inference Recommender ne prend pas en charge les tests de charge sur la famille d'instances t2, car les instances extensibles ne fournissent pas de performances constantes.

ResourceLimitExceeded lors de l' CreateEndpointopération d'appel

Vous avez dépassé une limite SageMaker de ressources. Par exemple, Inference Recommender peut ne pas être en mesure de provisionner des points de terminaison à des fins d'analyse comparative si le compte a atteint le quota de points de terminaison. Pour plus d'informations sur SageMaker les limites et les quotas, consultez Amazon SageMaker Endpoints and Quotas.

ModelError lors de l' InvokeEndpoint opération d'appel

Une erreur de modèle peut se produire pour les raisons suivantes :

  • Le délai d'invocation a expiré en attendant une réponse du conteneur modèle.

  • Le modèle n'a pas pu traiter la charge utile d'entrée.

PayloadError lors de l' InvokeEndpoint opération d'appel

Une erreur de charge utile peut se produire pour les raisons suivantes :

  • La source de la charge utile ne se trouve pas dans le compartiment Amazon S3.

  • La charge utile est dans un format d'objet qui n'est pas un fichier.

  • La charge utile est dans un type de fichier non valide. Par exemple, un modèle attend une charge utile de type image mais reçoit un fichier texte.

  • La charge utile est vide.

Vérifiez CloudWatch

Lorsque vous lancez une tâche Inference Recommender, vous devriez voir des points de terminaison créés dans la console. Sélectionnez l'un des points de terminaison et consultez les CloudWatch journaux pour détecter toute erreur 4xx/5xx. Si votre tâche Inference Recommender est réussie, vous pourrez voir les noms des points de terminaison dans les résultats. Même si votre tâche de recommandation d'inférence échoue, vous pouvez toujours consulter les CloudWatch journaux des points de terminaison supprimés en suivant les étapes ci-dessous :

  1. Ouvrez la CloudWatch console Amazon à l'adresse https://console.aws.amazon.com/cloudwatch/.

  2. Sélectionnez la région dans laquelle vous avez créé la tâche Inference Recommender dans la liste déroulante Region (Région) située en haut à droite.

  3. Dans le volet de navigation de CloudWatch, choisissez Logs, puis sélectionnez Log groups.

  4. Recherchez le groupe de journaux nommé /aws/sagemaker/Endpoints/sm-epc-*. Sélectionnez le groupe de journaux en fonction de votre dernière tâche Inference Recommender.

Vous pouvez également résoudre les problèmes liés à votre tâche en consultant les journaux d'Inference CloudWatch Recommender. Les journaux Inference Recommender, publiés dans le groupe de /aws/sagemaker/InferenceRecommendationsJobs CloudWatch journaux, fournissent une vue d'ensemble de la progression de la tâche dans le flux de <jobName>/execution journaux. Vous trouverez des informations détaillées sur chacune des configurations de point de terminaison testées dans le flux de journaux <jobName>/Endpoint/<endpointName>.

Vue d'ensemble des flux de journaux d'Inference Recommender

  • <jobName>/execution contient des informations générales sur les tâches, telles que les configurations de point de terminaison planifiées pour l'analyse comparative, la raison pour laquelle la tâche de compilation a été ignorée et la raison de l'échec de la validation.

  • <jobName>/Endpoint/<endpointName> contient des informations telles que la progression de la création de ressources, la configuration du test, la raison de l'arrêt du test de chargement et le statut du nettoyage des ressources.

  • <jobName>/CompilationJob/<compilationJobName> contient des informations sur les tâches de compilation créées par Inference Recommender, telles que la configuration et le statut des tâches de compilation.

Création d'une alarme pour les messages d'erreur d'Inference Recommender

Inference Recommender génère des instructions de journal pour les erreurs qui peuvent être utiles lors du dépannage. À l'aide d'un groupe de CloudWatch journaux et d'un filtre métrique, vous pouvez rechercher des termes et des modèles dans ces données de journal au fur et à mesure de leur envoi CloudWatch. Vous pouvez ensuite créer une CloudWatch alarme basée sur le filtre métrique du groupe de logs. Pour plus d'informations, voir Création d'une CloudWatch alarme basée sur un filtre métrique de groupe de logs.

Vérifier les comparaisons

Lorsque vous lancez une tâche Inference Recommender, Inference Recommender crée plusieurs comparaisons pour évaluer les performances de votre modèle sur différents types d'instances. Vous pouvez utiliser le ListInferenceRecommendationsJobStepsAPIpour afficher les détails de tous les benchmarks. Si une comparaison a échoué, vous pouvez voir les raisons de l'échec dans les résultats.

Pour utiliser le ListInferenceRecommendationsJobStepsAPI, entrez les valeurs suivantes :

  • Pour JobName, spécifiez le nom de la tâche Inference Recommender.

  • Pour StepType, utilisez BENCHMARK pour renvoyer des détails sur les comparaisons de la tâche.

  • Pour Status, utilisez FAILED pour renvoyer des détails sur les comparaisons ayant échoué uniquement. Pour obtenir la liste des autres types de statut, consultez le Status champ dans le ListInferenceRecommendationsJobStepsAPI.

# Create a low-level SageMaker service client. import boto3 aws_region = '<region>' sagemaker_client = boto3.client('sagemaker', region_name=aws_region) # Provide the job name for the SageMaker Inference Recommender job job_name = '<job-name>' # Filter for benchmarks step_type = 'BENCHMARK' # Filter for benchmarks that have a FAILED status status = 'FAILED' response = sagemaker_client.list_inference_recommendations_job_steps( JobName = job_name, StepType = step_type, Status = status )

Vous pouvez imprimer l'objet de réponse pour afficher les résultats. L'exemple de code précédent a stocké la réponse dans une variable appelée response :

print(response)