Skip to content

Atribuição de tarefas

Controle como o Potato distribui os itens de anotação entre os anotadores. Abrange todas as estratégias de atribuição, incluindo a estratégia Batch personalizada para estudos de rodadas repetidas, e a recuperação de atribuições abandonadas por trabalhadores do Prolific ou bloqueados pelo QC.

A atribuição de tarefas controla quais itens cada anotador vê, quantos ele conclui, quantas anotações cada item recebe e a ordem em que os itens aparecem. Esta página aborda as estratégias de atribuição do Potato, a estratégia Batch personalizada para desenhos de estudo de rodadas repetidas e como recuperar atribuições abandonadas por trabalhadores de crowdsourcing.

Estratégias de atribuição

Defina assignment_strategy como um dos seguintes valores:

EstratégiaO que faz
randomAtribui itens aleatoriamente (o valor padrão).
fixed_orderAtribui itens na ordem do conjunto de dados.
least_annotatedPrioriza os itens com o menor número de anotações até o momento.
max_diversityPrioriza os itens com o maior desacordo entre as anotações existentes.
diversity_clusteringIncorpora e agrupa os itens em clusters e, em seguida, os serve em rodízio entre os clusters.
batchRestringe a atribuição a coortes explícitas de anotadores/itens (veja abaixo).
priorityServe primeiro os itens de maior prioridade; consulte a fila de triagem.
active_learningUsa um modelo para priorizar os itens incertos.
yaml
assignment_strategy: random
max_annotations_per_user: 10    # -1 for unlimited
max_annotations_per_item: 3     # -1 for unlimited

Atribuição Batch personalizada

A estratégia batch atribui lotes predefinidos de itens a anotadores específicos. Ela foi feita para desenhos de estudo de rodadas repetidas, em que os mesmos anotadores que viram um lote da primeira rodada precisam receber o lote correspondente da segunda rodada.

yaml
assignment_strategy: batch
num_annotators_per_item: 4
 
batch_assignment:
  groups:
    - name: round1_batch_a
      annotators: ["u1", "u2", "u3", "u4"]
      instances: ["r2_item_001", "r2_item_002"]

Para lotes longos, mova a lista de instâncias para um arquivo de dados separado (json, jsonl, csv, tsv ou parquet); os IDs são lidos com item_properties.id_key:

yaml
batch_assignment:
  groups:
    - name: round1_batch_a
      annotators: ["u1", "u2", "u3", "u4"]
      instances_file: batches/round1_batch_a.csv

Os itens também podem indicar diretamente seus anotadores permitidos, o que é útil quando os dados da segunda rodada são gerados a partir das anotações da primeira:

yaml
assignment_strategy: batch
 
batch_assignment:
  annotator_key: round1_annotators

Os usuários fora das coortes configuradas não recebem nenhum item sob essa estratégia.

Recuperação de atribuições abandonadas

Em lotes de crowdsourcing, os trabalhadores podem devolver os itens, exceder o tempo limite ou não passar nas verificações de qualidade depois de receber os itens atribuídos. Com instance_reclaim ativado, o Potato devolve ao pool os itens atribuídos, mas não anotados, para que possam ser atribuídos novamente.

yaml
instance_reclaim:
  enabled: true
  timeout_hours: 24
  preserve_completed_annotations: true

A recuperação é executada automaticamente para atribuições obsoletas quando a atribuição é executada, para trabalhadores do Prolific cujos envios passam a RETURNED, TIMED-OUT ou REJECTED e para usuários bloqueados por falha em uma verificação de atenção (que liberam imediatamente seus itens não anotados).

Você pode decidir, motivo a motivo, se mantém as anotações concluídas de um trabalhador recuperado. Isso permite confiar no trabalho parcial de um trabalhador do Prolific que excedeu o tempo limite e, ao mesmo tempo, descartar tudo de um trabalhador bloqueado pelo controle de qualidade:

yaml
instance_reclaim:
  enabled: true
  timeout_hours: 24
  preserve_completed_annotations: true   # default for reasons not overridden below
 
  prolific:
    status_policies:
      TIMED-OUT:
        preserve_completed_annotations: true
      RETURNED:
        preserve_completed_annotations: true
      REJECTED:
        preserve_completed_annotations: false
 
  quality_control:
    preserve_completed_annotations: false

Quando preserve_completed_annotations é false, o Potato apaga as anotações desse usuário para os itens a ele atribuídos, remove seu crédito de anotador e devolve os itens ao pool. A resposta da verificação de atenção que falhou e aciona um bloqueio nunca é mantida.

Relacionados

Para detalhes de implementação, consulte a documentação de origem.