Como posso solucionar erros de rotulagem do Amazon SageMaker Ground Truth?

Data da última atualização: 24/10/2022

Quero solucionar erros de rotulagem do Amazon SageMaker Ground Truth.

-ou-

Meus processadores do SageMaker estão ociosos.

-ou-

Está demorando muito para que as tarefas apareçam para meus processadores do SageMaker.

Resolução

O SageMaker Ground Truth primeiro envia um lote de 10 tarefas para seus processadores do SageMaker para fazer anotações. Esse lote é usado para verificar e garantir que o trabalho de etiquetagem esteja configurado corretamente. Em seguida, o Ground Truth envia lotes maiores de tarefas aos processadores para fazer anotações com base no valor MaxConcurrentTaskCount.

MaxConcurrentTaskCount define o número máximo de objetos de dados que podem ser rotulados por processadores humanos ao mesmo tempo. Se você usar o console, esse parâmetro será definido como 1.000. Se você usar CreateLabelingJob, você pode definir esse parâmetro como qualquer número inteiro entre 1 e 1.000, inclusive.

Depois que o Ground Truth recebe os rótulos, ele os processa com uma função de consolidação do AWS Lambda. Com essa função, as anotações finais são gravadas no arquivo de manifesto ou na saída do Amazon Simple Notification Service (Amazon SNS). Em seguida, o Ground Truth volta para ler outro lote de tarefas com base no valor MaxConcurrentTaskCount do arquivo de manifesto de entrada ou do tópico do Amazon SNS.

Solucionar problemas de latência de tarefas e processadores ociosos

  • Certifique-se de que o valor MaxConcurrentTaskCount esteja definido como um tamanho que permita que os processadores concluam o lote inteiro dentro de determinado TaskAvailabilityLifetimeInSeconds. O valor máximo desse parâmetro é 1000.
  • Certifique-se de que o NumberOfHumanWorkersPerDataObject esteja definido com um valor adequado ao seu caso de uso. Por exemplo, se o número de processadores por objeto a ser rotulado for definido como 3, cada objeto precisará ser rotulado por três processadores. Se dois dos processadores concluírem o lote atual, o próximo lote não será atribuído até que o terceiro processador termine o lote. Se um processador privado perceber que um trabalho desaparece do portal, o processador pode ter concluído um lote e estar ocioso enquanto espera que um novo lote esteja disponível.
  • Certifique-se de que o TaskAvailabilityLifetimeInSecondsesteja definido com um valor adequado ao seu caso de uso. Esse valor representa o tempo total em que as tarefas estão disponíveis para os processadores. O valor máximo que você pode definir para esse parâmetro é 864.000 segundos (10 dias). É uma prática recomendada dividir seu conjunto de dados de entrada em vários trabalhos e direcioná-los para a mesma equipe de trabalho nas seguintes condições:
    • O número de objetos no trabalho de etiquetagem é alto.
    • Seu trabalho falhou porque o tempo de espera excedeu o valor de TaskAvailabilityLifetimeInSeconds.
  • Certifique-se de que TaskTimeLimitInSeconds esteja definido com um valor adequado ao seu caso de uso. Se você precisar controlar o tempo gasto pelos processadores para concluir uma tarefa para garantir que as tarefas sejam anotadas e que o próximo lote seja atribuído, considere definir um valor apropriado para esse limite de tempo.

Solução de problemas de rotulagem

Verifique as permissões

Certifique-se de ter as permissões corretas para criar um trabalho de rotulagem, acessar dados de entrada e acessar o bucket do Amazon Simple Storage Service (Amazon S3) para dados de saída. Para obter mais informações, consulte Step 1: Before you begin(Etapa 1: antes de começar).

Certifique-se do seguinte:

  • O bucket Amazon S3 está na mesma região do trabalho de rotulagem da Ground Truth.
  • O bucket tem uma política CORS anexada. Para obter mais informações, consulte o CORS permission requirement (requisito de permissão do CORS).

Verifique o arquivo de manifesto de saída

Verifique o arquivo de manifesto de saída que você especificou no bucket do S3 para armazenar os arquivos de saída. Neste conjunto de dados de saída, você pode ver os metadados de qualquer anotação com falha que possa ter causado falhas nos trabalhos de rotulagem.

Exemplo:

{"source-ref":"s3://sagemaker-output-labeling-bucket-example/example.jpeg","example-metadata":{"retry-count":1,"failure-reason":"ClientError: Annotation tasks expired.  Probable Reasons are 1) TaskAvailabilityLifetimeInSeconds parameter is too small.  2) Reward is too low for workers to work on the task.  3) If you use a custom html template, your template may be broken.  4) Data (image/video/text) sent for annotation is broken or too big, preventing completion.  5) All workers declined the tasks.","human-annotated":"true"}}

Os processadores podem recusar tarefas devido a instruções pouco claras, dados de entrada interrompidos (não exibidos corretamente) ou algum outro problema com a tarefa. Se todos os processadores recusarem, o objeto será marcado como expirado e não será enviado para nenhum outro processador.

Você pode monitorar se os processadores recusam, enviam ou devolvem uma tarefa usando o Amazon CloudWatch Events. Para obter mais informações, consulte Monitor labeling job status (Monitorar o status do trabalho de etiquetagem).

Verifique o arquivo de manifesto de entrada

Certifique-se de que o arquivo de manifesto de entrada atenda a todos os requisitos do objeto JSON listados. Para obter mais informações, consulte Use an input manifest file (Usar um arquivo de manifesto de entrada).