评估不是打分会
短观察:给 LLM 输出打分是最容易自欺的评估方式,有效的评估从「什么样的错误不能接受」倒推。
见过太多团队这样「评估」他们的 LLM 功能:拉二十条例子,大家看一遍输出,觉得「还不错」,上线。
这种方式测的不是质量,是心情。同样的二十条例子,换个下午、换批人,结论可能完全不同。
更可靠的做法是倒着来:先问「什么样的错误是绝对不能接受的」,再为这一类错误专门构造用例。比如一个写 SQL 的助手,语法错误可以容忍(能立刻发现),但语义正确、结果悄悄错掉的查询不可接受。那评估集就应该堆满边界条件的表结构和容易混淆的列名,而不是随机抽样。
三个落地经验:
- 评估集要刻意不均衡——困难的、刁钻的用例应该占大多数;
- 每条用例必须有一个可以机械判定的失败标准,判不了的先改标准;
- 评估集是资产,每次线上事故都应该反哺一条用例进去。
评估的目标从来不是证明系统很好,而是尽快找到它在哪里坏。