跳到主要内容

01-评测集与Rubric设计

核对日期:2026-05-13。

不稳定项:评测框架、数据标注工具、LLM-as-judge 方法和行业 benchmark 会持续变化;自建评测集必须绑定业务任务、模型版本、Prompt 版本和运行日期。

1. 学习目标

本专题解决评测体系的地基问题:如何把“感觉不错”变成可复现、可比较、可回归的评测集和评分标准。

学完后你应该能做到:

  • 设计覆盖正常、边界、拒答、安全和历史失败的 eval dataset。
  • 为开放问答、结构化输出、RAG 和 Agent 设计不同 Rubric。
  • 区分规则评分、人工评分、程序评分和 LLM-as-judge。
  • 设计评测样例字段、标签、风险等级和版本。
  • 用失败样例持续更新回归集。

2. 评测集不是 demo 集

Demo 集通常只包含“最好看”的样例;评测集必须代表真实任务和关键风险。

合格评测集包含:

类型目的
正常样例覆盖高频主路径
边界样例测试歧义、长输入、多约束
缺信息样例测试澄清和拒答
冲突样例测试证据冲突处理
安全负例测试注入、越权、敏感信息
历史失败防止问题复发
高风险样例业务不可接受错误

评测集要覆盖任务分布,也要刻意覆盖事故分布。

3. 样例字段

推荐 JSONL 字段:

{
"id": "rag-policy-001",
"task": "企业制度问答",
"input": "试用期员工可以报销差旅住宿吗?",
"expected_behavior": "根据制度回答,并引用具体条款",
"expected_answer": "可以,但需要符合差旅制度标准",
"required_sources": ["travel-policy-2026#section-3"],
"must_cite": true,
"must_refuse": false,
"tags": ["rag", "policy", "citation", "normal"],
"risk_level": "medium"
}

必要字段:

  • id:稳定唯一 ID。
  • input:用户输入。
  • expected_behavior:期望行为。
  • tags:能力和风险标签。
  • risk_level:风险等级。
  • version 或 dataset 版本。

4. 数据集构成比例

一个 30 条起步的评测集可以这样设计:

类型数量说明
正常样例12高频任务
边界样例6歧义、长输入、冲突
拒答样例4无证据、无权限、超范围
安全负例4注入、越权、敏感数据
历史失败4线上或人工构造失败

如果是高风险系统,安全和拒答样例比例应更高。

5. Rubric 设计

Rubric 要把“好答案”拆成可评分维度。

企业知识库问答示例:

维度2 分1 分0 分
正确性结论完全正确部分正确错误或误导
Groundedness结论均被证据支持部分证据不足无证据或编造
引用引用准确支持结论引用主题相关引用不存在或不支持
完整性覆盖关键条件缺少次要条件缺少关键条件
边界处理正确澄清或拒答边界提示不清编造或越界
安全无越权泄漏有轻微风险严重安全失败

Rubric 要写到评审者能独立打分,而不是靠“懂的人自然懂”。

6. 评分方式选择

方式适用风险
规则评分JSON schema、枚举、长度、是否引用覆盖有限
程序评分SQL、代码、数学、精确答案需要可执行标准
人工评分高风险、产品体验、复杂事实成本高
LLM-as-judge语义质量、摘要、开放问答初筛偏差和漂移
混合评分生产系统实现复杂但稳

建议:能用规则的先用规则,高风险样例必须有人类校准。

7. 数据治理

评测集也要版本化。

治理要求:

  • dataset version。
  • 标注人和标注日期。
  • 样例来源。
  • 去重。
  • 难度分层。
  • 隐私脱敏。
  • 标签体系。
  • 变更记录。
  • 防止泄漏到 Prompt 或训练数据。

线上失败进入评测集前要脱敏,不要把真实用户隐私写进公开文档。

8. 失败样例库

失败样例字段:

字段说明
id失败样例 ID
input输入
output实际输出
expected_behavior期望行为
failure_type失败分类
root_cause根因
impact影响
fix修复
regression是否进入回归

失败样例库是 AI 系统最宝贵的资产之一,因为它记录了系统真实撞墙的位置。

9. 常见反模式

反模式表现后果修正
Demo 当 eval只挑好样例上线翻车代表性样例
无 Rubric评分靠感觉不可复现明确维度
只评正常样例无边界负例风险隐藏加安全和拒答
不版本化分数无法复现无法比较dataset version
judge 不校准模型自己评自己分数虚高人工校准集

10. 练习

为“企业知识库问答系统”设计 30 条评测集结构:

  • 12 条正常。
  • 6 条边界。
  • 4 条拒答。
  • 4 条安全负例。
  • 4 条历史失败。

为每类写 1 条样例,并设计 0-2 分 Rubric。

11. 验收题

  1. 为什么评测集不是 demo 集?
  2. 一个 eval 样例必须包含哪些字段?
  3. Rubric 为什么要具体到 0/1/2 分标准?
  4. 哪些样例必须进入回归集?
  5. 评测数据为什么需要脱敏和版本化?
  6. 什么情况下 LLM-as-judge 不能单独使用?