Résolution des problèmes liés à Amazon SageMaker Pipelines - 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 problèmes liés à Amazon SageMaker Pipelines

Lorsque vous utilisez Amazon SageMaker Pipelines, vous pouvez rencontrer des problèmes pour diverses raisons. Cette rubrique fournit des informations sur les erreurs courantes et la manière de les résoudre.

Problèmes de définition de pipeline

Il se peut que la définition de votre pipeline ne soit pas au format correct. Cela peut entraîner l'échec de l'exécution ou une tâche inexacte. Ces erreurs peuvent être constatées lorsque le pipeline est créé ou lorsqu'une exécution se produit. Si votre définition n'est pas validée, Pipelines renvoie un message d'erreur identifiant le caractère dans lequel le JSON fichier est mal formé. Pour résoudre ce problème, vérifiez la précision des étapes créées à l'aide SDK de SageMaker Python.

Vous ne pouvez inclure des étapes dans une définition de pipeline qu'une seule fois. Pour cette raison, les étapes ne peuvent pas exister dans le cadre d'une étape de condition et un pipeline dans le même pipeline.

Examen des journaux de pipeline

Vous pouvez afficher l'état de vos étapes à l'aide de la commande suivante :

execution.list_steps()

Chaque étape contient les informations suivantes :

  • ARNL'entité lancée par le pipeline, telle que la SageMaker tâcheARN, le modèle ou ARN le package de modèlesARN.

  • La raison de l'échec comprend une brève explication de l'échec de l'étape.

  • Si l'étape est une étape de condition, elle indique si la condition a la valeur true ou false. 

  • Si l'exécution réutilise une exécution de tâche précédente, le CacheHit répertorie l'exécution source. 

Vous pouvez également consulter les messages d'erreur et les journaux dans l'interface Amazon SageMaker Studio. Pour obtenir des informations sur le mode de consultation des journaux dans Studio, veuillez consulter Afficher les détails de l'exécution d'un pipeline.

Autorisations manquantes

Des autorisations correctes sont requises pour le rôle qui crée l'exécution du pipeline et les étapes qui créent chacune des tâches dans l'exécution de votre pipeline. Sans ces autorisations, vous ne pourrez peut-être pas soumettre l'exécution de votre pipeline ou exécuter vos SageMaker tâches comme prévu. Pour vous assurer que vos autorisations sont correctement configurées, veuillez consulter IAMGestion des accès.

Erreurs d'exécution de tâche

Vous pouvez rencontrer des problèmes lors de l'exécution de vos étapes en raison de problèmes dans les scripts qui définissent les fonctionnalités de vos SageMaker tâches. Chaque tâche possède un ensemble de CloudWatch journaux. Pour consulter ces journaux depuis Studio, consultezAfficher les détails de l'exécution d'un pipeline. Pour plus d'informations sur l'utilisation CloudWatch des journaux avec SageMaker, consultezGroupes de journaux et flux qu'Amazon SageMaker envoie à Amazon CloudWatch Logs.

Erreurs du fichier de propriétés

Vous pouvez rencontrer des problèmes lors de l'implémentation incorrecte des fichiers de propriétés avec votre pipeline. Pour vous assurer que votre implémentation des fichiers de propriétés fonctionne comme prévu, veuillez consulter Transmettre les données entre les étapes.

Problèmes lors de la copie du script dans le conteneur du Dockerfile

Vous pouvez soit copier le script dans le conteneur, soit le transmettre via l'entry_pointargument (de votre entité estimateur) ou l'codeargument (de votre entité processeur), comme illustré dans l'exemple de code suivant.

step_process = ProcessingStep( name="PreprocessAbaloneData", processor=sklearn_processor, inputs = [ ProcessingInput( input_name='dataset', source=..., destination="/opt/ml/processing/code", ) ], outputs=[ ProcessingOutput(output_name="train", source="/opt/ml/processing/train", destination = processed_data_path), ProcessingOutput(output_name="validation", source="/opt/ml/processing/validation", destination = processed_data_path), ProcessingOutput(output_name="test", source="/opt/ml/processing/test", destination = processed_data_path), ], code=os.path.join(BASE_DIR, "process.py"), ## Code is passed through an argument cache_config = cache_config, job_arguments = ['--input', 'arg1'] ) sklearn_estimator = SKLearn( entry_point=os.path.join(BASE_DIR, "train.py"), ## Code is passed through the entry_point framework_version="0.23-1", instance_type=training_instance_type, role=role, output_path=model_path, # New sagemaker_session=sagemaker_session, # New instance_count=1, # New base_job_name=f"{base_job_prefix}/pilot-train", metric_definitions=[ {'Name': 'train:accuracy', 'Regex': 'accuracy_train=(.*?);'}, {'Name': 'validation:accuracy', 'Regex': 'accuracy_validation=(.*?);'} ], )