Judge 校准是把模型评分与可信人工标签比较。没有校准的 0.82 只是数字;你不知道它是否能区分可发布和不可发布案例。
准备校准集
从不同场景、长度、语言和难度中分层抽样。每条案例至少由两名标注者按同一 Rubric 独立判断;分歧先讨论 Rubric, 不要直接用多数票掩盖定义问题。
从最简单的 Accuracy 开始
def accuracy(samples: list[dict], threshold: float) -> float:
correct = sum((row["judge"] >= threshold) == row["human"] for row in samples)
return correct / len(samples)
运行 judge_calibration.py下载 会比较多个阈值并选择准确率最高者。
不只看 Accuracy
- Precision:Judge 判通过的案例中,真正通过多少。
- Recall:真正通过的案例中,Judge 找到多少。
- False Pass:坏结果被放过,安全和合规场景代价高。
- False Fail:好结果被拦截,增加人工和延迟。
根据业务代价选阈值。资金或安全评测通常更重视降低 False Pass。
审计常见偏差
- Position bias:Pairwise 更偏向 A 或 B。
- Verbosity bias:更长回答被误判为更好。
- Self-preference:Judge 偏好与自身风格相近的输出。
- Language bias:不同语言得分标准不一致。
通过交换顺序、控制长度、跨语言切片和不同模型复核来发现这些偏差。
漂移后重新校准
Judge 模型、Prompt、Rubric 或任务分布变化都会让阈值失效。版本化全部配置,定期重新抽样人工标签,并监控分数分布。 不要在同一报告里直接比较不同 Judge 版本的原始分数。
下一步
阅读 在线评测,将校准后的 Reference-free 指标用于生产抽样和告警。