为什么很多团队的评测集没用
常见做法是「随便找几十条试试」。问题在于:
- 抽的样本不覆盖真实分布 → 优化只对样本有效;
- 判定标准含糊 → 两个人标出不同答案,回归时无法比较;
- 评测集被反复使用后又拿去调参 → 过拟合评测集,线上依旧差。
第一道关:抽样
- 从真实请求里抽,不要从自己想象的问题里抽;
- 按分层抽样:把请求按类型(问答/抽取/生成)、长度、语种分层,各层都取一些;
- 保留困难样本:历史上出过错、用户投诉过的,必须进评测集;
- 留一份不公开的留出集:只用它做最终判定,平时不拿来调参。
规模建议:小团队 100~300 条,按类型分层即可跑起来;先建立「能重复跑」的流程,比一次做 5000 条更有价值。
第二道关:标注
- 先写判定标准,再标注:什么算对、什么算部分对、什么算错;边界情况举例;
- 双人标 10%:算一致性;不一致的地方就是标准没写清,先改标准;
- 标注要记「依据」:不只记对错,还记「为什么」(例如「漏了条款 3.2」);否则无法定位问题类型;
- 生成类任务难判对错时,用成对比较(A/B 哪个更好)比打绝对分更稳。
第三道关:回归
- 评测集冻结:版本化管理,修改必须留痕;
- 每次改动跑同一套指标:正确率、失败类型分布、平均成本与时延;
- 关注失败类型的变化,而不只是总分:总分不变但「编造事实」变多,是质量在恶化;
- 定期补充新样本(线上新出现的问法),但要与旧集分开统计,避免指标不可比。
一个最小可用的落地流程
- 从日志抽 150 条,按 5 类分层,写好判定标准;
- 双人标注其中 15 条,不一致处改标准;
- 全量标注,得到基线分数与失败类型分布;
- 之后每次优化:跑同一集 → 比较分数与失败类型 → 记录改了什么;
- 每月补充 20 条新样本到「增量集」,观察是否退化。
做到这五步,你就有了可重复、可比较的尺子——这比任何单次调参都更能提升最终质量。