有人让 Grok 3 列一张表:把各国 GDP 换算成日元。
模型表现得像个优等生——准确找到 IMF 数据库,选对了美元兑日元汇率,解释思路清晰流畅。然后,在"140,941 × 146"这一步,它给出了 20,577,186。
正确答案是 20,577,386。
差了 200。找数据的能力满分,乘法算错了。

▲ dev.to 用户 Maxim Saplin 系统测试多个大模型的基础算术,正确率普遍在 40%-60% 之间
类似情况并不少见。同一篇测试报告里,30 多个主流模型在随机四则运算上的准确率惨不忍睹——加减乘除全覆盖,很多模型连一半都答不对。偏偏这些模型在 AIME、IMO 这些数学竞赛级别的评测里,已经达到金牌水平。
会推导偏微分方程,却在 139+284 上输出 422。
这个悖论困扰了 AI 社区好几年。直到 2026 年 6 月,南京大学的一组研究者终于用"几何显微镜"拍到了犯罪现场的第一张高清照片。
进位:一个被低估的杀手
先退一步,想想人类怎么做加法。
小学二年级的竖式加法:从右往左,一列一列算,超过 10 就进 1。规则简单到不需要思考,准确率接近 100%。
大模型走的是另一套路线。
它接收到"123+392+136="这串 token,经过几十层 Transformer 的向量运算,在一个巨大的连续空间里"滑行",最后在输出层从 0-9 十个候选数字里挑一个最可能的。整个过程没有"进位寄存器",没有"从右往左"的确定性流程。它靠的是训练时见过的海量加法样本形成的统计模式。
两个数相加时,每一列的进位最多是 1,模式简单,模型通常能答对。
但三个十位数相加呢?单列本位和可以达到 9+9+9=27,进位最大是 2,而且进位链要从最低位一直传到最高位。每一个位置的进位都依赖前一个位置的结果,误差层层累积。
X 上一位开发者 @xentryx 在机器之心的推文下留言,说出了很多人的心声:
"I'm excited to dig deep into this one. For the longest time I had struggled with arithmetic in my models. Multiplication and division always came first followed by basic addition and subtraction but the moment carry was involved, it became a nightmare."
「乘法和除法总是先搞定,然后是基本的加减法,但一旦涉及进位,就变成一场噩梦。」

▲ 开发者 @xentryx 回复机器之心推文,直言进位是模型算术的噩梦
掀开黑箱:模型脑子里的「数字山谷」
南京大学的文流渊、朱洵、黄栎浩、李文斌、高阳团队,做了一件极其扎实的工作:他们用 Qwen3-4B 模型跑了 10000 道"三个十位数相加"的题目,在模型生成每一位答案时,从最后一层残差流里把隐藏状态向量抽了出来。
然后,他们训练了一系列轻量探针(probe)去解码这些向量——你可以把探针想象成贴在大脑皮层上的电极,试图读取不同频段的信号。
结果相当惊人。
同一个隐藏向量,能同时被不同探针读出多种信息:真实答案、模型实际要输出的数字、进位状态、本位和……全部叠加在一起。也就是说,模型内部既"知道"正确答案,又"知道"自己即将给出的错误答案。两者共存于同一组激活值中。
更震撼的是可视化结果。研究者用 UMAP 把高维向量压扁到二维平面,再把 0-9 十个数字的 unembedding 向量作为"路标"叠上去。
图上出现了极其规整的结构——
十个数字各自形成一个"盆地",就像十个山谷。模型激活落在哪个盆地,就倾向于输出对应的数字。在每个盆地内部,样本还会按进位状态(0、1、2)进一步分层。

▲ 论文 HTML 版引言与核心图示:左侧为探针框架示意,右侧为 UMAP 可视化下的"数字盆地"与轨迹结构
最关键的发现藏在盆地之间:存在一些样本沿着连续的线状结构,横跨相邻的数字盆地。
论文把这种结构命名为等本位和轨迹(Iso-Raw-Sum Trajectory, IRST)——一组本位和相同、但进位状态不同的内部表征,会形成一条连续轨迹,像一根细丝穿过多个山谷。
想象一颗小球被放在这根丝线上。在山谷中央,它很稳定,输出正确。但当它滑到两个山谷之间的山脊——
一阵微风就够了。
「浴缸曲线」:错误在哪里发生
这阵"微风"就是论文提出的噪声量化模型(Noisy Quantization Model)的核心。
研究者定义了一个全新的概念:进位势(Carry Potential, Φ)。传统理解里进位是离散的——0 或 1 或 2,非此即彼。但论文发现,模型内部维持的其实是一个连续的实数,它来自右侧低位本位和的加权累积,像一股从右往左持续流动的"压力"。
离散进位只是这个连续压力被"取整"后的产物。
问题就出在取整这一步。模型对连续进位势的估计会受到内部神经噪声的干扰,实验测得噪声标准差 σ ≈ 0.05。大部分时候这点噪声无关紧要——但当进位势恰好落在 0.99 或 1.01 这种整数边界附近时,0.05 的抖动就足以把它推到错误的一边。
本该进位 1,变成了 0。输出少了 1。
本该进位 0,变成了 1。输出多了 1。
这完美解释了为什么大模型的算术错误几乎清一色是"差 1"错误(off-by-one)。
研究者把错误率对进位势画成曲线,得到了一条漂亮的浴缸形状——整数边界处错误率飙升形成两端尖峰,半整数位置(如 1.5、2.5 附近)几乎不出错,形成平底。理论公式拟合实验数据,R² 达到 0.80。
▲ 机器之心发布的推文,包含论文探针框架示意图与关键发现摘要(59 赞,3.3K 次查看)
模型能自救吗?
论文没有停在"诊断"层面,还提出了双流一致性检查(Dual-Stream Consistency Check)——一种推理时纠错方法。
原理很直觉:既然模型内部同时保留了本位和(Raw Sum)和进位势(Carry Potential)两种信号,那就让两条信号互相"对账"。如果模型当前输出的数字跟这两条信号算术上对不上,就用 Raw Sum + floor(Φ) 重新计算一个候选输出。
相当于在模型"说出口"之前,让它快速做一次自我审计。
实验结果:token 级准确率从原始的 86.26% 提升到 89.56%,在不大量误改正确答案的前提下(假阳性保持率 98.13%),救回了约 30% 的错误 token。
提升幅度看起来不大,但它证明了一件重要的事:模型内部确实保留着可以用来自救的正确信号。错误更多发生在"最后一厘米"的量化环节,而非计算本身彻底崩溃。

▲ 论文《The Shape of Addition》已被 ICML 2026 接收,代码开源于 GitHub
螺旋、时钟、盆地:不止一种"几何语言"
有趣的是,南京大学的工作并非孤例。
2025 年,MIT 的 Max Tegmark 团队发表了另一种几何解释:在某些模型中,数字被编码成广义螺旋(generalized helix),加法相当于在多个"时钟"上同时旋转指针,周期分别为 2、5、10、100。他们用因果干预验证了这种螺旋表征的真实性。
两个故事讲的是同一座冰山的不同侧面。Tegmark 团队聚焦较小模型和两位数加法,强调周期结构带来的鲁棒性;南京大学团队直面多操作数、多位数、带连续进位级联的困难场景,追问"内部算对了为什么输出还错"。
共同指向一个结论:大模型的"数学能力"本质上是连续几何表征 + 离散读取的过程,远非黑箱里的符号执行。错误发生在几何流形上的不稳定区域——山脊、边界、阈值附近。
悖论的答案,和它留下的希望
回到最初的问题:为什么大模型会做高等数学,却算错简单加法?
复杂的数学推理有大量语义冗余——模型可以利用模式匹配、近似推导、多条路径相互印证。错一步往往还有挽回的余地。
加法是纯粹的算法原语。没有故事可讲,没有冗余可利用。每一位数字必须精确无误,进位传递必须从头到尾不差一步。这种"零容错、纯确定性"的任务,恰好击中了连续表征体系最脆弱的环节。
但南京大学这篇论文让我们看到:错误有结构,有几何形状,有可预测的分布规律。
这意味着它可以被探测,可以被干预,可以被部分修复。
未来的模型或许会内置更强的"元认知"模块——在生成每一位数字时实时监测进位势是否处于危险区域,主动回滚可疑的量化决策。或者更彻底一点,在需要精确计算的环节,让神经网络和符号引擎各司其职。
无论哪条路,起点都是同一个:先看清错误长什么样。
南京大学团队给出了目前最清晰的一张照片。