LLM-as-a-Judge 靠谱吗?用大模型给大模型打分有哪些坑?
面试怎么回答
LLM-as-a-Judge 适合开放式回答的质量评估、大规模回归初筛和版本对比,但有位置偏差、长度偏差、自我偏好、标准模糊、评委自己也会错和随机性这些坑。我的做法是给评委参考答案或材料;把评分标准拆成具体的是或否检查项;对比评测时交换顺序各评一次,结论一致才算数;要求先给理由再给结论;能用规则判断的格式、工具调用和数字一致性用代码检查;抽样人工标注计算评委与人工的一致率来校准;评委模型和提示词也版本化。对上线决策这类高风险判断,仍然要有人工复核。
先把这段讲顺;面试官追问时,再展开下面的原理和细节。
详细讲解
大模型应用的评测,人工标注太慢太贵,于是很多团队用另一个大模型当评委打分。面试官问这题,想看你既会用,又知道它的局限,以及怎么让它更可信。
适合用在哪里
- 开放式回答的质量评估:相关性、完整性、是否忠于给定材料;
- 大规模回归测试的初筛;
- 对比两个版本的回答,哪个更好。
不适合单独用在:事实准确性要求极高、需要专业领域判断、结果直接决定上线的场景。
常见的坑
- 位置偏差:两个回答对比时,倾向于选排在前面(或后面)的那个;
- 长度偏差:倾向于给更长、更详细的回答更高分,即使内容没有更好;
- 自我偏好:同一家族的模型,可能更偏好和自己风格相近的回答;
- 评分标准模糊:只说「打 1 到 10 分」,分数的含义不稳定,不同批次之间不可比;
- 评委本身也会错:评委不知道正确答案时,可能被一个自信但错误的回答说服;
- 随机性:同一条用例跑两次分数不同。
让评委更可信的做法
- 给标准答案或参考材料:评委对照参考判断,比凭空判断准得多;
- 评分标准具体化:把「好」拆成几个可判断的检查项,比如「是否给出了具体数字」「数字是否与参考一致」「是否包含参考中没有的结论」,每项判断是或否;
- 对比时交换顺序:A/B 各放前面评一次,两次结论一致才算数;
- 先说理由再打分:要求评委先写判断依据,再给结论;
- 用规则能判断的不用模型:格式、工具调用、数字一致性用代码检查;
- 和人工标注对齐:抽一批样本人工标注,计算评委和人工的一致率,一致率不够就调整评分标准或换评委模型;
- 固定评委版本:评委模型和提示词也要版本化,换评委时重新校准基线。