一份订单识别大模型通过了29道测试题,零致命错误,模型也选定了。可以上线了吗?

作者的回答是:不。而且理由堪称整个系列里最重要的一条——考试有漏洞,而漏洞就是作者自己

打开网易新闻 查看精彩图片

考试全过,恰恰说明不了什么

题目是作者出的,答案也是作者定的,连产品目录都是作者编的。所以“通过29道题”翻译过来只有一层意思:“在我能想象到的29种场景里,它没犯错。”仅此而已。

想象不到的句子,根本不会出现在考卷上。而真实生产环境,恰恰是一连串你想象不到的句子。真实客户会以你编不出来的方式缩写,真实产品目录比你写的脏得多——同一个产品被注册三次、名字各不相同,死掉的条目没人删,一躺就是好几年。

上线前,账本上只有三行字

作者在发布前写下了三行记录:

  • 已验证:每类最严重事故各测一题,两个模型均为零失误
  • 未验证:从未在真实生产数据上跑过,考卷里的每个句子都是作者自己写的
  • 有兜底:不确定时绝不确认,转交给人工处理

第三行才是关键。如果未知情况在构造上就落在安全地带,那么不完整的考试依然可以上线。当从未见过的表述出现时,这个程序的最坏结果是“慢一点”,而不是“发错货”。

没有这层兜底,光凭考试成绩就上线,等于因为一把枪连开29次都没卡壳,就敢拿它指着自己。

上线后的第一段,是观察期

发布后的一段时间里,没有任何东西能自动通过。每一条结果都有人工复核。

这段时期产出的,才是真正的考卷。那些作者想象不到的句子,在这里第一次露面。每一次失误,都变成一道新的考题。考试从“想象”长成“生产”,就在这一刻。

  • 第1周:人工检查所有内容,每个失误都变成一条测试用例
  • 第2-4周:如果致命错误保持为零,只对已确认的条目自动放行
  • 之后:人工只需要看“需要确认”队列

考试还会告诉你,什么时候该收手

还有另一种相反的情况:致命错误反复出现,而且原因不在提示词——在问题本身。

“自动搞清楚‘通常’是什么意思”就是这类问题。它在原理上就做不到,信息根本不存在。再怎么打磨提示词也修不好,而且每次打磨都会更糟——因为它在教模型“带着自信去猜”。

这时候该做的不是修程序,而是缩小范围。画一条线——“这种情况交给人工”——然后把其余部分自动化。找出哪些事在原理上就不可能,同样是考试的本职工作。

记分牌:考试抓到的,主要是作者自己

数一数这场考试到底抓到了什么:

  • 模型的真实错误:1个,而且唯一的罪名是“多问了一句”
  • 考试作者的错误:5个,三个在答案里,两个在判卷程序里

作者用来验证AI的考试,抓到作者自己的问题比抓到AI的还多。这才是要建考试的真实原因。

通过只是起跑线。生产环境会写下接下来的考题

附注:后来判卷程序又修了一次,上面的记分牌又变了。