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.
Ausführen Sie eine Pipeline
Nachdem Sie die Schritte Ihrer Pipeline als gerichteten azyklischen Graphen (DAG) definiert haben, können Sie Ihre Pipeline ausführen, die die in Ihrer DAG definierten Schritte ausführt. Die folgenden exemplarischen Vorgehensweisen zeigen Ihnen, wie Sie eine Amazon SageMaker AI-Pipeline entweder mit dem drag-and-drop visuellen Editor in Amazon SageMaker Studio oder dem Amazon SageMaker Python SDK ausführen.
Gehen Sie wie folgt vor, um eine neue Ausführung Ihrer Pipeline zu starten:
Nachdem Sie mit dem SageMaker AI Python SDK eine Pipeline-Definition erstellt haben, können Sie sie an SageMaker AI senden, um mit der Ausführung zu beginnen. Das folgende Tutorial zeigt, wie Sie eine Pipeline einreichen, eine Ausführung starten, die Ergebnisse dieser Ausführung untersuchen und Ihre Pipeline löschen.
Themen
Voraussetzungen
Für dieses Tutorial benötigen Sie Folgendes:
-
Eine SageMaker Notebook-Instanz.
-
Eine Pipelines-Pipeline-Definition. In diesem Tutorial wird davon ausgegangen, dass Sie die Pipeline-Definition verwenden, die Sie nach Abschluss des Definieren Sie eine Pipeline Tutorials erstellt haben.
Schritt 1: Starten der Pipeline
Zuerst müssen Sie die Pipeline starten.
Um die Pipeline zu starten
-
Untersuchen Sie die JSON-Pipeline-Definition, um sicherzustellen, dass sie wohlgeformt ist.
import json json.loads(pipeline.definition())
-
Senden Sie die Pipeline-Definition an den Pipelines-Service, um eine Pipeline zu erstellen, falls sie nicht vorhanden ist, oder aktualisieren Sie die Pipeline, falls dies der Fall ist. Die übergebene Rolle wird von Pipelines verwendet, um alle in den Schritten definierten Jobs zu erstellen.
pipeline.upsert(role_arn=role)
-
Pipeline-Ausführung starten.
execution = pipeline.start()
Schritt 2: Untersuchen Sie eine Pipeline-Ausführung
Als Nächstes müssen Sie die Pipeline-Ausführung untersuchen.
Um eine Pipeline-Ausführung zu untersuchen
-
Beschreiben Sie den Ausführungsstatus der Pipeline, um sicherzustellen, dass sie erfolgreich erstellt und gestartet wurde.
execution.describe()
-
Warten Sie bis die Ausführung abgeschlossen ist.
execution.wait()
-
Listet die Ausführungsschritte und ihren Status auf.
execution.list_steps()
Die Ausgabe sollte folgendermaßen aussehen:
[{'StepName': 'AbaloneTransform', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 870000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 45, 50, 492000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TransformJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:transform-job/pipelines-cfvy1tjuxdq8-abalonetransform-ptyjoef3jy'}}}, {'StepName': 'AbaloneRegisterModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 929000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 28, 15000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'RegisterModel': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model-package/abalonemodelpackagegroupname/1'}}}, {'StepName': 'AbaloneCreateModel', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 895000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 708000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Model': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model/pipelines-cfvy1tjuxdq8-abalonecreatemodel-jl94rai0ra'}}}, {'StepName': 'AbaloneMSECond', 'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 25, 558000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 329000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'Condition': {'Outcome': 'True'}}}, {'StepName': 'AbaloneEval', 'StartTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 767000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 18, 80000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneeval-zfraozhmny'}}}, {'StepName': 'AbaloneTrain', 'StartTime': datetime.datetime(2020, 11, 21, 2, 34, 55, 867000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 34000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:training-job/pipelines-cfvy1tjuxdq8-abalonetrain-tavd6f3wdf'}}}, {'StepName': 'AbaloneProcess', 'StartTime': datetime.datetime(2020, 11, 21, 2, 30, 27, 160000, tzinfo=tzlocal()), 'EndTime': datetime.datetime(2020, 11, 21, 2, 34, 48, 390000, tzinfo=tzlocal()), 'StepStatus': 'Succeeded', 'CacheHitResult': {'SourcePipelineExecutionArn': ''}, 'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneprocess-mgqyfdujcj'}}}]
-
Nachdem Ihre Pipeline-Ausführung abgeschlossen ist, laden Sie die resultierende
evaluation.json
Datei von Amazon S3 herunter, um den Bericht zu überprüfen.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Schritt 3: Überschreiben Sie die Standardparameter für eine Pipeline-Ausführung
Sie können zusätzliche Ausführungen der Pipeline ausführen, indem Sie verschiedene Pipeline-Parameter angeben, um die Standardwerte zu überschreiben.
Um Standardparameter zu überschreiben
-
Erstellen Sie die Pipeline-Ausführung. Dadurch wird eine weitere Pipeline-Ausführung gestartet, wobei die Überschreibung des Modellgenehmigungsstatus auf „Genehmigt“ gesetzt ist. Das bedeutet, dass die durch den
RegisterModel
Schritt generierte Modellpaketversion automatisch für die Bereitstellung über CI/CD-Pipelines bereit ist, z. B. mit Projekten. SageMaker Weitere Informationen finden Sie unter MLOps Automatisierung mit SageMaker Projekten.execution = pipeline.start( parameters=dict( ModelApprovalStatus="Approved", ) )
-
Warten Sie bis die Ausführung abgeschlossen ist.
execution.wait()
-
Listet die Ausführungsschritte und ihren Status auf.
execution.list_steps()
-
Nachdem Ihre Pipeline-Ausführung abgeschlossen ist, laden Sie die resultierende
evaluation.json
Datei von Amazon S3 herunter, um den Bericht zu überprüfen.evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format( step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"] )) json.loads(evaluation_json)
Schritt 4: Stoppen und löschen Sie eine Pipeline-Ausführung
Wenn Sie mit Ihrer Pipeline fertig sind, können Sie alle laufenden Ausführungen beenden und die Pipeline löschen.
Um eine Pipeline-Ausführung zu beenden und zu löschen
-
Stoppen der Pipeline-Ausführung.
execution.stop()
-
Löschen der Pipeline.
pipeline.delete()