Testen der Lambda-Funktionen zur Vorverarbeitung und zur Nachbearbeitung - Amazon SageMaker

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.

Testen der Lambda-Funktionen zur Vorverarbeitung und zur Nachbearbeitung

Sie können Ihre Lambda-Funktionen zur Vorverarbeitung und zur Nachbearbeitung in der Lambda-Konsole testen. Wenn Sie ein neuer Benutzer von Lambda sind, können Sie mithilfe des Tutorials Erstellen einer Lambda-Funktion im AWS Lambda -Entwicklerhandbuch lernen, wie Sie Ihre Lambda-Funktionen in der Konsole testen oder aufrufen.

In den Abschnitten auf dieser Seite erfahren Sie, wie Sie die über eine AWS Serverless Application Repository (SAR) bereitgestellten Ground Truth-Vorlagen vor und nach der Anmerkung testen können.

Voraussetzungen

Um die auf dieser Seite beschriebenen Tests verwenden zu können, müssen Sie wie folgt vorgehen.

  • Sie benötigen Zugriff auf die Lambda-Konsole und Berechtigungen, Lambda-Funktionen zu erstellen und aufzurufen. Informationen zum Einrichten dieser Berechtigungen finden Sie unter Erteilen Sie die Berechtigung zum Erstellen und Auswählen einer Funktion AWS Lambda.

  • Wenn Sie das Ground-Truth-SAR-Rezept nicht bereitgestellt haben, verwenden Sie dazu das Verfahren in Erstellen von Lambda-Funktionen für einen benutzerdefinierten Kennzeichnungs-Workflow.

  • Um die Lambda-Funktion zur Nachbearbeitung zu testen, benötigen Sie in Amazon S3 eine Datendatei mit Beispiel-Annotationsdaten. Für einen einfachen Test können Sie den folgenden Code kopieren und in eine Datei einfügen, ihn unter sample-annotations.json speichern und diese Datei auf Amazon S3 hochladen. Notieren Sie sich den S3-URI dieser Datei – Sie benötigen diese Informationen, um den Lambda-Test nach der Annotation zu konfigurieren.

    [{"datasetObjectId":"0","dataObject":{"content":"To train a machine learning model, you need a large, high-quality, labeled dataset. Ground Truth helps you build high-quality training datasets for your machine learning models."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":8,\"label\":\"verb\",\"startOffset\":3},{\"endOffset\":27,\"label\":\"adjective\",\"startOffset\":11},{\"endOffset\":33,\"label\":\"object\",\"startOffset\":28},{\"endOffset\":51,\"label\":\"adjective\",\"startOffset\":46},{\"endOffset\":65,\"label\":\"adjective\",\"startOffset\":53},{\"endOffset\":74,\"label\":\"adjective\",\"startOffset\":67},{\"endOffset\":82,\"label\":\"adjective\",\"startOffset\":75},{\"endOffset\":102,\"label\":\"verb\",\"startOffset\":97},{\"endOffset\":112,\"label\":\"verb\",\"startOffset\":107},{\"endOffset\":125,\"label\":\"adjective\",\"startOffset\":113},{\"endOffset\":134,\"label\":\"adjective\",\"startOffset\":126},{\"endOffset\":143,\"label\":\"object\",\"startOffset\":135},{\"endOffset\":169,\"label\":\"adjective\",\"startOffset\":153},{\"endOffset\":176,\"label\":\"object\",\"startOffset\":170}]}}"}}]},{"datasetObjectId":"1","dataObject":{"content":"Sift 3 cups of flour into the bowl."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":4,\"label\":\"verb\",\"startOffset\":0},{\"endOffset\":6,\"label\":\"number\",\"startOffset\":5},{\"endOffset\":20,\"label\":\"object\",\"startOffset\":15},{\"endOffset\":34,\"label\":\"object\",\"startOffset\":30}]}}"}}]},{"datasetObjectId":"2","dataObject":{"content":"Jen purchased 10 shares of the stock on Janurary 1st, 2020."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":3,\"label\":\"person\",\"startOffset\":0},{\"endOffset\":13,\"label\":\"verb\",\"startOffset\":4},{\"endOffset\":16,\"label\":\"number\",\"startOffset\":14},{\"endOffset\":58,\"label\":\"date\",\"startOffset\":40}]}}"}}]},{"datasetObjectId":"3","dataObject":{"content":"The narrative was interesting, however the character development was weak."},"annotations":[{"workerId":"private.us-west-2.0123456789","annotationData":{"content":"{\"crowd-entity-annotation\":{\"entities\":[{\"endOffset\":29,\"label\":\"adjective\",\"startOffset\":18},{\"endOffset\":73,\"label\":\"adjective\",\"startOffset\":69}]}}"}}]}]
  • Sie müssen die Anweisungen unter verwendenErteilen von Lambda-Berechtigungen zur Nachbearbeitung für den Zugriff auf Anmerkungen, um der Ausführungsrolle Ihrer Lambda-Funktion nach der Anmerkung die Berechtigung zu erteilen, die Ausführungsrolle anzunehmen, die SageMaker Sie zum Erstellen des Labeling-Jobs verwenden. Die Lambda-Funktion nach der Annotation verwendet die SageMaker Ausführungsrolle, um auf die Annotationsdatendatei,sample-annotations.json, in S3 zuzugreifen.

Testen der Lambda-Funktion zur Vorverarbeitung

Verwenden Sie das folgende Verfahren, um die Lambda-Funktion vor der Annotation zu testen, die bei der Bereitstellung des Ground Truth AWS Serverless Application Repository (SAR) -Rezepts erstellt wurde.

Testen der Lambda-Funktion zur Vorverarbeitung des Ground-Truth-SAR-Rezepts
  1. Öffnen Sie die Seite Funktionen in der Lambda-Konsole.

  2. Wählen Sie die Funktion zur Vorverarbeitung, die aus dem Ground-Truth-SAR-Rezept bereitgestellt wurde. Der Name dieser Funktion ist serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-<id> ähnlich.

  3. Wählen Sie im Abschnitt Codequelle den Pfeil neben Test aus.

  4. Wählen Sie Testereignis konfigurieren.

  5. Lassen Sie die Option Neues Testereignis erstellen ausgewählt.

  6. Wählen Sie unter Eventvorlage die Option SageMakerGround Truth aus PreHumanTask.

  7. Geben Sie Ihrem Test einen Ereignisnamen.

  8. Wählen Sie Erstellen aus.

  9. Klicken Sie erneut auf den Pfeil neben Test. Sie sollten nun sehen, dass der von Ihnen erstellte Test ausgewählt ist, was durch einen Punkt neben dem Namen des Ereignisses gekennzeichnet ist. Wenn er nicht ausgewählt ist, wählen Sie ihn aus.

  10. Wählen Sie Test aus, um den Test auszuführen.

Nachdem Sie den Test ausgeführt haben, können Sie die Ausführungsergebnisse sehen. Unter Funktionsprotokolle sollten Sie eine Antwort ähnlich der folgenden sehen:

START RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f Version: $LATEST Received event: { "version": "2018-10-16", "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job", "dataObject": { "source-ref": "s3://sagemakerexample/object_to_annotate.jpg" } } {'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'} END RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f REPORT RequestId: cd117d38-8365-4e1a-bffb-0dcd631a878f Duration: 0.42 ms Billed Duration: 1 ms Memory Size: 128 MB Max Memory Used: 43 MB

In dieser Antwort können wir sehen, dass die Ausgabe der Lambda-Funktion der erforderlichen Antwortsyntax zur Vorverarbeitung entspricht:

{'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'}

Testen der Lambda-Funktion zur Nachbearbeitung

Verwenden Sie das folgende Verfahren, um die Lambda-Funktion nach der Annotation zu testen, die bei der Bereitstellung des Ground Truth AWS Serverless Application Repository (SAR) -Rezepts erstellt wurde.

Testen der Lambda-Funktion zur Nachbearbeitung des Ground-Truth-SAR-Rezepts
  1. Öffnen Sie die Seite Funktionen in der Lambda-Konsole.

  2. Wählen Sie die Funktion zur Nachbearbeitung, die aus dem Ground-Truth-SAR-Rezept bereitgestellt wurde. Der Name dieser Funktion ist serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-<id> ähnlich.

  3. Wählen Sie im Abschnitt Codequelle den Pfeil neben Test aus.

  4. Wählen Sie Testereignis konfigurieren.

  5. Lassen Sie die Option Neues Testereignis erstellen ausgewählt.

  6. Wählen Sie unter Eventvorlage die Option SageMakerGround Truth aus AnnotationConsolidation.

  7. Geben Sie Ihrem Test einen Ereignisnamen.

  8. Ändern Sie den bereitgestellten Vorlagencode folgendermaßen:

    • Ersetzen Sie den Amazon-Ressourcennamen (ARN) durch den ARN der SageMaker Ausführungsrolle, roleArn mit der Sie den Labeling-Job erstellt haben.

    • Ersetzen Sie den S3-URI in s3Uri durch den URI der Datei sample-annotations.json, die Sie Amazon S3 hinzugefügt haben.

    Nachdem Sie diese Änderungen vorgenommen haben, sollte Ihr Test wie folgt aussehen:

    { "version": "2018-10-16", "labelingJobArn": "arn:aws:sagemaker:us-east-2:123456789012:labeling-job/example-job", "labelAttributeName": "example-attribute", "roleArn": "arn:aws:iam::222222222222:role/sm-execution-role", "payload": { "s3Uri": "s3://your-bucket/sample-annotations.json" } }
  9. Wählen Sie Erstellen aus.

  10. Klicken Sie erneut auf den Pfeil neben Test. Sie sollten nun sehen, dass der von Ihnen erstellte Test ausgewählt ist, was durch einen Punkt neben dem Namen des Ereignisses gekennzeichnet ist. Wenn er nicht ausgewählt ist, wählen Sie ihn aus.

  11. Wählen Sie den Test aus, um den Test auszuführen.

Nachdem Sie den Test ausgeführt haben, sollten Sie einen Abschnitt -- Consolidated Output -- in den Funktionsprotokollen sehen, der eine Liste aller enthaltenen sample-annotations.json-Anmerkungen enthält.