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.
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 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 du modèle.
-
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, il se peut que vous ne puissiez 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, veuillez consulter Gestion d'accès IAM.
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 tâches d' SageMaker IA. 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 l'IA, consultezGroupes de journaux et flux qu'Amazon SageMaker AI 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_point
argument (de votre entité estimateur) ou l'code
argument (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=(.*?);'}
],
)