No.365
评测集应该怎么构建?
一句话回答
评测集是一组有代表性的输入,每条都带上期望输出或评分要点,用来稳定地衡量每次改动的效果。数据有三个来源:线上真实问题抽样(要先脱敏)、领域专家编写、模型合成后人工审核,要覆盖常见问题、边界情况和对抗输入,标注标准要统一。规模从几十条起步,之后持续把线上的失败案例加进来;评测数据不能混进 Prompt 的示例里,否则分数会虚高。
详细解析
一条样本包含什么
JSON
{
"id": "order-cancel-023",
"input": {
"messages": [{ "role": "user", "content": "昨天买的耳机还没发货,能取消吗?" }],
"context": { "order_status": "待发货" }
},
"expected": {
"must_include": ["可以取消"],
"must_call_tools": ["get_order"],
"must_not_call_tools": ["cancel_order"],
"rubric": "查询订单状态后告知可以取消,并询问用户是否确认;用户确认之前不能调用取消接口"
},
"tags": ["订单", "取消", "需要工具"],
"source": "线上抽样(已脱敏)"
}
- id:稳定不变,新旧版本才能逐条对比
- input:完整的输入。多轮对话要带上历史,依赖外部数据的要带上当时的上下文
- expected:按任务类型选形式。分类、抽取这类有唯一答案的任务写标准答案;开放生成的任务写评分要点(rubric)和必须包含、不能出现的内容,不要只写一个"标准回答"让输出逐字比对
- tags:场景、难度、来源,用来分组统计
数据从哪来
| 来源 | 优点 | 注意 |
|---|---|---|
| 线上真实问题抽样 | 最贴近真实分布,包括用户的口语、错别字和信息不全的问法 | 先脱敏(姓名、手机号、地址等);按场景分层抽样,否则大部分是简单的高频问题 |
| 领域专家编写 | 覆盖关键场景和专业难点,期望输出可靠 | 成本高;容易写成"教科书式"的问题,和用户的真实问法有差距 |
| 模型合成,人工审核 | 能快速扩充数量和覆盖面,比如批量改写问法、构造边界情况 | 必须逐条审核;合成数据风格单一,容易和原文用词重合,分数偏高 |
上线前没有真实数据时,先用专家编写加合成数据起步;上线后逐步用真实数据补充和替换。
覆盖哪些情况
- 常见问题:按线上的占比覆盖主要场景
- 边界情况:信息不全需要追问、知识库里没有答案应该拒答、超长输入、多个意图混在一起、中英混杂
- 对抗输入:提示注入、诱导泄露系统提示、诱导越权操作,按类别各准备几条(防御思路见 Prompt 注入)
- 回归样本:修过的每一个 bug 都留一条,防止再次出现
标注和维护
- 写一份标注指南:什么算正确、什么算部分正确,边界例子怎么判
- 多人标注同一批样本,计算一致率;分歧大的样本讨论后统一,确实有歧义的样本改写或删除
- 业务规则变化时(比如退款政策调整),相关样本的期望输出要同步更新,评测集本身也要做版本管理
- 几十条就能发现明显的问题,人工也看得过来;之后逐步扩充,让每个标签下都有足够的样本
- 线上失败案例 → 脱敏 → 写期望输出 → 加入评测集,形成闭环
- 留出一部分样本作为测试集:平时调 Prompt 只看开发集,定期用测试集验证,防止对评测集过拟合
- 评测样本不能出现在 Prompt 的 few-shot 示例里,也不能放进 RAG 知识库的示例问答里,否则测的是"背答案"
面试官可能追问
评测集需要多大?
看用途。发现明显的问题,几十条就够;要比较两个版本之间的细微差别,就需要更多样本。可以粗算一下:通过率 p 的标准误约为 √(p(1 − p) / n),假设 p 是 80%、n 是 100 条,标准误是 4 个百分点,95% 置信区间大约是正负 8 个百分点,两个版本差几个百分点根本分辨不出来;n 增加到 400 条,区间缩小到正负 4 个百分点左右。新旧版本在同一批样本上逐条对比,比只看两个总分更灵敏。
用模型合成评测数据要注意什么?
每一条都要人工审核。生成时要求模仿真实用户:口语化、有错别字、信息不全;最好用和被测模型不同的模型来生成,避免"自己出题自己答"。RAG 场景下,根据文档片段生成的问题往往照搬原文的用词,检索起来比真实问题容易,要改写一部分(见 RAG 系统怎么评估)。
可以直接用公开的评测基准吗?
公开基准衡量的是模型的通用能力,选型时可以参考,但它和你的业务任务、数据和评分标准关系不大,而且可能已经混进了模型的训练数据。评估自己的应用,要用自己的评测集。
易错点
- 只收集"正常"的问题,没有边界情况和对抗样本
- 评测样本混进 few-shot 示例或知识库,分数虚高
- 只看总分,不按标签分组,某一类问题的退化被掩盖
- 评测集建好后不再更新,和线上的真实分布越差越远
AI 模拟面试官
用自己的话回答,AI 对照参考答案打分、指出遗漏,再追问,最多 3 轮
登录后就可以和 AI 面试官对练,面试记录也会保存下来。登录
这道题你掌握了吗?
选一个最接近的状态,没掌握的题会出现在"我的进度 · 待复习"里。
学习记录暂存在本机浏览器。登录后自动同步到账号,换设备也能看到。