Cobertura heterogênea de anotadores
Atribua números diferentes de anotadores a itens diferentes. Configure um limite padrão, uma amostra de sobreposição estratificada para monitorar a qualidade, reforços adaptativos em caso de discordância, cotas por anotador e roteamento automático para arbitragem.
A cobertura heterogênea permite atribuir números diferentes de anotadores a itens diferentes em vez de um limite uniforme. O desenho de pesquisa comum é um anotador na maioria dos itens, com dois ou três se sobrepondo em uma amostra de 5 a 10 % para monitorar a qualidade. O Potato expressa isso por meio dos blocos de configuração num_annotators_per_item e per_annotator_quota.
Limites de anotadores por item
num_annotators_per_item é a chave canônica. Aceita um único inteiro para um limite uniforme, ou um mapeamento estruturado com um valor padrão, uma amostra de sobreposição e um reforço adaptativo opcional:
num_annotators_per_item:
default: 1
overlap_sample:
fraction: 0.1
count: 3
stratify_by: domain
seed: 42
adaptive:
enabled: true
disagreement_threshold: 0.5
boost_to: 3
min: 1max_annotations_per_item agora é um alias obsoleto de num_annotators_per_item: <int>.
Amostra de sobreposição
O bloco overlap_sample eleva o limite em um subconjunto determinístico de itens para monitorar a qualidade. A amostragem ocorre uma única vez na inicialização, e os itens escolhidos são marcados com required_annotations para que a lógica de atribuição os trate como de alta cobertura.
| Campo | Tipo | Descrição |
|---|---|---|
fraction | float em (0, 1] | proporção de itens a amostrar |
count | int ≥ 2 | limite de anotadores para os itens amostrados (deve exceder default) |
stratify_by | string (opcional) | campo de dados do item usado para estratificar a amostra |
seed | int (opcional) | semente do RNG; por padrão, o random_seed global |
Quando stratify_by é definido, a fração é aplicada por estrato, de modo que cada categoria contribua proporcionalmente.
Reforço adaptativo
O reforço adaptativo amplia o limite de um item cujos primeiros anotadores discordaram. Assim que um item tem pelo menos duas anotações e seu escore de discordância ultrapassa disagreement_threshold, seu limite é elevado para boost_to e o item volta a entrar na fila de atribuição. O reforço ocorre uma única vez por item.
Cota por anotador
per_annotator_quota controla quantos itens são atribuídos a cada anotador, independentemente dos limites por item:
per_annotator_quota:
default: 100
by_user:
alice: 30
by_user_role:
expert: 30
novice: 200
user_roles:
alice: expert
carol: noviceOrdem de resolução: by_user[uid] → by_user_role[user_roles[uid]] → default.
Roteamento automático para arbitragem
Quando o bloco de arbitragem está habilitado, os itens da amostra de sobreposição que atingem seu limite são pontuados automaticamente e enviados para a fila de arbitragem se a concordância cair abaixo de agreement_threshold. Itens de baixa qualidade emergem assim que a amostra satura, em vez de quando um arbitrador reconstrói a fila manualmente.
adjudication:
enabled: true
adjudicator_users: [admin]
min_annotations: 2
agreement_threshold: 0.75Inspeção da concordância
Assim que os itens da amostra de sobreposição saturam, as estatísticas de concordância ficam disponíveis em /admin/iaa, que calcula o conjunto de métricas apropriado ao annotation_type de cada esquema — por exemplo, kappa de Cohen e de Fleiss para esquemas nominais, weighted kappa para os ordinais e kappa em nível de token mais span F1 para os spans. Consulte o guia de concordância entre anotadores para entender o que essas métricas significam.
Exemplo
Uma demonstração executável fica em examples/advanced/heterogeneous-coverage/. A partir da raiz do repositório:
python potato/flask_server.py start examples/advanced/heterogeneous-coverage/config.yaml -p 8000Ela usa 20 itens em dois domínios, amostra 20 % para uma sobreposição de 3 anotadores estratificada por domínio, habilita um reforço adaptativo no limiar 0.5, define dois níveis de expertise e roteia itens de baixa concordância para arbitragem.
Relacionado
- Atribuição de tarefas — estratégias de atribuição
- Guia de concordância entre anotadores — as métricas por trás de
/admin/iaa - Crowdsourcing — integração com MTurk e Prolific
Para detalhes de implementação, consulte a documentação de origem.