Skip to content
此页面尚未提供您所选语言的版本,当前显示英文版本。

MACE-Kompetenzschätzung

Annotator-Kompetenz und wahre Labels mit dem MACE-Algorithmus schätzen.

MACE-Kompetenzschätzung

MACE (Multi-Annotator Competence Estimation) ist ein Variational-Bayes-EM-Algorithmus, der gemeinsam wahre Labels für jedes Element und Annotator-Kompetenzwerte schätzt. Er modelliert jeden Annotator als entweder "wissend" (erzeugt korrekte Labels) oder "ratend" (erzeugt zufällige Labels) und liefert einen Kompetenzwert zwischen 0,0 und 1,0.

Wann MACE verwenden

MACE ist nützlich, wenn mehrere Annotatoren dieselben Elemente beschriften und Sie folgendes möchten:

  • Herausfinden, welche Annotatoren am zuverlässigsten sind
  • Höherwertige vorhergesagte Labels durch Gewichtung der Annotatorbeiträge erzeugen
  • Minderwertige Annotatoren (Spammer) automatisch erkennen
  • Label-Unsicherheit (Entropie) pro Element messen

MACE funktioniert mit kategorialen Annotationstypen: radio, likert, select und multiselect. Es gilt nicht für Freitext-, Span-, Schieberegler- oder numerische Annotationen.

Funktionsweise

  1. Datenextraktion: Potato sammelt alle Annotationen für jedes Schema über alle Annotatoren und erstellt eine Elemente-mal-Annotatoren-Matrix
  2. EM-Algorithmus: MACE führt mehrere zufällige Neustarts des Variational-Bayes-EM-Algorithmus aus und behält die Lösung mit der besten Log-Likelihood
  3. Ausgabe: Für jedes Schema erzeugt MACE vorhergesagte Labels, Label-Entropie (Unsicherheit) und Kompetenzwerte pro Annotator
  4. Auslösung: MACE läuft automatisch nach je N neuen Annotationen (konfigurierbar) oder kann manuell über die Admin-API ausgelöst werden

Konfiguration

yaml
mace:
  enabled: true
 
  # Run MACE after every N new annotations
  trigger_every_n: 10
 
  # Minimum annotators per item before including in computation
  min_annotations_per_item: 3
 
  # Minimum eligible items before MACE will run
  min_items: 5
 
  # EM algorithm parameters
  num_restarts: 10
  num_iters: 50
  alpha: 0.5    # Prior for annotator spamming (Beta distribution)
  beta: 0.5     # Prior for guessing strategy (Dirichlet distribution)

Minimalkonfiguration

yaml
mace:
  enabled: true

Verwendet alle Standardwerte: wird nach 10 Annotationen ausgelöst, erfordert 3 Annotatoren pro Element, mindestens 5 förderfähige Elemente, 10 Neustarts mit jeweils 50 Iterationen.

Konfigurationsreferenz

OptionTypStandardBeschreibung
enabledbooleanfalseMACE aktivieren
trigger_every_ninteger10Nach je N neuen Annotationen ausführen
min_annotations_per_iteminteger3Mindestannotatoren pro Element (muss >= 2 sein)
min_itemsinteger5Mindestförderfähige Elemente vor der Ausführung
num_restartsinteger10Zufällige Neustarts für EM
num_itersinteger50EM-Iterationen pro Neustart
alphafloat0,5Prior für Annotator-Spamming
betafloat0,5Prior für Ratestrategie

Admin-API-Endpunkte

Alle MACE-Endpunkte erfordern Admin-Authentifizierung über den X-API-Key-Header.

Übersicht

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

Gibt Annotator-Kompetenzwerte und MACE-Status zurück:

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
}

Vorhersagen

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

Gibt vorhergesagte Labels und Entropie für jedes Element zurück.

Manuelles Auslösen

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

Ergebnisse interpretieren

Annotator-Kompetenz

  • 0,9–1,0: Hochzuverlässiger Annotator
  • 0,7–0,9: Guter Annotator, gelegentliche Meinungsverschiedenheiten
  • 0,5–0,7: Mäßiger Annotator, könnte von zusätzlichem Training profitieren
  • Unter 0,5: Möglicher Spammer oder verwirrter Annotator

Label-Entropie

  • Nahe 0,0: Hohe Konfidenz im vorhergesagten Label
  • Über 0,5: Mäßige Unsicherheit, Element könnte tatsächlich mehrdeutig sein
  • Nahe log(Anzahl_Labels): Maximale Unsicherheit, kein Konsens

Adjudikations-Integration

Wenn sowohl MACE als auch Adjudikation aktiviert sind, erscheinen MACE-vorhergesagte Labels als zusätzliches Signal in der Adjudikationsoberfläche:

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

Bewährte Vorgehensweisen

  1. Mit Standardwerten beginnen – die Standardkonfiguration funktioniert für die meisten Szenarien gut
  2. Kompetenzwerte überwachen – Admin-Dashboard nutzen, um Annotatorqualität im Zeitverlauf zu verfolgen
  3. Mit Trainingsphasen kombinieren – Training verwenden, um Annotatoren zu qualifizieren, dann MACE zur laufenden Qualitätsüberwachung
  4. Angemessene Schwellenwerte setzenmin_annotations_per_item für kleinere Annotationsprojekte verringern

Weiterführende Informationen

Implementierungsdetails finden Sie in der Quelldokumentation.