Ausführen Sie eine Pipeline - 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.

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:

Studio
  1. Öffnen Sie SageMaker Studio, indem Sie den Anweisungen unter Amazon SageMaker Studio starten folgen.

  2. Wählen Sie im linken Navigationsbereich Pipelines aus.

  3. (Optional) Um die Liste der Pipelines nach Namen zu filtern, geben Sie einen vollständigen oder teilweisen Pipelinenamen in das Suchfeld ein.

  4. Wählen Sie einen Pipelinamen aus.

  5. Wählen Sie die Registerkarte Ausführungen.

  6. Geben Sie die folgenden Informationen ein oder aktualisieren Sie sie:

    • Name — Ein Name, der für Ihr Konto in der AWS Region einzigartig ist.

    • Beschreibung — Eine optionale Beschreibung für Ihre Ausführung.

    • ProcessingInstanceType— Der EC2 Amazon-Instance-Typ, der für den Verarbeitungsjob verwendet werden soll.

    • TrainingInstanceType— Der EC2 Amazon-Instance-Typ, der für den Trainingsjob verwendet werden soll

    • InputData— Die Amazon S3 S3-URI zu den Eingabedaten.

    • PreprocessScript— Die Amazon S3 S3-URI zum Vorverarbeitungsskript.

    • EvaluateScript— Die Amazon S3 S3-URI zum Modellbewertungsskript.

    • AccuracyConditionThreshold— Der Schwellenwert für die Modellgenauigkeit, der erreicht werden muss, um das Modell in der Registrierung zu registrieren.

    • ModelGroup— Das Register, in dem das Modell registriert werden soll.

    • MaximumParallelTrainingJobs— Die maximale Anzahl von Trainingsjobs, die parallel ausgeführt werden sollen.

    • MaximumTrainingJobs— Die maximale Anzahl von Trainingsjobs, die ausgeführt werden können.

  7. Wählen Sie Create (Erstellen) aus.

Anmerkung

Wenn Ihre Pipeline ausfällt, zeigt das Statusbanner den Status Fehlgeschlagen an. Nachdem Sie den fehlgeschlagenen Schritt behoben haben, wählen Sie im Statusbanner die Option Erneut versuchen aus, um die Pipeline von diesem Schritt aus weiter auszuführen.

Studio Classic
  1. Melden Sie sich bei Amazon SageMaker Studio Classic an. Weitere Informationen finden Sie unter Amazon SageMaker Studio Classic starten.

  2. Wählen Sie in der Seitenleiste von Studio Classic das Home-Symbol ( Black square icon representing a placeholder or empty image. ).

  3. Wählen Sie im Menü Pipelines aus.

  4. Um die Liste der Pipelines nach Namen einzugrenzen, geben Sie einen vollständigen oder teilweisen Pipelinenamen in das Suchfeld ein.

  5. Wählen Sie einen Pipelinamen aus.

  6. Wählen Sie in der Ausführungsliste auf der Registerkarte Ausführungen oder Diagramm die Option Ausführung erstellen aus.

  7. Geben Sie die folgenden Informationen ein oder aktualisieren Sie sie:

    • Name – Muss für Ihr Konto in der AWS -Region eindeutig sein.

    • ProcessingInstanceCount— Die Anzahl der Instanzen, die für die Verarbeitung verwendet werden sollen.

    • ModelApprovalStatus— Zu Ihrer Bequemlichkeit.

    • InputDataUrl— Die Amazon S3 S3-URI der Eingabedaten.

  8. Wählen Sie Starten.

Sobald Ihre Pipeline läuft, können Sie sich die Details der Ausführung ansehen, indem Sie im Statusbanner auf Details anzeigen klicken.

Um den Lauf zu beenden, wählen Sie im Statusbanner die Option Stopp aus. Um die Ausführung an der Stelle fortzusetzen, an der sie gestoppt wurde, wählen Sie im Statusbanner die Option Fortfahren aus.

Anmerkung

Wenn Ihre Pipeline ausfällt, zeigt das Statusbanner den Status Fehlgeschlagen an. Nachdem Sie den fehlgeschlagenen Schritt behoben haben, wählen Sie im Statusbanner die Option Erneut versuchen aus, um die Pipeline von diesem Schritt aus weiter auszuführen.

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.

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
  1. Untersuchen Sie die JSON-Pipeline-Definition, um sicherzustellen, dass sie wohlgeformt ist.

    import json json.loads(pipeline.definition())
  2. 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)
  3. 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
  1. Beschreiben Sie den Ausführungsstatus der Pipeline, um sicherzustellen, dass sie erfolgreich erstellt und gestartet wurde.

    execution.describe()
  2. Warten Sie bis die Ausführung abgeschlossen ist.

    execution.wait()
  3. 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'}}}]
  4. 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
  1. 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", ) )
  2. Warten Sie bis die Ausführung abgeschlossen ist.

    execution.wait()
  3. Listet die Ausführungsschritte und ihren Status auf.

    execution.list_steps()
  4. 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
  1. Stoppen der Pipeline-Ausführung.

    execution.stop()
  2. Löschen der Pipeline.

    pipeline.delete()