Tester les fonctions Lambda avant et après l'annotation - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Tester les fonctions Lambda avant et après l'annotation

Vous pouvez tester vos fonctions Lambda de pré-annotation et de post-annotation dans la console Lambda. Si vous débutez avec Lambda, vous pouvez apprendre à tester, ou invoquer, vos fonctions Lambda dans la console à l'aide du tutoriel Créer une fonction Lambdaavec la console dans le Guide du développeur AWS Lambda . Vous pouvez utiliser les sections de cette page pour apprendre à tester les modèles de pré-annotation et de post-annotation de Ground Truth fournis via an AWS Serverless Application Repository ()SAR.

Prérequis

Vous devez effectuer les opérations suivantes pour utiliser les tests décrits sur cette page.

  • Vous devez accéder à la console Lambda, et vous avez besoin d'une autorisation pour créer et invoquer des fonctions Lambda. Pour savoir comment configurer ces autorisations, veuillez consulter Autoriser la création et la sélection d'une AWS Lambda fonction.

  • Si vous n'avez pas déployé la SAR recette Ground Truth, utilisez la procédure Créez des fonctions Lambda à l'aide des modèles Ground Truth ci-dessous pour le faire.

  • Pour tester la fonction Lambda de post-annotation, vous devez disposer d'un fichier de données dans Amazon S3 avec des exemples de données d'annotation. Pour un test simple, vous pouvez copier et coller le code suivant dans un fichier et l'enregistrer sous sample-annotations.json et télécharger ce fichier sur Amazon S3. Notez le S3 URI de ce fichier : vous avez besoin de ces informations pour configurer le test Lambda post-annotation.

    [{"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}]}}"}}]}]
  • Vous devez utiliser les instructions Accorder des autorisations Lambda de post-annotation pour accéder à l'annotation pour autoriser le rôle d'exécution de votre fonction Lambda post-annotation à assumer SageMaker le rôle d'exécution que vous utilisez pour créer la tâche d'étiquetage. La fonction Lambda post-annotation utilise SageMaker le rôle d'exécution pour accéder au fichier de données d'annotationsample-annotations.json, dans S3.

Tester la fonction Lambda de pré-annotation

Utilisez la procédure suivante pour tester la fonction Lambda de pré-annotation créée lors du déploiement de la recette Ground AWS Serverless Application Repository Truth SAR ().

Testez la fonction Lambda de pré-annotation de la SAR recette Ground Truth
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Sélectionnez la fonction de pré-annotation qui a été déployée à partir de la SAR recette Ground Truth. Le nom de cette fonction est similaire à serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-<id>.

  3. Dans la section Code source, sélectionnez la flèche en regard de Test.

  4. Sélectionnez Configure test event (Configurer l'événement de test).

  5. Conserver l'option Create new test event (Création d'un événement de test) sélectionnée.

  6. Sous Modèle d'événement, sélectionnez SageMakerGround Truth PreHumanTask.

  7. Donnez à votre test un Event name (Nom d'événement).

  8. Sélectionnez Créer.

  9. Sélectionnez à nouveau la flèche en regard de Test et vous devriez voir que le test que vous avez créé est sélectionné, ce qui est indiqué par un point par le nom de l'événement. S'il n'est pas sélectionné, sélectionnez-le.

  10. Sélectionnez Test pour l'exécuter.

Après avoir exécuté le test, vous pouvez voir les Execution results (Résultats de l'exécution). Dans Function logs (Journaux de fonctions), la réponse devrait être similaire à ce qui suit :

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

Dans cette réponse, nous pouvons voir que la sortie de la fonction Lambda correspond à la syntaxe de réponse de pré-annotation requise :

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

Tester la fonction Lambda de post-annotation

Utilisez la procédure suivante pour tester la fonction Lambda post-annotation créée lors du déploiement de la recette Ground AWS Serverless Application Repository Truth SAR ().

Testez la SAR recette de Ground Truth après l'annotation Lambda
  1. Ouvrez la page Functions (Fonctions) de la console Lambda.

  2. Sélectionnez la fonction de post-annotation qui a été déployée à partir de la SAR recette Ground Truth. Le nom de cette fonction est similaire à serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-<id>.

  3. Dans la section Code source, sélectionnez la flèche en regard de Test.

  4. Sélectionnez Configure test event (Configurer l'événement de test).

  5. Conserver l'option Create new test event (Création d'un événement de test) sélectionnée.

  6. Sous Modèle d'événement, sélectionnez SageMakerGround Truth AnnotationConsolidation.

  7. Donnez à votre test un Event name (Nom d'événement).

  8. Modifiez le code du modèle fourni comme suit :

    • Remplacez le nom de la ressource Amazon (ARN) roleArn par le rôle ARN d' SageMaker exécution que vous avez utilisé pour créer la tâche d'étiquetage.

    • Remplacez le S3 URI s3Uri par le URI sample-annotations.json fichier que vous avez ajouté à Amazon S3.

    Après avoir apporté ces modifications, votre test doit se présenter comme suit :

    { "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. Sélectionnez Créer.

  10. Sélectionnez à nouveau la flèche en regard de Test et vous devriez voir que le test que vous avez créé est sélectionné, ce qui est indiqué par un point par le nom de l'événement. S'il n'est pas sélectionné, sélectionnez-le.

  11. Sélectionnez le Test pour l'exécuter.

Une fois le test exécuté, vous devriez voir une section -- Consolidated Output -- dans les Function Logs (Journaux de fonctions), qui contient une liste de toutes les annotations incluses dans sample-annotations.json.