LLM 作為評審者的校準
用一個或多個 LLM 評審者自動標註資料,然後進行一次盲測的人工校準,以衡量準確率、一致性和校準誤差。用一套可辯護、可復現的工作流回答「我該信任這個 LLM 評審者嗎?」
評審者校準會用一個或多個 LLM 評審者自動標註你的資料,然後將它們與盲測的人工標籤進行校準,讓你能夠量化在多大程度上可以信任一個 LLM 評審者。你編寫一段評審者提示詞、選定模型,Potato 會對你的資料用每個模型取樣 k 次。隨後你在看不到模型答案的情況下對一個樣本進行盲標,Potato 會報告每個模型的準確率、人↔模型與模型↔模型的一致性、校準誤差以及混淆矩陣。
用 LLM 來評判模型輸出在如今的智慧體與模型評估中已很常見,但只有當你知道一個評審者在多大程度上貼合人類判斷時,它才真正有用。校準正是讓這種信任變得可辯護的測量步驟。
工作原理
SETUP → GENERATING → HUMAN_CALIBRATION → REPORT → COMPLETED
- 生成 — 每個模型對每個條目查詢 k 次。眾數標籤即為預測結果;這 k 個樣本中與之一致的比例即為該模型的置信度。結果會寫入一個專用儲存,絕不會混入標註資料,因此人類看不到它們。
- 人工校準 — Potato 對已標註的條目抽取一個隨機或分層樣本,由一名或多名人類標註者通過常規標註介面對它們進行盲標。
- 報告 — 指標在人∩模型的交集上計算,並寫入輸出目錄。
由於模型標籤存放在獨立的儲存中且絕不會注入介面,盲測是結構上保證的,而不是依賴標註者的自律。
快速開始
從倉庫根目錄執行隨附的示例:
python potato/flask_server.py start examples/ai-assisted/judge-calibration/config.yaml -p 8000 --debug- 開啟
http://localhost:8000/judge_calibration/admin進行配置和執行。 - 生成完成後,在
http://localhost:8000/annotate對樣本進行盲標。 - 點選 構建報告,然後開啟
http://localhost:8000/judge_calibration/report。
該示例使用本地 Ollama 模型,因此無需 API 金鑰。請先啟動 Ollama 並執行 ollama pull llama3.2:3b。
配置
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_output你可以在管理嚮導中覆蓋其中大部分項並重新執行。
請設定 temperature > 0。當 k_samples > 1 且溫度為 0 時,各次取樣完全相同,置信度始終為 1.0,校準報告也就失去意義;此時 Potato 會在啟動時發出警告。
支援的標註類型
| 類型 | 狀態 | 指標 |
|---|---|---|
radio / select | 已支援 | 準確率、P/R/F1、Cohen/Fleiss κ、Krippendorff α、ECE、混淆矩陣 |
likert | 已支援 | 以上各項,外加 MAE 和有序 Krippendorff α |
multiselect | 已支援 | 逐標籤的 P/R/F1、平均 Jaccard、精確匹配準確率、校準 |
span | 實驗性 | 基於 IoU 匹配的 P/R/F1、平均 IoU、span-F1 一致性、span 級校準 |
span 支援會將評審者在 k 次取樣中得到的字元偏移跨度聚類,並通過交併比與黃金標籤匹配;其啟發式方法是有方向性的,而非精確的。
報告包含哪些內容
- 每個模型相對人工黃金標籤的準確率、精確率、召回率、F1。
- 拆分為人↔模型、模型↔模型和人↔人三類配對的 Cohen κ。
- 跨所有評分者的 Fleiss κ 和 Krippendorff α。
- 期望校準誤差 (ECE)、可靠性分箱以及 Brier 分數,展示投票比例置信度對正確性的貼合程度。
- 每個模型相對人工黃金標籤的一個混淆矩陣。
指標在交集上計算:模型和人類都標註過的條目,並在抽取了校準樣本時限定在該樣本內。
輸出會寫入 output.dir 之下:llm_labels.jsonl(每個模型、條目和方案各佔一行)、report.json,以及一份可讀性強的 report.html。
評審者校準 vs. 評審者對齊
評審者校準使用多個評審者、經驗性置信度(k 次取樣的投票比例),並讓人類嚴格保持盲測。評審者對齊將單個評審者與既有的人工黃金標籤進行校準,在標註過程中內聯展示其裁定,並圍繞迭代評分標準而構建。當你在甄選候選評審者時,選擇校準;當你針對固定的黃金標籤集調校某一個評審者時,選擇對齊。
相關內容
- 評審者 ↔ 人類對齊 — 單評審者內聯校準
- 獨立模式 — 完整的人機協同標註
- 標註者間一致性指南 — 深入講解 kappa 與 alpha 指標
如需瞭解實現細節,請參閱源文件。