大多数 AI 项目都会走到这样一个时刻:有人说,“看起来真不错,我们上线吧。”这个判断通常只基于会议上随手试过的十来个精心挑选的例子。然后系统遇到真实流量,问题接踵而来:它为什么编造了一个交货日期?为什么改了提示词之后反而变差了?它比上个月好还是差?
如果没有评估(evals),这些问题都无法回答。所谓评估,就是一组固定的测试用例,每个用例都有已知的正确答案,每次有改动时都会自动运行。评估之于 AI 系统,就像自动化测试之于软件。没人会在没有测试的情况下上线支付服务;一个读取发票或回复客户的 AI 系统,同样值得这样严谨对待。
从实际工作出发,而不是从模型出发
有用的评估集来自系统所支持的业务流程,而不是通用的基准测试。公开排行榜告诉您模型在考试题上的表现,却无法告诉您它能否从您的供应商发票中提取出正确的付款期限。
所以我们首先收集真实案例,必要时进行匿名化处理:
- 典型案例,按实际出现的比例收集。如果 70% 的来单是简单的补货订单,评估集中也应有 70% 是这类订单。
- 专家熟知的疑难案例:把总额写在第二页的供应商,用三种语言写信的客户。
- 正确答案是“我不知道”的案例:缺少数据、超出范围的问题、相互矛盾的文件。一个总是给出答案的系统,比一个偶尔拒绝回答的系统更危险。
- 对抗性案例:试图让系统出错的输入,比如一封夹带了给 AI 下指令的邮件。
五十个精心挑选的案例,胜过五百个随机案例。评估集会随着时间不断扩充:生产环境中发现的每个错误都会变成新的测试用例,同样的错误就不会悄悄卷土重来。
衡量业务真正在意的东西
“准确率”听起来简单,背后却藏着取舍。对于处理发票的智能体来说,金额错误远比缺少采购订单号严重。对于知识助手来说,没有出处的回答在内部常见问题中或许可以接受,在合规问题上却不行。
我们会与流程负责人一起约定指标,通常包括:
- 按字段或按回答计算的正确率,并根据错误的代价加权。
- 有据可依:每一句陈述是否都有系统实际检索到的来源支撑?
- 拒答质量:系统是否在该拒答的时候拒答,并且只在这种时候拒答?
- 每个案例的延迟和成本,因为一个正确的答案如果要等一分钟或要花一法郎,业务上可能仍然不划算。
每个指标都设有上线前必须达到的门槛。门槛在结果出来之前就以书面形式确定,这样就没人会想临时改变标准。
自动评判,再检查评判者
有些答案可以机械地检查:提取出的金额要么对得上,要么对不上。自由文本的回答则更难。这时可以让第二个模型充当评分者,根据参考答案和评分标准进行比较。这种方法效果很好,但前提是评分者本身经过验证:我们让人工对一部分样本打分并进行比较,只有在自动评分者与人工一致的地方,才信任它的判断。
评估永远不会结束
上线并不意味着评估结束。模型会被服务商更新,文档会变化,用户会想出新的提问方式。有三个习惯可以防止质量下滑:
- 每次改动都运行完整的评估集:新的提示词、新的模型版本、新的检索设置。只要有分数下降,这次改动就不上线。
- 对生产流量抽样,定期人工审查,个人数据做遮盖处理。
- 监控预示问题的信号:拒答率上升、人工修正增多、回答变长、成本升高。
这在实践中意味着什么
在试点上线之前,您应该能看到一份简短的报告:评估集、约定的指标、门槛和结果,以及系统出错的实例。如果供应商拿不出这样的报告,那么对于“准备好了吗?”这个问题,诚实的回答是“我们还不知道”。
这份报告也是做下一个决定的最佳工具。它说明还剩哪些错误、这些错误会造成多大代价,以及修复它们最便宜的办法是继续投入、换一个模型,还是加入人工审核环节。