我一直在思考一个企业软件领域似乎没人愿意面对的问题:为什么世界上最先进的AI模型能解奥数题,却连从发票里准确提取个总额都做不到?

这对我来说可不是学术练习。我搞自动化软件已经二十年了。我的公司为全球一些最大的企业处理了数十亿份文档。没错,这答案跟我的利益挂钩。但二十年来看着模型在真实企业数据上跑,而不是在基准测试上,这种经验会让你看问题的角度和实验室里调模型的人不一样。而当这些现实世界中的模型连简单的事情都做不对时,我就留意到了。

针对我这个问题,传统的回答差不多是这样的:数学是推理题,AI现在推理能力很强;发票是感知问题——布局乱七八糟、扫描件糊得不行——我们只需要更好的模型。再等下一代出来就解决了。

我觉得这说法不对。

数学

先扯数学,因为我觉着大伙儿不太清楚大语言模型做奥数题到底是怎么回事。看着像在推理。但竞赛数学也就那几百种反复用的证明技巧。所谓“新颖”的问题,其实就是把熟悉的模块换个花样拼起来。模型训练过几万道证明题。它很会把这些模块重新组合。就管这叫可组合的模式匹配呗。

国际象棋就完全不是这回事了。每个重要的中局局面,在关键方面都是全新的。你知道各种套路、各种战术,但碰到某个弃子到底好不好使,还是一头雾水。唯一能确定的方法就是算清楚具体变着。国际象棋引擎解决这问题的办法,是在神经网络外面搭一套系统,而不是把神经网络搞得更大。这个差别比大家以为的重要得多。

风险所在之处

风险所在之处

大多数办公室的活儿更像数学问题,不像国际象棋问题。比如理赔、合规检查、审贷款文件。就是把已知的规则用到新例子上。大语言模型能搞定85%到95%的活儿——这确实很不错了。但剩下的5%到15%才是藏着风险的地方。就是那些模式对不上的情况。可怕的是,模型自己不知道它卡住了。它还是自信满满地给你个答案。

我们花了数年时间测试AI模型在文档提取上的表现。不是极端情况——就是普通发票。这个任务最简单的版本就是:读取一个数值,填入正确字段。不需要推理,不需要判断,只要读数字。即便最优秀的模型也无法达到100%的准确率。而一个没什么经验的人却能做得到。

我记得我们第一次清楚地看到这一点的时候。我曾以为是我们的处理流程出了问题。其实不是。我们测试了多个模型,结果相同。这一点我一直忘不了,因为根本不需要到流程中最难的部分——那些需要做判断的地方、那些例外情况——就已经发现问题了。问题就出在‘读取’这一步。

人知道发票是什么。他们知道总金额应该大于单项金额。他们知道‘Montant TTC’和‘含增值税总额’是一回事。而模型只是从训练数据中匹配模式。一旦版式变了,匹配就失效了。不是因为任务困难,而是模型从来就没有真正读过那张发票。

一个更强大的模型,如果仍然不理解发票是什么,只会变得更自信,而不是更靠谱。但很多人没意识到的是:每一代模型都让问题看起来好像解决了,这意味着你更信任它,于是把更多任务交给它,那么残余错误造成的损失越来越大,而不是越来越小。发票上的一个错误数字,如果流入付款环节,再进入监管申报文件,这种2%的错误跟仪表盘上出个错,完全是两码事。

一个具体的论点

一个具体的论点

我不是反对AI。我反对的是一个具体的观点:一个足够强大的模型,单独部署,就能信得过,用来做企业运营。

重要的不是模型本身,而是围绕它的系统——知道什么时候模型不靠谱的那个部分。验证规则、跨字段检查、置信度评分,还有发现不对劲就升级给人工处理。当你把90%的业务量交给一个可能失败却不告知你的系统时,治理就不是个锦上添花的东西,它就是产品本身。

现在,每个企业AI供应商都在向你推销组合式模式匹配。这点倒是不假。但真正的难题在于知道啥时候模式匹配不顶用了——知道啥时候遇到的是棋局,而不是数学题,得停下来别瞎猜,开始核对。

搞清楚这点的公司,能做出经得起时间考验的东西。而那些假装问题不存在的公司,将在未来十年里跟客户解释为啥AI把发票搞错了。

本文最初发表于fastcompany.com