View a markdown version of this page

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

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

nota

O Amazon SageMaker Ground Truth não está mais aberto a novos clientes. Os clientes existentes podem continuar usando o serviço normalmente. AWS continua investindo em melhorias de segurança e disponibilidade para o Ground Truth, mas não planejamos introduzir novos recursos.

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 a 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 um AWS Lambda Função.

  • 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 em Conceder permissões ao Post-Annotation Lambda para acessar a anotação para dar permissão à função de execução da função Lambda pós-anotação para assumir a função de execução de SageMaker IA que você usa para criar o trabalho de rotulagem. A função Lambda pós-anotação usa a função de execução de SageMaker IA para acessar o arquivo de dados de anotação,, no S3. sample-annotations.json

Teste a função Pre-annotation Lambda

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 do Lambda de pré-anotação da fórmula Ground Truth SAR
  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 fórmula SAR do Ground Truth. O nome dessa função é semelhante a serverlessrepo-aws-sagema-GtRecipePreHumanTaskFunc-<id>.

  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 SageMaker Ground 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 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'}

Teste a função Post-Annotation Lambda

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

Teste a fórmula de SAR 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 fórmula SAR do Ground Truth. 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 SageMaker Ground 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 nome de recurso da Amazon (ARNroleArn) pelo ARN da função de execução de SageMaker IA que você usou para criar o trabalho de rotulagem.

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

    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.