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 zur Vorverarbeitung und zur Nachbearbeitung testen können.
Themen
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 von Berechtigungen zum Erstellen und Auswählen einer AWS Lambda-Funktion.
-
Wenn Sie das Ground-Truth-SAR-Rezept nicht bereitgestellt haben, verwenden Sie dazu das Verfahren in Erstellen von Lambda-Funktionen mithilfe von Ground-Truth-Vorlagen .
-
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.jsonspeichern 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 Erteilen von Lambda-Berechtigungen zur Nachbearbeitung für den Zugriff auf Anmerkungen verwenden, um der Ausführungsrolle Ihrer Lambda-Funktion zur Nachbearbeitung die Berechtigung zu erteilen, die SageMaker-AI-Ausführungsrolle anzunehmen, die Sie für die Erstellung des Kennzeichnungsauftrags verwenden. Die Lambda-Funktion zur Nachbearbeitung verwendet die SageMaker-AI-Ausführungsrolle, um auf die Annotationsdatendatei
sample-annotations.jsonin S3 zuzugreifen.
Testen der Lambda-Funktion zur Vorverarbeitung
Verwenden Sie das folgende Verfahren, um die Lambda-Funktion zur Vorverarbeitung 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
-
Öffnen Sie die Seite Funktionen
in der Lambda-Konsole. -
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-ähnlich.<id> -
Wählen Sie im Abschnitt Codequelle den Pfeil neben Test aus.
-
Wählen Sie Testereignis konfigurieren.
-
Lassen Sie die Option Neues Testereignis erstellen ausgewählt.
-
Wählen Sie unter Ereignisvorlage die Option SageMaker Ground Truth PreHumanTask aus.
-
Geben Sie Ihrem Test einen Ereignisnamen.
-
Wählen Sie Erstellen aus.
-
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.
-
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 zur Nachbearbeitung 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
-
Öffnen Sie die Seite Funktionen
in der Lambda-Konsole. -
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-ähnlich.<id> -
Wählen Sie im Abschnitt Codequelle den Pfeil neben Test aus.
-
Wählen Sie Testereignis konfigurieren.
-
Lassen Sie die Option Neues Testereignis erstellen ausgewählt.
-
Wählen Sie unter Ereignisvorlage die Option SageMaker Ground Truth AnnotationConsolidation aus.
-
Geben Sie Ihrem Test einen Ereignisnamen.
-
Ändern Sie den bereitgestellten Vorlagencode folgendermaßen:
-
Ersetzen Sie den Amazon-Ressourcennamen (ARN) in
roleArndurch den ARN der SageMaker-AI-Ausführungsrolle, mit der Sie den Kennzeichnungsauftrag erstellt haben. -
Ersetzen Sie den S3-URI in
s3Uridurch den URI der Datei, die Sie Amazon S3 hinzugefügt haben.sample-annotations.json
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" } } -
-
Wählen Sie Erstellen aus.
-
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.
-
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.