Testar as funções do Lambda de pré-anotação e pós-anotação
Você pode testar suas funções do Lambda de pré-anotação e pós-anotação no console Lambda. Se você for um novo usuário do Lambda, poderá saber como testar ou invocar suas funções do Lambda no console usando o tutorial Criar uma função do Lambda com o console no Guia do desenvolvedor AWS Lambda. Você pode usar as seções desta página para aprender como testar os modelos de pré-anotação e pós-anotação do Ground Truth fornecidos por meio de um (SAR) AWS Serverless Application Repository.
Pré-requisitos
Você deve fazer o seguinte para usar os testes descritos nesta página:
-
Você precisa acessar o console Lambda e precisa de permissão para criar e invocar funções do Lambda. Para saber como configurar essas permissões, consulte Conceder permissão para criar e selecionar uma função AWS Lambda.
-
Se você não implantou a fórmula SAR do Ground Truth, use o procedimento em Criar funções do Lambda usando modelos Ground Truth para fazer isso.
-
Para testar a função do Lambda de pós-anotação, você deve ter um arquivo de dados no Amazon S3 com dados de anotação de amostra. Para um teste simples, você pode copiar e colar o código a seguir em um arquivo, salvá-lo como
sample-annotations.json
e fazer o upload desse arquivo no Amazon S3. Observe o URI do S3 desse arquivo. Você precisa dessas informações para configurar o teste Lambda pós-anotação.[{"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}]}}"}}]}]
-
Você deve usar as instruções Conceder permissões Lambda de pós-anotação para acessar a anotação para dar permissão ao perfil de execução da função do Lambda de pós-anotação para assumir o perfil de execução do SageMaker que você usa para criar o trabalho de rotulagem. A função do Lambda de pós-anotação usa o perfil de execução do SageMaker para acessar o arquivo de dados de anotação,
sample-annotations.json
, no S3.
Sua função do Lambda de pré-anotação
Use o procedimento a seguir para testar a função do Lambda de pré-anotação criada quando você implantou a fórmula do AWS Serverless Application Repository Ground Truth (SAR).
Teste a função do Lambda de pré-anotação da fórmula Ground Truth SAR
-
Abra a página Funções
no console do Lambda. -
Selecione a função de pré-anotação que foi implantada a partir da fórmula SAR do Ground Truth. O nome dessa função é semelhante a
serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-
.<id>
-
Na seção Origem do código, selecione a seta ao lado de Testar.
-
Selecione Configurar evento de teste.
-
Mantenha a opção Criar novo evento de teste selecionada.
-
Em Modelo de evento, selecione SageMaker Ground Truth PreHumanTask.
-
Dê ao seu teste um Nome do evento.
-
Escolha Criar.
-
Selecione a seta ao lado de Testar novamente e você verá que o teste que você criou está selecionado, indicado com um ponto ao lado do nome do evento. Se não estiver selecionado, selecione-o.
-
Selecione Testar para executar o teste.
Depois de executar o teste, você pode ver os resultados da execução. Em Logs de função, você deverá ver a seguinte resposta da função:
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
Nessa resposta, podemos ver que a saída da função do Lambda corresponde à sintaxe de resposta de pré-anotação necessária:
{'taskInput': {'taskObject': 's3://sagemakerexample/object_to_annotate.jpg'}, 'isHumanAnnotationRequired': 'true'}
Sua função do Lambda de pós-anotação
Use o procedimento a seguir para testar a função do Lambda de pós-anotação criada quando você implantou a fórmula do AWS Serverless Application Repository Ground Truth (SAR).
Teste a fórmula de SAR de Ground Truth após a anotação Lambda
-
Abra a página Funções
no console do Lambda. -
Selecione a função de pós-anotação que foi implantada a partir da fórmula SAR do Ground Truth. O nome dessa função é semelhante
serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-
a.<id>
-
Na seção Origem do código, selecione a seta ao lado de Testar.
-
Selecione Configurar evento de teste.
-
Mantenha a opção Criar novo evento de teste selecionada.
-
Em Modelo de evento, selecione SageMaker Ground Truth AnnotationConsolidation.
-
Dê ao seu teste um Nome do evento.
-
Modifique o código do modelo de mapeamento da seguinte maneira:
-
Substitua o nome do recurso da Amazon (ARN) pelo ARN
roleArn
do perfil de execução do SageMaker que você usou para criar a tarefa de rotulagem. -
Substitua o URI do S3 em
s3Uri
pelo URI do arquivo
que você adicionou ao Amazon S3.sample-annotations.json
Depois de fazer essas modificações, o teste deve ser semelhante ao seguinte:
{ "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" } } -
-
Escolha Criar.
-
Selecione a seta ao lado de Testar novamente e você verá que o teste que você criou está selecionado, indicado com um ponto ao lado do nome do evento. Se não estiver selecionado, selecione-o.
-
Selecione o Testar para executar o teste.
Depois de executar o teste, você deve ver uma -- Consolidated Output
--
seção nos logs de funções, que contém uma lista de todas as anotações incluídas em sample-annotations.json
.