Assegnazione delle attività
Controlla come Potato distribuisce gli elementi di annotazione agli annotatori. Copre tutte le strategie di assegnazione, inclusa la strategia Batch personalizzata per gli studi a turni ripetuti, e il recupero delle assegnazioni abbandonate da lavoratori Prolific o bloccati dal QC.
L'assegnazione delle attività controlla quali elementi vede ogni annotatore, quanti ne completa, quante annotazioni riceve ciascun elemento e l'ordine in cui gli elementi compaiono. Questa pagina illustra le strategie di assegnazione di Potato, la strategia Batch personalizzata per i disegni di studio a turni ripetuti e come recuperare le assegnazioni abbandonate dai lavoratori in crowdsourcing.
Strategie di assegnazione
Imposta assignment_strategy su uno dei seguenti valori:
| Strategia | Cosa fa |
|---|---|
random | Assegna gli elementi in modo casuale (valore predefinito). |
fixed_order | Assegna gli elementi nell'ordine del set di dati. |
least_annotated | Dà la priorità agli elementi con il minor numero di annotazioni finora. |
max_diversity | Dà la priorità agli elementi con il maggior disaccordo tra le annotazioni esistenti. |
diversity_clustering | Incorpora e raggruppa gli elementi in cluster, poi li serve a rotazione tra i cluster. |
batch | Limita l'assegnazione a coorti esplicite di annotatori/elementi (vedi sotto). |
priority | Serve per primi gli elementi con la priorità più alta; vedi la coda di triage. |
active_learning | Usa un modello per dare la priorità agli elementi incerti. |
assignment_strategy: random
max_annotations_per_user: 10 # -1 for unlimited
max_annotations_per_item: 3 # -1 for unlimitedAssegnazione Batch personalizzata
La strategia batch assegna lotti predefiniti di elementi a specifici annotatori. È pensata per i disegni di studio a turni ripetuti, in cui gli stessi annotatori che hanno visto un lotto del primo turno devono ricevere il lotto corrispondente del secondo turno.
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"]Per i lotti lunghi, sposta l'elenco delle istanze in un file di dati separato (json, jsonl, csv, tsv o parquet); gli ID vengono letti con item_properties.id_key:
batch_assignment:
groups:
- name: round1_batch_a
annotators: ["u1", "u2", "u3", "u4"]
instances_file: batches/round1_batch_a.csvGli elementi possono anche indicare direttamente i propri annotatori consentiti, il che è utile quando i dati del secondo turno vengono generati dalle annotazioni del primo:
assignment_strategy: batch
batch_assignment:
annotator_key: round1_annotatorsGli utenti al di fuori delle coorti configurate non ricevono alcun elemento con questa strategia.
Recupero delle assegnazioni abbandonate
Nei lotti di crowdsourcing, i lavoratori possono restituire gli elementi, andare in timeout o non superare i controlli di qualità dopo aver ricevuto gli elementi assegnati. Con instance_reclaim abilitato, Potato restituisce al pool gli elementi assegnati ma non annotati, in modo che possano essere assegnati di nuovo.
instance_reclaim:
enabled: true
timeout_hours: 24
preserve_completed_annotations: trueIl recupero viene eseguito automaticamente per le assegnazioni obsolete quando viene eseguita l'assegnazione, per i lavoratori Prolific i cui invii diventano RETURNED, TIMED-OUT o REJECTED, e per gli utenti bloccati per il mancato superamento di un controllo dell'attenzione (che rilasciano immediatamente i propri elementi non annotati).
Puoi decidere, motivo per motivo, se conservare le annotazioni completate di un lavoratore recuperato. Questo ti consente di fidarti del lavoro parziale di un lavoratore Prolific andato in timeout, scartando al contempo tutto ciò che proviene da un lavoratore bloccato dal controllo qualità:
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: falseQuando preserve_completed_annotations è false, Potato cancella le annotazioni di quell'utente per gli elementi a lui assegnati, rimuove il suo riconoscimento come annotatore e restituisce gli elementi al pool. La risposta fallita al controllo dell'attenzione che attiva un blocco non viene mai conservata.
Correlati
- Copertura eterogenea — limiti di annotatori per elemento e campionamento della sovrapposizione
- Crowdsourcing — integrazione con MTurk e Prolific
- Coda di triage basata sui segnali — la strategia
priority
Per i dettagli di implementazione, consulta la documentazione sorgente.