Skip to content
Diese Seite ist in Ihrer Sprache noch nicht verfügbar. Englische Version wird angezeigt.

Stima della Competenza MACE

Stima la competenza degli annotatori e le etichette vere usando l'algoritmo MACE.

Stima della Competenza MACE

MACE (Multi-Annotator Competence Estimation) è un algoritmo Variational Bayes EM che stima congiuntamente le etichette vere per ogni elemento e i punteggi di competenza degli annotatori. Modella ogni annotatore come "competente" (produce etichette corrette) o "casuale" (produce etichette casuali), producendo un punteggio di competenza tra 0.0 e 1.0.

Quando Usare MACE

MACE è utile quando hai più annotatori che etichettano gli stessi elementi e vuoi:

  • Identificare quali annotatori sono più affidabili
  • Produrre etichette previste di qualità superiore pesando i contributi degli annotatori
  • Rilevare automaticamente gli annotatori di bassa qualità (spammer)
  • Misurare l'incertezza delle etichette (entropia) per elemento

MACE funziona con i tipi di annotazione categoriale: radio, likert, select e multiselect. Non si applica alle annotazioni a testo libero, span, slider o numeriche.

Come Funziona

  1. Estrazione dei dati: Potato raccoglie tutte le annotazioni per ogni schema su tutti gli annotatori, costruendo una matrice elementi×annotatori
  2. Algoritmo EM: MACE esegue più riavvii casuali dell'algoritmo Variational Bayes EM, mantenendo la soluzione con la migliore log-verosimiglianza
  3. Output: Per ogni schema, MACE produce etichette previste, entropia delle etichette (incertezza) e punteggi di competenza per annotatore
  4. Attivazione: MACE viene eseguito automaticamente dopo ogni N nuove annotazioni (configurabile), oppure può essere attivato manualmente tramite l'Admin API

Configurazione

yaml
mace:
  enabled: true
 
  # Esegui MACE dopo ogni N nuove annotazioni
  trigger_every_n: 10
 
  # Annotatori minimi per elemento prima di includerlo nel calcolo
  min_annotations_per_item: 3
 
  # Elementi minimi prima che MACE venga eseguito
  min_items: 5
 
  # Parametri dell'algoritmo EM
  num_restarts: 10
  num_iters: 50
  alpha: 0.5    # Prior per lo spam degli annotatori (distribuzione Beta)
  beta: 0.5     # Prior per la strategia di guess (distribuzione Dirichlet)

Configurazione Minimale

yaml
mace:
  enabled: true

Usa tutti i valori predefiniti: si attiva ogni 10 annotazioni, richiede 3 annotatori per elemento, minimo 5 elementi idonei, 10 riavvii con 50 iterazioni ciascuno.

Riferimento alla Configurazione

OpzioneTipoPredefinitoDescrizione
enabledbooleanofalseAbilita MACE
trigger_every_nintero10Esegui dopo ogni N nuove annotazioni
min_annotations_per_itemintero3Annotatori minimi per elemento (deve essere >= 2)
min_itemsintero5Elementi minimi idonei prima dell'esecuzione
num_restartsintero10Riavvii casuali per EM
num_itersintero50Iterazioni EM per riavvio
alphafloat0.5Prior per lo spam degli annotatori
betafloat0.5Prior per la strategia di guess

Endpoint Admin API

Tutti gli endpoint MACE richiedono l'autenticazione admin tramite l'header X-API-Key.

Panoramica

bash
curl http://localhost:8000/admin/api/mace/overview \
  -H "X-API-Key: your-admin-key"

Restituisce i punteggi di competenza degli annotatori e lo stato MACE:

json
{
  "enabled": true,
  "has_results": true,
  "schemas": ["sentiment"],
  "annotator_competence": {
    "user_1": {"average": 0.92, "per_schema": {"sentiment": 0.92}},
    "user_2": {"average": 0.85, "per_schema": {"sentiment": 0.85}},
    "user_3": {"average": 0.45, "per_schema": {"sentiment": 0.45}}
  },
  "total_annotations": 30,
  "annotations_until_next_run": 0
}

Previsioni

bash
curl "http://localhost:8000/admin/api/mace/predictions?schema=sentiment" \
  -H "X-API-Key: your-admin-key"

Restituisce le etichette previste e l'entropia per ogni elemento.

Trigger Manuale

bash
curl -X POST http://localhost:8000/admin/api/mace/trigger \
  -H "X-API-Key: your-admin-key"

Interpretazione dei Risultati

Competenza degli Annotatori

  • 0.9 - 1.0: Annotatore altamente affidabile
  • 0.7 - 0.9: Buon annotatore, occasionali disaccordi
  • 0.5 - 0.7: Annotatore moderato, potrebbe beneficiare di addestramento aggiuntivo
  • Sotto 0.5: Potenziale spammer o annotatore confuso

Entropia delle Etichette

  • Vicino a 0.0: Alta confidenza nell'etichetta prevista
  • Sopra 0.5: Incertezza moderata, l'elemento potrebbe essere genuinamente ambiguo
  • Vicino a log(num_labels): Massima incertezza, nessun consenso

Integrazione con l'Adjudication

Quando sia MACE che l'adjudication sono abilitati, le etichette previste da MACE appaiono come segnale aggiuntivo nell'interfaccia di adjudication:

yaml
adjudication:
  enabled: true
  adjudicator_users: ["admin"]
  min_annotations: 2
 
mace:
  enabled: true
  trigger_every_n: 10
  min_annotations_per_item: 2

Best Practice

  1. Inizia con i valori predefiniti - la configurazione predefinita funziona bene per la maggior parte degli scenari
  2. Monitora i punteggi di competenza - usa la dashboard di amministrazione per tenere traccia della qualità degli annotatori nel tempo
  3. Combina con le fasi di addestramento - usa l'addestramento per qualificare gli annotatori, poi MACE per monitorare la qualità continua
  4. Imposta soglie appropriate - abbassa min_annotations_per_item per i progetti di annotazione più piccoli

Ulteriori Letture

Per i dettagli di implementazione, consulta la documentazione sorgente.