View a markdown version of this page

Résolution des problèmes liés aux SageMaker pipelines Amazon - Amazon SageMaker AI

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 aux SageMaker pipelines Amazon

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 valide, Pipelines renvoie un message d'erreur identifiant le caractère dans lequel le fichier JSON est mal formé. Pour résoudre ce problème, passez en revue les étapes créées à l'aide du SDK SageMaker AI Python pour en vérifier la précision.

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 :

  • L'ARN de l'entité lancée par le pipeline, tel que l'ARN de la tâche SageMaker AI, l'ARN du modèle ou l'ARN du package de modèles.

  • 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 plus d'informations sur l'affichage des journaux dans Studio, consultezAffichage des détails d’une exécution de 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 tâches d' SageMaker IA comme prévu. Pour vous assurer que vos autorisations sont correctement configurées, consultez Gestion d'accès IAM.

Erreurs d'exécution des tâches

Vous pouvez rencontrer des problèmes lors de l'exécution de vos étapes en raison de problèmes liés aux scripts qui définissent les fonctionnalités de vos tâches d' SageMaker IA. Chaque tâche possède un ensemble de CloudWatch journaux. Pour consulter ces journaux depuis Studio, consultezAffichage des détails d’une exécution de pipeline. Pour plus d'informations sur l'utilisation CloudWatch des journaux avec SageMaker l'IA, consultezCloudWatch Journaux pour Amazon SageMaker AI.

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, consultez Transmission de 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 ModelTrainer entité) ou l'codeargument (de votre entité de traitement), 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'] ) from sagemaker.core import image_uris sklearn_image_uri = image_uris.retrieve( framework="sklearn", region=region, version="0.23-1", instance_type=training_instance_type ) sklearn_estimator = ModelTrainer( source_code=SourceCode(entry_script=os.path.join(BASE_DIR, "train.py")), ## Code is passed through source_code training_image=sklearn_image_uri, 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=(.*?);'} ], )