Psychometrie-Engine
Item-Response-Theorie für die Annotation. Jedes Label bekommt eine Posterior-Wahrscheinlichkeit und ein Konfidenzintervall statt einer bloßen Mehrheitsentscheidung, und das Modell kommt dabei ohne Gold-Labels und ohne LLM aus.
Neu in v2.7.0
Potato kann eine Annotationsstudie als das behandeln, was sie tatsächlich ist: ein Messinstrument. Die Psychometrie-Schicht passt ein Modell der Item-Response-Theorie (IRT) live an, während die Annotationen eintreffen, und schätzt dabei gemeinsam das wahre Label jedes Elements als Wahrscheinlichkeit, die Fähigkeit jedes Annotators samt Standardfehler, die Schwierigkeit jedes Elements sowie eine Trennschärfe-Diagnose je Element, die wahrscheinliche Codebuch-Probleme markiert.
Gold-Labels sind nicht nötig, und ein LLM ist nicht beteiligt. Das Modell (eine Mehrklassen-Verallgemeinerung von GLAD, Whitehill et al. 2009) leitet alles allein aus dem Übereinstimmungsmuster ab, so wie ein standardisierter Test lernt, welche Fragen schwer sind, ohne dass es ihm jemand sagt. Die Anpassungen sind deterministisch und dauern im Maßstab einer Annotationsstudie Millisekunden.

Konfiguration
# Adaptive routing is opt-in via the standard assignment strategy key.
# Omit this line to keep your existing strategy and use psychometrics
# as a pure analytics layer.
assignment_strategy: psychometric
# Give items a redundancy target so early-stopped items translate into
# concrete saved judgments on the dashboard.
num_annotators_per_item: 4
psychometrics:
enabled: true
schema: sarcasm # scheme to model; default: first radio/likert scheme
refit_interval: 5 # refit after this many new labels (fits are ~ms)
min_observations: 20 # cold-start gate before adaptive routing engages
min_annotators_per_item: 2 # never early-stop an item below this many annotators
confidence_threshold: 0.95 # posterior at which an item counts as resolved
cost_per_judgment: 0.08 # optional: expresses savings in currency
discrimination_flag_threshold: -0.2 # codebook-bug flag sensitivityUnterstützt werden kategoriale Einfachauswahl-Schemata: radio und likert (Likert-Punkte werden als nominale Kategorien behandelt). Mehrfachauswahl-Schemata werden nicht modelliert.
Labels mit Fehlerbalken
Statt sarcastic (2 of 3 votes) steht im Export sarcastic, p = 0.94 [0.88 – 0.97]. Die Wahrscheinlichkeit ist die Posterior-Wahrscheinlichkeit des Modells, die gewichtet, wer abgestimmt hat, und nicht nur, wie viele. Das Intervall ist ein Sensitivitätsband von ±1 Standardfehler über den Fähigkeitsschätzungen.
Weiter unten in der Pipeline lässt sich auf weichen Labels trainieren, ein Evaluationsset auf Elemente mit hoher Konfidenz einschränken oder Elemente mit niedriger Wahrscheinlichkeit als wirklich mehrdeutig statt als Rauschen behandeln. Der ergänzende Ansatz, Verteilungen direkt von den Annotatoren zu erheben, steht unter Soft-Label-Annotation.
Annotator-Fähigkeit, ehrlich dargestellt
Die Fähigkeit θ wird aus den Übereinstimmungsmustern geschätzt. Ein Wert von 1,0 ist der Prior für einen neuen Annotator, 0 heißt, dass die Labels keinerlei Information tragen, und negative Werte heißen systematisch falsch. Zu jeder Schätzung gehört ein Standardfehler: Wer 12 Labels vergeben hat, bekommt einen breiten Fehlerbalken, und das Dashboard sagt das auch.
Personalentscheidungen sollten nicht auf einem breiten Fehlerbalken beruhen. Die Standardfehler sind Näherungen (Fisher-Information am Modus) und konstruktionsbedingt leicht optimistisch.
Der Codebuch-Problem-Detektor
Die Schwierigkeit der Elemente wird gemeinsam mit der Fähigkeit geschätzt, aufschlussreicher ist aber die Trennschärfe: die Korrelation zwischen der Fähigkeit eines Annotators und der Korrektheit seiner Antwort bei einem Element.
Ist die Trennschärfe deutlich negativ, widersprechen also ausgerechnet die besten Annotatoren dem Mehrheitskonsens, dann ist bei diesem Element meist die Richtlinie falsch oder mehrdeutig und nicht die Annotatoren. Das Dashboard führt solche Fälle unter „Wahrscheinliche Codebuch-Probleme". Erst die Anweisungen korrigieren, dann erneut prüfen. Aufgelöst werden sie üblicherweise in Multiplayer-Räumen.
Adaptive Zuweisung
Mit assignment_strategy: psychometric werden die verbleibenden Elemente, sobald ein Annotator Arbeit anfordert, nach dem exakten einstufigen erwarteten Informationsgewinn sortiert, den dieser Annotator bei diesem Element liefert. Elemente mit hoher Unsicherheit gehen zuerst an Annotatoren mit hoher Fähigkeit, und Elemente, deren Posterior-Wahrscheinlichkeit bereits über confidence_threshold liegt (bei mindestens min_annotators_per_item Annotatoren), verbrauchen kein Budget mehr. Gegenüber einem festen Design mit N Annotationen pro Element werden die eingesparten Urteile im Dashboard gezählt und, wenn cost_per_judgment gesetzt ist, mit einem Preis versehen.
Zwei Hinweise für den Betrieb:
- Kaltstart. Solange weniger als
min_observationsLabels vorliegen, fällt die Zuweisung auf Zufall zurück, denn das Modell braucht überlappende Annotatoren, bevor es Fähigkeit von Schwierigkeit trennen kann. Das Dashboard zeigt in dieser Phase eine Aufwärmanzeige. - Batching. Zugewiesen wird, wenn die Warteschlange eines Nutzers aufgefüllt wird. Die Sortierung ist am aktuellsten, wenn die Warteschlangen kurz sind; sehr große Batches pro Nutzer verwässern die Anpassungsfähigkeit.
Power-Analyse, bevor Geld fließt
Jedes Annotationsprojekt rät bei der Frage „wie viele Annotatoren pro Element?". Der Studiendesigner beantwortet sie mit einer Monte-Carlo-Simulation mit festem Seed:
python -m potato.psychometrics.design --items 500 --accuracy 0.75 \
--classes 3 --target-ci 0.10 --cost 0.08ann/item alpha 95% interval width majority acc judgments cost
2 0.392 [ 0.330, 0.439] 0.109 0.751 1000 80.00
3 0.388 [ 0.338, 0.431] 0.093 0.864 1500 120.00 <- recommended
Empfohlen wird die kleinste Redundanz, deren 95-%-Intervall für Krippendorffs α schmaler ist als --target-ci, also das günstigste Design, das noch eine belastbar präzise Übereinstimmungsschätzung liefert. Der Eingabewert --accuracy lässt sich am besten in einem kleinen Pilotlauf messen. Dieselbe Analyse gibt es im Dashboard und als Admin-API (GET /psychometrics/api/design).
Interaktiv im Browser läuft sie im Rechner für die Annotations-Teststärke.
Endpunkte
Alle Endpunkte erfordern Admin-Zugang (RBAC VIEW_ADMIN_DASHBOARD; Debug-Modus und der gemeinsame Admin-API-Schlüssel werden akzeptiert).
| Endpunkt | Zweck |
|---|---|
GET /psychometrics/dashboard | Live-Dashboard |
GET /psychometrics/api/stats | Dashboard-Aggregate (erzwingt eine frische Anpassung) |
GET /psychometrics/api/export | Angereicherter Export: Posterior-Wahrscheinlichkeiten, Bänder, Fähigkeiten |
GET /psychometrics/api/design | Power-Analyse |
Verhältnis zu MACE
Potato liefert auch MACE mit, das Annotator-Kompetenz und vorhergesagte Labels als nachgelagerte Analyse schätzt. Die beiden sind Verwandte aus derselben Literatur mit unterschiedlichen Aufgaben.
| MACE | Psychometrie | |
|---|---|---|
| Annotatormodell | Kompetenz nach dem Prinzip Wissen gegen Raten | kontinuierliche Fähigkeit mit Standardfehlern |
| Elementmodell | keines | Schwierigkeit + Trennschärfe (Markierungen für Codebuch-Probleme) |
| Wann es läuft | Batch-Analyse nach N Annotationen | live, in der Zuweisungsschleife |
| Steuert die Zuweisung | nein | ja, über Routing nach Informationsgewinn und vorzeitiges Stoppen |
| Unsicherheit der Labels | Entropie | Posterior-Wahrscheinlichkeit + Sensitivitätsintervall |
| Planung vor der Studie | nein | Monte-Carlo-Power-Analyse |
MACE eignet sich für einen schnellen Kompetenzüberblick bei jedem kategorialen Schema (es deckt auch multiselect ab). Die Psychometrie eignet sich, wenn eine schwierigkeitsbewusste Messung gefragt ist, die während der laufenden Studie eingreift.
Fehlerbehebung
- Das Dashboard bleibt dauerhaft im Aufwärmzustand. Das Modell braucht mindestens zwei verschiedene Labels und überlappende Annotatoren. Bei einem einzigen Annotator oder einstimmigen Labels ist die Anpassung konstruktionsbedingt entartet. Also Annotatoren ergänzen oder
min_observationssenken. assignment_strategy: psychometricist gesetzt, aber die Zuweisung wirkt zufällig. Das ist der Kaltstart-Rückfall. Aufwärmanzeige undmin_observationsprüfen.- Alle Fähigkeiten liegen nahe 1,0 mit großen Fehlerbalken. Es gibt noch zu wenig Überlappung. Die Fähigkeiten trennen sich, sobald die Annotatoren gemeinsame Elemente ansammeln.
- 404 auf
/psychometrics/.... Der Blockpsychometrics.enabled: truefehlt in der Konfiguration.
Weiterführende Informationen
- Truth Serum — Peer-Prediction-Bewertung, das andere Qualitätssignal ohne Gold-Labels
- Strategien der Aufgabenzuweisung
- Inter-Annotator-Übereinstimmung
- Wie viele Annotatoren braucht man?
- Quelldokumentation