Copertura eterogenea degli annotatori
Assegna numeri diversi di annotatori a elementi diversi. Configura un limite predefinito, un campione di sovrapposizione stratificato per il monitoraggio della qualità, potenziamenti adattivi in caso di disaccordo, quote per annotatore e instradamento automatico all'aggiudicazione.
La copertura eterogenea ti consente di assegnare numeri diversi di annotatori a elementi diversi anziché un limite uniforme. Il disegno di ricerca più comune prevede un annotatore sulla maggior parte degli elementi, con due o tre che si sovrappongono su un campione del 5–10 % per monitorare la qualità. Potato esprime tutto questo tramite i blocchi di configurazione num_annotators_per_item e per_annotator_quota.
Limiti di annotatori per elemento
num_annotators_per_item è la chiave canonica. Accetta un singolo intero per un limite uniforme, oppure una mappatura strutturata con un valore predefinito, un campione di sovrapposizione e un potenziamento adattivo facoltativo:
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 è ora un alias deprecato di num_annotators_per_item: <int>.
Campione di sovrapposizione
Il blocco overlap_sample alza il limite su un sottoinsieme deterministico di elementi per il monitoraggio della qualità. Il campionamento avviene una sola volta all'avvio, e gli elementi scelti vengono contrassegnati con required_annotations affinché la logica di assegnazione li tratti come ad alta copertura.
| Campo | Tipo | Descrizione |
|---|---|---|
fraction | float in (0, 1] | proporzione di elementi da campionare |
count | int ≥ 2 | limite di annotatori per gli elementi campionati (deve superare default) |
stratify_by | stringa (facoltativo) | campo dei dati dell'elemento usato per stratificare il campione |
seed | int (facoltativo) | seed dell'RNG; per impostazione predefinita il random_seed globale |
Quando stratify_by è impostato, la frazione viene applicata per strato, in modo che ogni categoria contribuisca proporzionalmente.
Potenziamento adattivo
Il potenziamento adattivo amplia il limite di un elemento sul quale i primi annotatori sono stati in disaccordo. Non appena un elemento ha almeno due annotazioni e il suo punteggio di disaccordo supera disagreement_threshold, il suo limite viene alzato a boost_to e l'elemento rientra nella coda di assegnazione. Il potenziamento avviene una sola volta per elemento.
Quota per annotatore
per_annotator_quota controlla quanti elementi vengono assegnati a ciascun annotatore, indipendentemente dai limiti per elemento:
per_annotator_quota:
default: 100
by_user:
alice: 30
by_user_role:
expert: 30
novice: 200
user_roles:
alice: expert
carol: noviceOrdine di risoluzione: by_user[uid] → by_user_role[user_roles[uid]] → default.
Instradamento automatico all'aggiudicazione
Quando il blocco di aggiudicazione è abilitato, gli elementi del campione di sovrapposizione che raggiungono il loro limite vengono valutati automaticamente e spinti nella coda di aggiudicazione se l'accordo scende sotto agreement_threshold. Gli elementi di bassa qualità emergono non appena il campione si satura, anziché quando un aggiudicatore ricostruisce manualmente la coda.
adjudication:
enabled: true
adjudicator_users: [admin]
min_annotations: 2
agreement_threshold: 0.75Ispezione dell'accordo
Una volta che gli elementi del campione di sovrapposizione si saturano, le statistiche di accordo sono disponibili su /admin/iaa, che calcola l'insieme di metriche appropriato per l'annotation_type di ciascuno schema — ad esempio kappa di Cohen e di Fleiss per gli schemi nominali, weighted kappa per quelli ordinali e kappa a livello di token più span F1 per gli span. Consulta la guida all'accordo tra annotatori per capire il significato di queste metriche.
Esempio
Una dimostrazione eseguibile si trova in examples/advanced/heterogeneous-coverage/. Dalla radice del repository:
python potato/flask_server.py start examples/advanced/heterogeneous-coverage/config.yaml -p 8000Usa 20 elementi distribuiti su due domini, campiona il 20 % per una sovrapposizione a 3 annotatori stratificata per dominio, abilita un potenziamento adattivo a soglia 0.5, definisce due livelli di competenza e instrada gli elementi a basso accordo verso l'aggiudicazione.
Correlati
- Assegnazione delle attività — strategie di assegnazione
- Guida all'accordo tra annotatori — le metriche dietro
/admin/iaa - Crowdsourcing — integrazione con MTurk e Prolific
Per i dettagli di implementazione, consulta la documentazione sorgente.