Kalibrierung von LLM-as-Judge
Labeln Sie Ihre Daten automatisch mit einem oder mehreren LLM-Judges und führen Sie anschließend einen blinden menschlichen Kalibrierungsdurchlauf durch, um Genauigkeit, Übereinstimmung und Kalibrierungsfehler zu messen. Beantwortet die Frage „Sollte ich diesem LLM-Judge vertrauen?“ mit einem belegbaren, reproduzierbaren Workflow.
Die Judge-Kalibrierung labelt Ihre Daten automatisch mit einem oder mehreren LLM-Judges und kalibriert sie anschließend gegen blinde menschliche Labels, sodass Sie quantifizieren können, wie weit Sie einem LLM-as-a-Judge trauen dürfen. Sie schreiben einen Judge-Prompt, wählen die Modelle aus, und Potato sampelt jedes Modell k-mal über Ihre Daten. Anschließend labeln Sie eine Stichprobe blind, ohne die Modellantworten zu sehen, und Potato berichtet die Genauigkeit pro Modell, die Mensch↔Modell- und Modell↔Modell-Übereinstimmung, den Kalibrierungsfehler sowie Konfusionsmatrizen.
Ein LLM zur Bewertung von Modellausgaben einzusetzen, ist in der Agenten- und Modellevaluierung mittlerweile gängig, doch ein Judge ist nur dann nützlich, wenn Sie wissen, wie gut er dem menschlichen Urteil folgt. Die Kalibrierung ist der Messschritt, der dieses Vertrauen belegbar macht.
So funktioniert es
SETUP → GENERATING → HUMAN_CALIBRATION → REPORT → COMPLETED
- Generierung — jedes Modell wird pro Element k-mal abgefragt. Das Modallabel ist die Vorhersage; der Anteil der k Samples, die mit ihm übereinstimmen, ist die Konfidenz des Modells. Die Ergebnisse landen in einem dedizierten Speicher, werden nie mit den Annotationsdaten vermischt und sind für Menschen nicht einsehbar.
- Menschliche Kalibrierung — Potato zieht eine zufällige oder geschichtete Stichprobe der gelabelten Elemente, und ein oder mehrere Menschen labeln sie über die übliche Annotationsoberfläche blind.
- Bericht — die Metriken werden über die Mensch∩Modell-Überlappung berechnet und in das Ausgabeverzeichnis geschrieben.
Da die Modelllabels in einem getrennten Speicher liegen und nie in die UI eingespeist werden, ist die Verblindung strukturell bedingt und keine Frage der Annotatorendisziplin.
Schnellstart
Führen Sie das mitgelieferte Beispiel vom Repository-Stammverzeichnis aus:
python potato/flask_server.py start examples/ai-assisted/judge-calibration/config.yaml -p 8000 --debug- Öffnen Sie
http://localhost:8000/judge_calibration/adminzum Konfigurieren und Ausführen. - Wenn die Generierung abgeschlossen ist, labeln Sie die Stichprobe unter
http://localhost:8000/annotateblind. - Klicken Sie auf Build report und öffnen Sie dann
http://localhost:8000/judge_calibration/report.
Das Beispiel verwendet ein lokales Ollama-Modell, daher ist kein API-Schlüssel erforderlich. Starten Sie zunächst Ollama und führen Sie ollama pull llama3.2:3b aus.
Konfiguration
judge_calibration:
enabled: true
prompt: | # supports {text}, {labels}, {description}
You are an impartial expert annotator. Classify the sentiment as exactly
one of: positive, negative, neutral.
models:
- endpoint_type: openai # openai | anthropic | ollama | vllm | gemini | openrouter | huggingface
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY} # env-var expansion supported
temperature: 0.7 # must be > 0 so the k samples vary
- endpoint_type: ollama
model: llama3.1:8b
base_url: http://localhost:11434
temperature: 0.7
k_samples: 5 # samples per model per item
max_items: 1000 # cap on items the LLMs label (null = all)
sampling:
strategy: stratified # random | stratified | all
sample_size: 200 # how many items humans blind-label
seed: 42
human:
num_raters: 1 # 1 = solo researcher; N adds human-human IAA
gold: single # single | majority
schemas: [sentiment] # annotation_scheme names to evaluate ([] = all)
output:
dir: judge_calibration_outputDie meisten dieser Werte lassen sich im Admin-Assistenten überschreiben und erneut ausführen.
Setzen Sie temperature > 0. Bei k_samples > 1 und Temperatur 0 sind die Samples identisch, die Konfidenz beträgt stets 1.0 und der Kalibrierungsbericht ist bedeutungslos; in diesem Fall gibt Potato beim Start eine Warnung aus.
Unterstützte Annotationstypen
| Typ | Status | Metriken |
|---|---|---|
radio / select | Unterstützt | Genauigkeit, P/R/F1, Cohen/Fleiss κ, Krippendorff α, ECE, Konfusion |
likert | Unterstützt | das Obige plus MAE und ordinales Krippendorff α |
multiselect | Unterstützt | P/R/F1 pro Label, mittlerer Jaccard, Exact-Match-Genauigkeit, Kalibrierung |
span | Experimentell | IoU-gematchte P/R/F1, mittlerer IoU, span-F1-Übereinstimmung, Kalibrierung auf Span-Ebene |
Die Span-Unterstützung clustert die Zeichen-Offset-Spans des Judges über die k Samples hinweg und matcht sie über die Intersection over Union mit der Goldreferenz; ihre Heuristiken sind richtungsabhängig, nicht exakt.
Was der Bericht enthält
- Genauigkeit, Präzision, Recall und F1 für jedes Modell gegen das menschliche Gold-Label.
- Cohens κ, aufgeteilt in Mensch↔Modell-, Modell↔Modell- und Mensch↔Mensch-Paare.
- Fleiss' κ und Krippendorffs α über alle Bewerter hinweg.
- Expected Calibration Error (ECE), Zuverlässigkeits-Bins und Brier-Score, die zeigen, wie gut die Konfidenz aus dem Stimmenanteil die Korrektheit nachzeichnet.
- Eine Konfusionsmatrix pro Modell gegen das menschliche Gold.
Die Metriken werden über die Überlappung berechnet: Elemente, die sowohl die Modelle als auch der/die Mensch(en) gelabelt haben, beschränkt auf die Kalibrierungsstichprobe, sofern eine gezogen wurde.
Die Ausgabe wird unter output.dir geschrieben: llm_labels.jsonl (eine Zeile pro Modell, Element und Schema), report.json sowie eine menschenlesbare report.html.
Judge-Kalibrierung vs. Judge-Alignment
Die Judge-Kalibrierung verwendet mehrere Judges, empirische Konfidenz (den Stimmenanteil über die k Samples) und hält den Menschen strikt verblindet. Das Judge-Alignment kalibriert einen einzelnen Judge gegen vorhandene menschliche Gold-Labels, zeigt sein Urteil während der Annotation inline an und ist auf das Iterieren an einer Bewertungsrubrik ausgelegt. Greifen Sie zur Kalibrierung, wenn Sie Judge-Kandidaten prüfen; greifen Sie zum Alignment, wenn Sie einen einzelnen Judge gegen einen festen Goldsatz feinabstimmen.
Verwandt
- Judge ↔ Mensch-Alignment — Inline-Kalibrierung eines einzelnen Judges
- Solo-Modus — vollständig kollaboratives Mensch-LLM-Labeling
- Leitfaden zur Inter-Annotator-Übereinstimmung — die Kappa- und Alpha-Metriken im Detail
Implementierungsdetails finden Sie in der Quelldokumentation.