Testare le funzioni Lambda di pre-annotazione e post-annotazione - Amazon SageMaker AI

Testare le funzioni Lambda di pre-annotazione e post-annotazione

Puoi testare le funzioni Lambda di pre-annotazione e post-annotazione nella console Lambda. Se sei un nuovo utente di Lambda, puoi scoprire come testare o richiamare le funzioni Lambda nella console consultando il tutorial Crea una funzione Lambda con la console nella Guida per sviluppatori AWS Lambda. Puoi utilizzare le sezioni di questa pagina per scoprire come testare i modelli di pre-annotazione e post-annotazione Ground Truth forniti tramite un AWS Serverless Application Repository (SAR).

Prerequisiti

È necessario effettuare le seguenti operazioni per effettuare i test descritti in questa pagina.

  • È necessario accedere alla console Lambda e sono necessaire le autorizzazioni per creare e richiamare le funzioni Lambda. Per scoprire come configurare queste autorizzazioni, consulta Concedi l'autorizzazione per creare e selezionare una funzione AWS Lambda.

  • Se non hai implementato la ricetta SAR di Ground Truth, segui la procedura descritta in Creare funzioni Lambda utilizzando i modelli Ground Truth per farlo.

  • Per testare la funzione Lambda post-annotazione, è necessario disporre di un file di dati in Amazon S3 con dati di annotazione di esempio. Per un semplice test, puoi copiare e incollare il seguente codice in un file, salvarlo come sample-annotations.json e caricare il file su Amazon S3. Prendi nota dell'URI S3 di questo file: hai bisogno di queste informazioni per configurare il test Lambda post-annotazione.

    [{"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}]}}"}}]}]
  • È necessario seguire le istruzioni riportate in Concedi le autorizzazioni Lambda post-annotazione per accedere all'annotazione per autorizzare il ruolo di esecuzione della funzione Lambda di post-annotazione ad assumere il ruolo di esecuzione SageMaker AI utilizzato per creare il processo di etichettatura. La funzione Lambda di post-annotazione utilizza il ruolo di esecuzione SageMaker AI per accedere al file dei dati di annotazione, sample-annotations.json, in S3.

Testa la funzione Lambda di pre-annotazione

Segui la seguente procedura per testare la funzione Lambda di pre-annotazione creata quando hai implementato la ricetta (SAR) AWS Serverless Application Repository Ground Truth.

Test della funzione Lambda di pre-annotazione della ricetta SAR di Ground Truth
  1. Apri la pagina Funzioni nella console Lambda.

  2. Seleziona la funzione di pre-annotazione che è stata implementata dalla ricetta SAR di Ground Truth. Il nome di questa funzione è simile a serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-<id>.

  3. Nella sezione Codice sorgente, seleziona la freccia accanto a Test.

  4. Seleziona Configura evento di test.

  5. Mantieni selezionata l'opzione Crea nuovo evento di test.

  6. In Modello di evento, seleziona SageMaker Ground Truth PreHumanTask.

  7. Assegna al test un Nome evento.

  8. Seleziona Crea.

  9. Seleziona nuovamente la freccia accanto a Test. Dovresti notare che il test che hai creato è selezionato e ciò è indicato con un punto accanto al nome dell'evento. Se non è selezionato, selezionalo.

  10. Seleziona Test per eseguire il test.

Dopo aver eseguito il test, puoi vedere i Risultati di esecuzione. Nei Log delle funzioni, dovresti visualizzare una risposta simile alla seguente:

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 questa risposta, possiamo vedere che l'output della funzione Lambda corrisponde alla sintassi di risposta pre-annotazione richiesta:

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

Test della funzione Lambda di post-annotazione

Segui la seguente procedura per testare la funzione Lambda di post-annotazione creata quando hai implementato la ricetta (SAR) AWS Serverless Application Repository Ground Truth.

Testa della Lambda di post-annotazione della ricetta SAR di Ground Truth
  1. Apri la pagina Funzioni nella console Lambda.

  2. Seleziona la funzione di post-annotazione che è stata implementata dalla ricetta SAR di Ground Truth. Il nome di questa funzione è simile a serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-<id>.

  3. Nella sezione Codice sorgente, seleziona la freccia accanto a Test.

  4. Seleziona Configura evento di test.

  5. Mantieni selezionata l'opzione Crea nuovo evento di test.

  6. In Modello di evento, seleziona SageMaker Ground Truth AnnotationConsolidation.

  7. Assegna al test un Nome evento.

  8. Modifica il codice del modello fornito come segue:

    • Sostituisci il nome della risorsa Amazon (ARN) in roleArn con l’ARN del ruolo di esecuzione SageMaker AI utilizzato per creare il processo di etichettatura.

    • Sostituisci l'URI S3 in s3Uri con l'URI del file sample-annotations.json che hai aggiunto ad Amazon S3.

    Dopo aver apportato queste modifiche, il test dovrebbe essere simile al seguente:

    { "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. Seleziona Crea.

  10. Seleziona nuovamente la freccia accanto a Test. Dovresti notare che il test che hai creato è selezionato e ciò è indicato con un punto accanto al nome dell'evento. Se non è selezionato, selezionalo.

  11. Seleziona Test per eseguire il test.

Dopo aver eseguito il test, dovresti visualizzare una sezione -- Consolidated Output -- nei Log delle funzioni, che contiene un elenco di tutte le annotazioni incluse in sample-annotations.json.