View a markdown version of this page

Fehlerbehebung bei SageMaker Amazon Pipelines - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Fehlerbehebung bei SageMaker Amazon Pipelines

Bei der Verwendung von Amazon SageMaker Pipelines können aus verschiedenen Gründen Probleme auftreten. Dieses Thema enthält Informationen zu häufigen Fehlern und zu deren Behebung.

Probleme mit der Pipeline-Definition

Ihre Pipeline-Definition ist möglicherweise nicht richtig formatiert. Dies kann dazu führen, dass Ihre Ausführung fehlschlägt oder Ihr Job ungenau ist. Diese Fehler können bei der Erstellung der Pipeline oder bei einer Ausführung erkannt werden. Wenn Ihre Definition nicht validiert wird, gibt Pipelines eine Fehlermeldung zurück, die das Zeichen identifiziert, bei dem die JSON-Datei falsch formatiert ist. Um dieses Problem zu beheben, überprüfen Sie die mit dem SageMaker AI Python SDK erstellten Schritte auf Richtigkeit.

Sie können Schritte nur einmal in eine Pipeline-Definition aufnehmen. Aus diesem Grund können Schritte nicht als Teil eines Bedingungsschritts und einer Pipeline in derselben Pipeline existieren.

Pipeline-Protokolle werden untersucht

Sie können den Status Ihrer Schritte mit dem folgenden Befehl anzeigen:

execution.list_steps()

Jeder Schritt enthält die folgenden Informationen:

  • Der ARN der Entität, die von der Pipeline gestartet wurde, z. B. SageMaker AI-Job-ARN, Modell-ARN oder Modellpaket-ARN.

  • Die Fehlerursache beinhaltet eine kurze Erläuterung des Schritts, der fehlschlägt.

  • Wenn es sich bei dem Schritt um einen Bedingungsschritt handelt, beinhaltet er, ob die Bedingung als wahr oder falsch bewertet wird.

  • Wenn bei der Ausführung eine frühere Jobausführung wiederverwendet wird, wird die Quellausführung CacheHit aufgeführt.

Sie können die Fehlermeldungen und Protokolle auch in der Amazon SageMaker Studio-Oberfläche einsehen. Informationen zur Anzeige der Protokolle in Studio finden Sie unterAnzeige der Details eines Pipeline-Laufs.

Fehlende Berechtigungen

Für die Rolle, die die Pipeline-Ausführung erstellt, und für die Schritte, mit denen die einzelnen Jobs in Ihrer Pipeline-Ausführung erstellt werden, sind die richtigen Berechtigungen erforderlich. Ohne diese Berechtigungen können Sie Ihre Pipeline-Ausführung möglicherweise nicht einreichen oder Ihre SageMaker KI-Jobs nicht wie erwartet ausführen. Informationen dazu, wie Sie sicherstellen können, dass Ihre Berechtigungen ordnungsgemäß eingerichtet sind, finden Sie unter IAM-Zugriffsverwaltung.

Fehler bei der Auftragsausführung

Bei der Ausführung Ihrer Schritte können Probleme auftreten, da es Probleme in den Skripten gibt, die die Funktionalität Ihrer SageMaker KI-Jobs definieren. Jeder Job hat eine Reihe von CloudWatch Protokollen. Informationen zum Anzeigen dieser Protokolle in Studio finden Sie unterAnzeige der Details eines Pipeline-Laufs. Hinweise zur Verwendung von CloudWatch Protokollen mit SageMaker AI finden Sie unterCloudWatch Protokolle für Amazon SageMaker AI.

Fehler in der Eigenschaftendatei

Möglicherweise treten Probleme auf, wenn Sie Eigenschaftendateien mit Ihrer Pipeline falsch implementieren. Informationen dazu, wie Sie sicherstellen können, dass Ihre Implementierung von Eigenschaftendateien erwartungsgemäß funktioniert, finden Sie unter Daten zwischen Schritten weitergeben.

Probleme beim Kopieren des Skripts in den Container in der Dockerfile

Sie können das Skript entweder in den Container kopieren oder es über das entry_point Argument (Ihrer ModelTrainer Entität) oder code das Argument (Ihrer Prozessor-Entität) übergeben, wie im folgenden Codebeispiel gezeigt.

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=(.*?);'} ], )