LLM 评审:用模型按 rubric 打分,校准偏差后再替代部分人工评估
LLM-as-judge 让一个模型按评分标准(rubric)给另一个模型的输出打分,常用于开放式问答、摘要、RAG 答案和 Agent 轨迹的批量评估。它比人工便宜、比精确匹配灵活,但不是“客观真值”:位置偏差、冗长偏好、自我偏好、prompt 敏感性和评分漂移都会影响结果。
常见形式:pointwise(单条输出按 1–5 分打分)、pairwise(A/B 两个输出选更好)、reference-based(对照参考答案)。pairwise 通常比 pointwise 稳定,但成本更高;pointwise 更适合大规模回归。无论哪种,都要用一批人工标注样本校准 judge,并报告与人工的一致性。
# Pointwise:按 rubric 输出 JSON,便于程序解析
JUDGE_PROMPT = """你是严格的评审。按以下标准给答案打分(1-5):
- 事实正确性(40%)
- 是否回答了问题(30%)
- 引用/依据是否充分(20%)
- 表达清晰度(10%)
只输出 JSON:{"score": 1-5, "reason": "..."}
问题:{question}
参考答案:{reference}
待评答案:{answer}
"""
# Pairwise:交换 A/B 位置,降低位置偏差
def judge_pairwise(question, a, b, model):
first = model(JUDGE_PROMPT.format(question=question, answer_a=a, answer_b=b))
second = model(JUDGE_PROMPT.format(question=question, answer_a=b, answer_b=a))
# 两次结果不一致时视为平局或交人工复核
校准流程:
1. 人工标注 100–300 条,覆盖好/中/差和边界案例
2. 让 judge 对同一批打分
3. 计算一致性(Cohen's kappa / Spearman / 准确率)
4. 分析分歧案例,修改 rubric 或换 judge
5. 固化 prompt 和模型版本,纳入回归
合上页面,先回答,再展开对照。
小程序版
微信扫码,随时查命令