
目录
[一、规则评测(Rule-based Evaluation)](#一、规则评测(Rule-based Evaluation))
[✅ 优点](#✅ 优点)
[❌ 缺点](#❌ 缺点)
[✅ 优点](#✅ 优点)
[❌ 缺点](#❌ 缺点)
[四、工程最佳实践:混合评测(Rule + LLM Judge)](#四、工程最佳实践:混合评测(Rule + LLM Judge))
一、规则评测(Rule-based Evaluation)
核心思路
固定规则、关键词、正则、结构化指标,对模型输出做确定性判定,输入输出可复现,不需要大模型参与打分。
本质:程序硬编码的判定逻辑,属于确定性评测。
常见实现方式
- 关键词 / 正则匹配:检查是否出现禁用词、必填信息、特定句式;
- 字符串指标:长度、重复度、是否空回答、格式是否符合 JSON/Markdown;
- 结构化校验:JSON 合法性、字段完整性、枚举值是否在指定集合;
- 简单 NLP 规则:分词统计、实体抽取数量、答案是否包含标准答案片段;
- 精确匹配 / 模糊匹配:EM(完全匹配)、F1(片段重合),常用于问答。
✅ 优点
- 成本极低,速度快,大规模批量跑毫无压力;
- 结果稳定可复现:相同输入永远得到相同分数,无随机波动;
- 可解释性强:知道是哪条规则触发扣分,方便定位 bad case;
- 无幻觉风险,不会像 LLM judge 一样乱打分。
❌ 缺点
- 只能测表面形式,无法理解语义 ; 例:标准答案 "南京是江苏省会",模型回答 "江苏省的省会城市为南京",文字不一样,但语义正确,简单规则容易判错;
- 规则维护成本随场景指数上升,复杂业务要写大量分支;
- 无法评估流畅度、逻辑性、风格、对齐度、创造力这类主观指标。
适用场景
输出格式强约束、有明确标准答案、合规词过滤、基础格式校验; 比如:API 出参校验、敏感词审核、固定题库问答、JSON 输出校验。
二、LLM-as-judge(大模型充当裁判评测)
核心思路
用一个能力更强的大模型(Judge 模型),通过 Prompt 定义评测标准,让 Judge 阅读「用户 query + 模型回答 + 参考标准答案」,自主做语义理解并输出打分 / 评语。
本质:基于 LLM 语义能力的概率性主观评测。
常见范式
- 单点打分:1~5 分,评估准确性、有用性、无害性;
- 二元判断:True/False,回答是否符合要求;
- 对比评测(Pairwise):A 回答 vs B 回答,选出更好的一个;
- 多维度打分:准确性、简洁性、逻辑性、格式、安全性分别打分;
- 输出理由:要求 judge 给出打分依据,方便排查。
✅ 优点
- 懂语义,能理解同义改写、推理逻辑、上下文;
- 灵活:改 prompt 就能新增评测维度,不用大量写代码规则;
- 适合主观类任务:文案、对话、创意、翻译、思维链、对齐效果评估;
- 可以评估人类才能判断的质量。
❌ 缺点
- 有随机性、不稳定:相同样本多次评测分数可能不一样;
- Judge 自身幻觉、偏见,会打错分;
- 成本高、速度慢,批量评测开销大;
- 可解释弱:打分理由有时不可靠;
- 位置偏差、长度偏差:容易偏爱更长的回答,pairwise 里偏好第一个候选。
工程上常用手段:设置 temperature=0、多次采样取平均、few-shot 给评测样例、输出打分理由做校验。
适用场景
开放问答、对话助手、写作、摘要、翻译、Agent 任务、逻辑推理等无固定标准答案的生成类任务。
三、两者对比总结
| 维度 | 规则评测 | LLM-as-judge |
|---|---|---|
| 判定依据 | 代码硬规则、字符串、结构化指标 | LLM 语义理解 + 评测 prompt |
| 确定性 | 高,可复现 | 低,存在随机波动 |
| 语义理解能力 | 弱,只看表层文本 | 强,理解逻辑与含义 |
| 维护成本 | 初期简单;复杂场景规则爆炸 | 初期写 prompt,迭代调 prompt |
| 运行成本 | 极低 | 较高(token 消耗) |
| 适合指标 | 格式、合规、关键词、EM/F1 | 准确性、逻辑性、有用性、流畅度 |
四、工程最佳实践:混合评测(Rule + LLM Judge)
生产评测集一般两者组合使用:
- 第一层:规则评测(前置过滤) 先跑规则:敏感词、格式校验、空回答、字段合法性。规则不通过直接打低分,不送入 LLM judge,节省 token。
- 第二层:LLM-as-judge(语义打分) 规则校验通过后,再交给 Judge 评估语义质量、推理、表达。
- 第三层:抽样人工校验 定期抽样本,人工核验 LLM judge 的打分准确率,校准 judge prompt。
一句话概括分工:规则管 "底线和格式",LLM judge 管 "语义和质量"。
五、简单示例
Query:江苏的省会是? 模型输出:江苏省会是南京。
- 规则评测:关键词命中,EM=1 分;
- LLM judge:判断回答准确,5 分给 5 分。
模型输出:江苏的省会在南京这座城市。
- 规则评测:EM=0(文字不完全一致),简单 F1 可能 0.5;
- LLM judge:语义正确,5 分给 5 分。