Testar as funções do Lambda de pré-anotação e pós-anotação - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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 (). AWS Serverless Application Repository SAR

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 AWS Lambda função.

  • Se você não implantou a SAR receita do Ground Truth, use o procedimento em Crie funções do Lambda para um fluxo de trabalho de rotulagem personalizado 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 S3 URI 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 à função de execução da função Lambda de pós-anotação para assumir a função de execução usada para SageMaker criar o trabalho de rotulagem. A função Lambda de pós-anotação usa a função de execução para acessar SageMaker o arquivo de dados de anotação,, no S3. sample-annotations.json

Sua função do Lambda de pré-anotação

Use o procedimento a seguir para testar a função Lambda de pré-anotação criada quando você implantou a receita Ground Truth AWS Serverless Application Repository (). SAR

Teste a função Lambda de pré-anotação da SAR receita Ground Truth
  1. Abra a página Funções no console do Lambda.

  2. Selecione a função de pré-anotação que foi implantada a partir da receita do Ground Truth. SAR O nome dessa função é semelhante serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-<id> a.

  3. Na seção Origem do código, selecione a seta ao lado de Testar.

  4. Selecione Configurar evento de teste.

  5. Mantenha a opção Criar novo evento de teste selecionada.

  6. Em Modelo de evento, selecione SageMakerGround Truth PreHumanTask.

  7. Dê ao seu teste um Nome do evento.

  8. Escolha Criar.

  9. 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.

  10. Selecione Testar para executar o teste.

Depois de executar o teste, você pode ver os resultados da execução. Em Registros 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 Lambda de pós-anotação criada quando você implantou a receita Ground Truth AWS Serverless Application Repository (). SAR

Teste a SAR receita de Ground Truth após a anotação Lambda
  1. Abra a página Funções no console do Lambda.

  2. Selecione a função de pós-anotação que foi implantada a partir da receita do Ground Truth. SAR O nome dessa função é semelhante serverlessrepo-aws-sagema-GtRecipeAnnotationConsol-<id> a.

  3. Na seção Origem do código, selecione a seta ao lado de Testar.

  4. Selecione Configurar evento de teste.

  5. Mantenha a opção Criar novo evento de teste selecionada.

  6. Em Modelo de evento, selecione SageMakerGround Truth AnnotationConsolidation.

  7. Dê ao seu teste um Nome do evento.

  8. Modifique o código do modelo de mapeamento da seguinte maneira:

    • Substitua o Amazon Resource Name (ARN) pelo ARN da função de SageMaker execução que você usou para criar o trabalho de rotulagem. roleArn

    • Substitua o S3 URI pelo URI sample-annotations.json arquivo que você adicionou ao Amazon S3. s3Uri

    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" } }
  9. Escolha Criar.

  10. 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.

  11. 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.