Können Sie Ihrem LLM-Judge vertrauen? LLM-as-Judge gegen Menschen kalibrieren
Ein LLM zum Bewerten von Modellausgaben einzusetzen ist leicht. Zu wissen, ob man ihm glauben soll, ist der schwierige Teil. Ein Durchgang durch die blinde menschliche Kalibrierung von Potato 2.6: k-Stichproben-Abstimmung, Cohens und Fleiss' Kappa und der erwartete Kalibrierungsfehler.
Ein großes Sprachmodell zur Bewertung der Ausgaben anderer Modelle einzusetzen ist in der Evaluation zum Standardzug geworden. Sie schreiben eine Bewertungsrichtlinie, lassen GPT-4o oder Claude tausend Antworten scoren und lesen eine Genauigkeitszahl ab. Es ist schnell, es ist billig, und es skaliert weit über alles hinaus, was ein menschliches Team von Hand labeln kann.
Es setzt aber auch stillschweigend genau das voraus, was Sie am dringendsten prüfen müssen: dass der Judge mit Menschen übereinstimmt. Ein LLM-as-a-judge, der selbstsicher danebenliegt, erzeugt ein sauber wirkendes Leaderboard, das auf Sand gebaut ist. Bevor Sie den Urteilen eines Judges vertrauen, müssen Sie messen, wie gut sie dem menschlichen Urteil folgen. Dieser Messschritt ist die Kalibrierung, und Potato 2.6 fügt einen Arbeitsablauf dafür hinzu.
Dieser Beitrag behandelt Judge Calibration (Judge-Kalibrierung): wie sie Modelle sampelt, wie sie den menschlichen Durchgang ehrlich hält und was der Bericht Ihnen tatsächlich sagt. Die Referenzdokumentation enthält die vollständige Optionsliste.
Inline-Judge-Kalibrierung in Potato
Die Form des Problems
Ein Judge kann auf zwei verschiedene Weisen versagen, und Sie wollen beide erwischen.
Die erste ist Uneinigkeit: Der Judge nennt Dinge „richtig", die ein sorgfältiger Mensch „falsch" nennen würde. Das messen Genauigkeits- und Übereinstimmungsmetriken.
Die zweite ist falsches Vertrauen: Der Judge sagt, er sei zu 95 % sicher, und liegt in 60 % der Fälle richtig. Ein Judge kann eine ordentliche Genauigkeit haben und trotzdem schlecht kalibriert sein, was in dem Moment relevant wird, in dem Sie sein Vertrauen nutzen, um Arbeit zu routen oder Schwellenwerte zu setzen. Das misst der Kalibrierungsfehler.
Potatos Kalibrierungsdurchgang ist darauf ausgelegt, beides auf einmal zutage zu fördern.
Wie es funktioniert
Der Arbeitsablauf läuft als kurze Zustandsmaschine:
SETUP → GENERATING → HUMAN_CALIBRATION → REPORT → COMPLETED
Generierung (Generating). Jedes Modell wird pro Element k-mal abgefragt. Das häufigste Label über diese k Stichproben ist die Vorhersage des Modells, und der Anteil der damit übereinstimmenden Stichproben ist sein Vertrauen. k-mal statt nur einmal zu sampeln gibt Ihnen ein empirisches Vertrauenssignal statt einer Zahl, die das Modell über sich selbst erfunden hat. Diese Ergebnisse gehen in einen eigenen Speicher und werden nie in die Annotationsdaten geschrieben.
Menschliche Kalibrierung (Human calibration). Potato zieht eine zufällige oder geschichtete Stichprobe der Elemente und leitet sie an einen oder mehrere Menschen weiter, die sie über die normale Annotationsoberfläche labeln, ohne je die Antworten des Modells zu sehen.
Bericht (Report). Die Metriken werden über die Überlappung zwischen dem, was die Modelle gelabelt haben, und dem, was die Menschen gelabelt haben, berechnet und dann auf die Festplatte geschrieben.
Die Blindheit ist hier der entscheidende Punkt. Da die Modell-Labels in einem separaten Speicher liegen und nie in die Oberfläche injiziert werden, kann der Mensch nicht von ihnen verankert werden, auch nicht versehentlich. Die Blindheit ist strukturell, keine Frage, ob man Annotatoren bittet, wegzuschauen.
Wie Potato einen Judge gegen blinde menschliche Labels kalibriert
Konfiguration
Eine Judge-Kalibrierung ist ein einziger Konfigurationsblock. Sie schreiben den Judge-Prompt, listen die Modelle auf und legen fest, wie oft jedes gesampelt wird:
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 | ...
model: gpt-4o-mini
api_key: ${OPENAI_API_KEY}
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]
output:
dir: judge_calibration_outputWarning: Setzen Sie
temperature > 0. Mitk_samples > 1und Temperatur 0 sind die Stichproben identisch, das Vertrauen ist bei 1.0 festgenagelt, und der Kalibrierungsbericht ist bedeutungslos. Potato gibt eine Startwarnung aus, wenn es diese Kombination sieht.
Sie können mehr als ein Modell auflisten und sie nebeneinander kalibrieren, was die natürliche Art ist, zwischen einem billigen lokalen Judge und einem teuren gehosteten zu wählen.
Ohne API-Schlüssel ausprobieren
Das mitgelieferte Beispiel verwendet ein lokales Ollama-Modell, sodass Sie die gesamte Schleife offline laufen lassen können. Starten Sie Ollama, ziehen Sie das Modell und starten Sie:
ollama pull llama3.2:3b
python potato/flask_server.py start examples/ai-assisted/judge-calibration/config.yaml -p 8000 --debugÖffnen Sie http://localhost:8000/judge_calibration/admin zum Konfigurieren und Ausführen, labeln Sie die Stichprobe blind unter /annotate, erstellen Sie dann den Bericht und lesen Sie ihn unter /judge_calibration/report.
Was der Bericht Ihnen sagt
Der Bericht ist darauf ausgelegt, „sollte ich diesem Judge vertrauen?" mit Zahlen zu beantworten, die Sie in einen Methodenteil schreiben können:
- Genauigkeit, Präzision, Recall und F1 für jedes Modell gegen das menschliche Gold-Label.
- Cohens κ, aufgeschlüsselt in Mensch↔Modell-, Modell↔Modell- und Mensch↔Mensch-Paare, damit Sie sehen, ob der Judge ebenso gut mit Menschen übereinstimmt, wie Menschen untereinander übereinstimmen.
- Fleiss' κ und Krippendorffs α über alle Bewerter.
- Erwarteter Kalibrierungsfehler (ECE), Zuverlässigkeits-Bins und ein Brier-Score: die Antwort auf den Fehlermodus des falschen Vertrauens.
- Eine Konfusionsmatrix pro Modell, die meist die eigentliche Geschichte erzählt: ein Judge, der bei den leichten Klassen in Ordnung ist und an einer schweren Unterscheidung auseinanderfällt.
Alles wird über die Überlappung berechnet: Elemente, die sowohl die Modelle als auch die Menschen gelabelt haben, beschränkt auf die Kalibrierungsstichprobe. Die Ausgabe landet unter output.dir als llm_labels.jsonl, report.json und ein lesbares report.html.
Was es abdeckt
Die Kalibrierung wird bei den kategorialen Schemata, die die meisten Judges verwenden, vollständig unterstützt und reicht in schwierigere Typen hinein:
| 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-gematchtes P/R/F1, mittleres IoU, Span-F1, Kalibrierung auf Span-Ebene |
Die Span-Kalibrierung clustert die Zeichen-Offset-Spans des Judges über die k Stichproben und matcht sie per Intersection-over-Union mit dem Gold; behandeln Sie ihre Zahlen als richtungsweisend statt exakt.
Kalibrierung versus Ausrichtung
Potato liefert einen zweiten, verwandten Arbeitsablauf mit, der sich leicht mit diesem verwechseln lässt. Judge Alignment (Judge-Ausrichtung) kalibriert einen einzelnen Judge gegen einen bestehenden menschlichen Gold-Satz, zeigt sein Urteil während der Annotation inline an und ist darauf ausgelegt, eine Bewertungsrichtlinie zu iterieren, bis die Übereinstimmung steigt.
Die Faustregel: Greifen Sie zur Kalibrierung, wenn Sie Kandidaten-Judges prüfen und eine blinde, empirische Vertrauenszahl wollen; greifen Sie zur Ausrichtung, wenn Sie sich auf einen Judge festgelegt haben und seine Bewertungsrichtlinie gegen einen festen Gold-Satz feinjustieren. Beide werden gemeinsam in Den Kreis schließen (Closing the Loop) behandelt.
LLM-Judges verschwinden nicht; es gibt zu viel zu evaluieren und zu wenige Menschen, um es von Hand zu tun. Der Sinn der Kalibrierung ist nicht, den Judge durch Menschen zu ersetzen, sondern mit einer Zahl genau zu wissen, wie weit dem Judge zu trauen ist, bevor ein Mensch hinsehen muss.
Die Judge-Calibration-Dokumentation deckt jede Option ab, und der Leitfaden zur Inter-Annotator-Übereinstimmung erklärt die Kappa- und Alpha-Metriken im Detail.