跳到正文
新功能:向 Rexfin 分析师智能体询问你的模型,每个数字都附带出处
· 阅读约 7 分钟

为什么你的 AI 会算错数字

LLM 把数字当作文本来读并进行模式匹配,而不是真正计算。这背后是分词问题,而唯一站得住脚的解决方案是什么。

LLM 把数字当作文本来读并进行模式匹配,而不是真正计算。这背后是分词问题,而唯一站得住脚的解决方案是什么。

作者 The Rexfin team

让一个前沿模型去乘两个大质数,看看会发生什么。研究人员发现,GPT-4 在乘法任务上的准确率随着数字增大而急剧下滑,从小操作数上的近乎完美一路跌到大操作数上的几乎为零。同一个模型,同样的提示结构,唯一变化的只是数字的位数。

这应该让任何被告知“AI 助手能搞定数字”的财务负责人感到不安。因为这个失误不是随机的,而是结构性的,并且它有一个名字。

模型从未真正“看到”你的数字

大语言模型处理文本的方式和你不一样。在任何一个权重被激活之前,你的输入会被切分成 token,也就是模型真正读取的碎片。对于单词而言,这大体没问题。对数字而言,这是一场安静的灾难。

根据分词器的不同,“1,234,567”可能被拆成“1”“,”“234”“,”“567”,或者某种其他随意的分组。模型看不到“一百二十三万四千五百六十七”这个整体,它看到的是一串没有内在数值的碎片。这里没有位值这一列,没有“最左边的数字是最右边的一百万倍”这样的概念。一个十岁孩子都懂的算术结构,在这种表示方式里根本不存在。

那么当你要求模型做加法、乘法或计算利润率时,它到底在做什么?它在预测下一个 token。它在对训练时见过的数十亿个数字序列做模式匹配。当你的例子和常见模式相似时,模式成立,答案看起来是对的。当它不相似时,模型会给出一个自信、看似合理、但错误的数字。

这才是真正该让人夜不能寐的部分。它不是一台偶尔出错的计算器,它是一个在模仿计算器的文本预测器。

“看似合理”才是问题所在

一台坏掉的计算器会报错。而 LLM 做的事情更糟:它返回一个和正确答案看起来一模一样的数字。数量级对,格式对,信心也对,值错了。

针对多步算术和核对类任务的独立评测反复显示,在较难的确定性问题上,失败率大致落在 40% 到 50% 之间,具体数字随基准测试和操作数大小而变化。具体数字会随测试变化,但方向不会变。一旦超出模型记住的模式,准确率就会下降,而且往往下降得很厉害。

在财务场景中,这种下滑不是学术上的趣闻。你的数字很大,你的计算是链式的:收入决定毛利,毛利决定 EBITDA,EBITDA 决定契约比率。早期一个模式匹配出的错误会沿着链条一路传导下去,而且因为每个中间值看起来都合理,没有人会发现,直到某位董事会成员亲自动手算了一遍。

为什么“换个更大的模型”救不了你

直觉上的解决方案是等待下一个更聪明的模型。但这解决不了问题。问题不在于智能水平,而在于架构。一个能力更强的模型只是一个更好的模式匹配器,但它依然是在做模式匹配。它依然会把“47,318,902”分词成没有意义的碎片。规模扩大只会让这种模仿更有说服力,而不会让算术更正确。

更糟的是,对某些“推理”模型而言,趋势甚至反过来:更长的推理链会引入更多让自信的错误悄悄潜入的地方。步骤越多,错误的中间结果看起来正确的表面积就越大。

如果你想让一个数字是正确的,模型就必须停止猜测它。

解决方案:不要再让 LLM 做数学

可靠的架构说起来近乎乏味地简单。让语言模型去做它真正擅长的事:理解你的问题、解读意图、解释结果,而把真正的计算交给一个不需要猜测的东西。

那个东西就是确定性引擎。真正的算术,由代码执行,针对已验证的数字,每次都算出同一个答案。LLM 负责取回正确的输入并对结果进行表述,它从不亲自触碰数学本身。

这正是 Rexfin 的工作原理核心。我们连接你的记账和财务数据,QuickBooks、Xero、NetSuite、Sage、数仓,或者上传的报表,并建立一个与总账吻合的已核对财务模型。当你或你的 AI 提出一个问题时,数字会从这个模型中检索出来,并由一个确定性计算引擎算出来,而不是逐个 token 生成出来。每一个输出都能追溯回它的源头行。你可以点击一个数字,看到它究竟从哪里来、又是如何推导出来的。

由此可以得出两点:

  • 算术是正确的,因为是代码算出来的,而不是因为一个概率分布恰好落在了正确的位置上。
  • 输入是正确的,因为它们在 AI 看到之前就已经与你的账本核对过,所以你不是在垃圾数据上做精确计算。

第二点和第一点同样重要。一台完美的计算器如果作用在未经核对的数据上,依然只会给你一个格式精美的错误答案。信任需要两半都具备:已验证的输入和确定性的计算。这也是贯穿整个为 AI 建立可靠财务建模层专题的论点。

这在实践中意味着什么

想象一下这种差别。你问:“我们上个季度的综合毛利率是多少,如果 COGS 上涨 6%,它会怎么变化?”

一个没有接地气的 LLM 从它的上下文中取出一些数字,在脑子里尝试算百分比,然后给你一个毛利率。也许是对的。你没有办法在不重新算一遍的情况下知道。

一个有依据、确定性的系统会拉取已核对的收入和 COGS 数字,用代码运行毛利率计算,把 6% 的变化作为一个真实的假设情景套用进去,并展示结果,附带每一个输入的引用来源。你信任的不是 AI 的算术,你信任的是你自己的账本,只是上面加装了一台计算器和一条审计轨迹。

这是完全不同的姿态。一个要求你相信,另一个让你去验证。

诚实的局限

这一切都没有让语言模型本身变成财务权威,也不应该假装如此。模型仍然可能误读一个含糊的问题,或者把结果表述得不好。改变的是,底层的数字不再是一个猜测。解读可以被审查,而当算术是确定性且可追溯的时候,它就不需要被人重新手动推导一遍。

如果你只修好了数学,却让数据保持混乱,你只解决了问题的一半。这就是为什么生成式 AI 试点中的 95% 问题往往可以追溯到数据准备程度不足,也是为什么即便有代码解释器本身也不够,这一点在你信任检索来为财务答案提供依据之前值得先弄清楚。

结论很直白:一个算错你数字的 LLM 并不是坏掉了,它是在按设计工作。解决方案不是一个更会猜的模型,而是一个不需要猜的系统。

想看看确定性计算在你自己已核对的数字上运行的样子吗?预约演示,并带上一个你曾经抓到 AI 算错的数字。

所属专题 AI 在触碰你的数字之前需要的可靠性层

继续阅读

预约演示

亲眼看到您的数字对得上账。

预约一场 30 分钟的演示。带上一个您总是无法快速回答的问题,我们将基于真实财务数据现场为您建模。