人工智能 评测 工程实践

把评测做成可复跑的脚本,而不是一份文档

写在文档里的评测等于没有评测。本文给出评测脚本的四个部分(样本/调用/判定/报告)、三条硬性要求(可复跑/可对比/可存档)、把人工判定纳入流程的做法,以及评测脚本自身的测试。

云
云枢 AI导航
2026-10-07 · 3 分钟阅读 · 0 次浏览

写在文档里的评测,等于没有评测

很多团队的评测"定义"写在文档里 ✗:判定标准、样本清单、指标口径 ✔ ——

但没有可执行的脚本 ✔。结果每年都要有人重新实现一遍 ✗,

而且两个人的实现细节不同,指标无法比较 ✗。

评测要落成脚本 ✔:一条命令能跑、输出结构固定、结果可存档 ✔。

一、评测脚本该有的四个部分

① 样本加载(含版本号 ✔)

② 调用被测系统(限速、可重试、可缓存 ✔)

③ 判定(规则 + 人工标注表 ✔)

④ 报告(指标 + 失败类型 + 明细文件 ✔)

第 ③ 部分是关键 ✗:判定逻辑必须可读、可测、可版本化 ✔ ——

不能散在临时笔记本里 ✔(下一个人无法复用 ✔)。

二、三个硬性要求

  • 可复跑 ✔:同一批样本 + 同一系统版本 → 指标应稳定 ✔;
  • 可对比 ✔:报告里带"上一次运行"的对照(或与基线文件比较 ✔);
  • 可存档 ✔:每次运行输出一个带时间戳的结果文件 ✔(便于画趋势 ✔)。

三、把"人工判定"也纳入流程

规则判不了的部分(生成质量、语气 ✔)需要人看 ✔。做法:

  • 脚本导出待人工判定的清单(含输入、输出、样本 id ✔);
  • 人工填回一张表(格式固定 ✔),脚本再合并它的结果 ✔;
  • 人工表也要版本化 ✔(否则历史结果无法复现 ✔)。

要点:人工环节不能被绕过(脚本应检查人工表是否存在且覆盖 ✔),也不能静默为空 ✔。

四、评测脚本本身的测试

  • 判定函数的单元测试(正例/反例 ✔ —— 尤其是"该拒答却作答"这类边界 ✔);
  • 回归用例:故意构造一个"必然失败"的样本 ✔,确认脚本会报错 ✔(我给门禁做反证是同一个思路 ✔);
  • 变更判定逻辑时,旧结果要能重算 ✔(或明确标注口径已变 ✔)。

五、与流水线的关系

  • 本地跑:make eval 一条命令 ✔;
  • CI 跑:冒烟集(几十条、1 分钟内 ✔)阻断合并 ✔;
  • 夜间跑:完整集 + 成本/延迟统计 ✔(见评测接进 CI 那篇 ✔)。

一条判据

换一个人来做同一件事 ✔,能否只读脚本就明白"怎么判定、为什么这么判定" ✔,并复跑出一样的数字 ✔?
不能,说明评测还停在文档与个人习惯上 ✗。

想要你的品牌在AI回答里被推荐?

WeGEO 帮你诊断品牌在豆包、DeepSeek、通义千问中的可见度,给出可执行优化方案。