跳到主要内容

我怎么给 AI 应用建立第一版评测集

· 阅读需 6 分钟
一介布衣
全栈开发者 / 技术写作者

补档说明:本文属于「AI 工程落地周记」系列,计划发布时间为 2025-08-24 11:40。当前先保留为草稿,后续补充真实案例、代码片段和复盘细节后再发布。

很多团队做 AI 应用时,最先花时间调的是模型和 Prompt,最晚补上的才是评测集。结果就是每次改完一版,大家只能靠感觉判断:

  • 这次是不是比上次好一点
  • 好的是哪一类场景
  • 会不会修好了一个问题,又带坏另外两个问题

我后来基本不再接受这种“看起来顺一点”的判断方式。因为一旦系统要持续迭代,你迟早得回答一个很现实的问题:这次变更到底改善了什么,又伤害了什么。

所以我现在给 AI 应用搭第一版评测集,目标从来不是“做出一套完美 Benchmark”,而是先做出一套能指导下一次工程决策的小而准的样本集。

第一版评测集要解决的,不是学术问题,而是改版问题

我给第一版评测集设的目标通常很克制,只回答这几件事:

  • 新的 Prompt / 模型 / 路由版本有没有提升
  • 哪几类核心场景更稳了
  • 哪些高风险场景还不能放出去
  • 如果必须二选一,我该选哪个版本先上线

这意味着第一版评测集不需要大,甚至不需要上百上千条。
大多数业务场景里,我更愿意先从 30-80 条高价值样本开始。

样本不是越多越好,先保证“像真实业务”

我现在最不推荐的第一步,是让模型先帮你生成一堆“看起来合理”的测试问题。
因为这类样本很容易过于整齐,跟真实用户输入差很远。

我更倾向于直接从真实业务痕迹里拿第一版:

  • 线上真实请求
  • 客服/运营整理过的失败案例
  • 人工审核记录
  • 产品最在意的高风险样本

例如一个内容审核或问答产品,我会优先把样本拆成 4 桶:

  1. 常规成功样本
  2. 边界模糊样本
  3. 高风险样本
  4. 明确应该拒答或转人工的样本

这 4 桶比“随机抽 100 条”更像工程上的第一版评测集。

我会先定义“一个样本到底是什么”

很多团队的评测集做不起来,是因为连最小评测单元都没定清楚。

我现在一般会把一个样本定义成:

{
"id": "eval_001",
"input": {
"userQuery": "帮我把这段客户投诉整理成升级工单",
"context": "已有工单模板与分类规则"
},
"expected": {
"category": "complaint_escalation",
"shouldEscalate": true
},
"riskLevel": "high",
"bucket": "must_not_miss"
}

重点不在字段长什么样,而在于团队对“什么叫一条完整可判定样本”达成共识。

第一版不要追求精细评分,先把判定方法分清

不是所有 AI 输出都能用同一种方式打分。
我通常会先把任务分成三类:

1. 结构化任务

像分类、抽取、路由决策,适合直接比字段。

2. 规则型生成任务

例如摘要、标题、审核理由,更适合 rubric 或规则检查。

3. 高风险开放任务

例如面向用户的最终回答,通常需要人工抽检或 pairwise 比较。

第一版最怕的不是粗糙,而是把所有任务都硬塞成“一个总分”。
我更愿意先让判定方法贴着任务本身走。

我现在会先做一张失败分类表

在开始正式比较模型之前,我几乎都会先补一张 error taxonomy:

E1: 理解错需求
E2: 事实错误
E3: 格式不合规
E4: 应该拒答但没有拒答
E5: 本该转人工却直接给结论
E6: 成本/延迟过高

这样做的价值很大。因为后面你不只是知道“哪个版本分数高”,而是知道它到底修好了哪类错误。

第一版评测集最好直接服务一次真实改版

例如你现在正要比较:

  • Prompt v3 vs v4
  • 小模型直出 vs 小模型加回退
  • 新检索策略 vs 老检索策略

那第一版评测集就应该围绕这次改动最可能影响的场景来建,而不是想一口气覆盖未来所有可能性。

我一般会这样做:

  1. 先收集真实样本
  2. 给每条样本打桶和风险级别
  3. 用旧版本跑一遍,形成 baseline
  4. 用新版本跑一遍,对比差异
  5. 人工重点复核分歧样本

也就是说,第一版评测集的意义不是“永远正确”,而是“让这次比较有依据”。

一个很实用的起步规模

如果你问我一个新项目到底从多少条开始最合适,我会给一个非常现实的建议:

  • 20 条高风险样本
  • 20 条常规主路径样本
  • 10 条边界模糊样本
  • 10 条明确拒答/转人工样本

一共 60 条左右,已经足够支撑很多第一轮决策。

这比一开始就想做 1000 条但迟迟落不了地,要有效得多。

第一版评测集最容易犯的 3 个错误

1. 样本太“干净”

只有标准提问,没有真实噪音,最后测出来的只是理想世界表现。

2. 只收成功样本

如果没有失败样本,你根本不知道系统会怎么错。

3. 没有 baseline

没有旧版本结果,就算新版本跑完,你也很难判断这次变化到底是不是进步。

我现在对第一版评测集的定义

第一版评测集不是研究资产,而是工程资产。
它不需要一开始就完美,但必须满足三件事:

  1. 足够像真实业务
  2. 足够支持这次改版决策
  3. 足够在下次迭代继续复用

总结

我怎么给 AI 应用建立第一版评测集?我的答案不是先做大,而是先做准。

先从真实请求里拿样本,先定义最小评测单元,先按风险和错误类型分桶,先服务一次明确的版本比较。只要这套东西能让团队停止“凭感觉改模型”,第一版评测集就已经发挥价值了。