上一篇我们说,智能也许真的有形状。
这一篇要说的是:看见一个圆,不等于在圆上思考。
一、八月之后六个月
一个问题,小学生都会答:
What month is six months after August?
人答这个问题的时候,多半会在脑子里把月份转一下:August, September, October, November, December, January, February。或者更快一点,闭上眼睛看到一个隐形的圆盘,从 August 往前推半圈,落在 February 上。
不管走哪条路,圆是一直在的。
研究者早就发现,大语言模型内部也确实把月份排成了一个圆。星期也是圆,颜色也是圆,钟表更是圆。这件事漂亮到让人想就此打住。如果模型内部有月份圆,那它回答"八月之后六个月"的时候,应该就是在那个圆上转六步。它学到的几何和它做的计算,本该是同一件事。
实际并非如此。
2026 年初一篇论文做了一件很扎实的工作。研究者盯着 Llama-3.1-8B 一层一层往里看,发现这个模型回答上面那个问题时,走的不是月份圆。
它把 August 翻译成数字 8,把 six 翻译成数字 6,做了一道朴素的加法:
然后再把 14 翻译回月份:
答案一样,路线完全不同。
它没有沿着自己看见的那个圆走。它绕了一条远路,从月份的世界离开,进了一个数字的世界,做完事再回来。
这条路看起来很奇怪。但它一旦被看见,就再也回不去了,因为它把一个我们以前以为是一件事的东西,劈成了两件。
二、从未见过人类日历的外星人
模型学月份的时候,没人给它一张日历。
它见到的只是 January、February、March 这些词,在亿万个句子里如何跟别的词来往:哪个月跟"春天"一起出现,哪个跟"开学"一起出现,哪个老和"圣诞"挤在一起。整件事像一个外星人远远地接收地球的电波,从未踏上地球,从未见过人类的脸,只能从电波里听人类反复说的那些话。
但只靠这些话,他画得出来人类的月份。
模型也是。只靠这些"话",它在内部把十二个月份排成了一个圆,把彼此的间隔精确到了月与月之间的距离。它从来不知道二月很冷,没看过日历挂在墙上,但它知道二月该和谁挨着。
数学里有一种古老的眼光跟这件事是一回事。它说:一个东西是什么,归根到底由它和别的东西的全部关系决定。两个东西如果对外的关系网一模一样,它们就是同一个东西,没有别的"内在"可言。这听起来像哲学,但二十世纪后半叶有一整个数学分支就站在这条原则上。
模型在自己有限的方式里,把这条原则演了一遍。
而它接着做了一件更有意思的事情。
它学完了月份,又学了星期,又学了 24 小时。三张关系网,三个圆,形状不同,节点数不同。表面上看是三个独立的小世界。但当模型真的要用这三个概念去算点什么的时候,它没有给每个小世界配一套专门工具。它做的是另一件事:把月份翻译成数字,把星期翻译成数字,把小时翻译成数字,然后送进同一台加法器。
也就是说,三张表面不同的关系网,背后共享同一个底层对象。
这是同一条数学原则的第二次出现,方向反了过来。第一次说的是:一个概念可以从它的关系网里被反推出来。第二次说的是:多个关系网可以从同一个更底层的对象里被代表出来。
数学家会立刻认出这两条是同一件事的两个侧面,并且会想起一个名字。但你不用记住那个名字。你只需要记住:模型在一台机器里,把这件事的两个方向都演了一遍,一次往里收,一次往外放。
这门数学叫范畴论。几乎所有的智识搭建最后都要指向她。
三、厨师和修理工
到这里,我们可以停下来问一个不一样的问题。
如果模型已经把月份的关系网学得这么好,为什么它还要绕路?为什么它不直接在月份圆上做计算?
这个问题的答案不在模型里,在一种更基本的对立里。
想想做菜的人。一个做了三十年同一道菜的厨师,盐放多少不是"算"出来的,是"看"出来的。锅一开,色一变,他手就知道盐够了。在他这里,结构和动作合成一件事。看见就是算。这是一种特别深的掌握。它的代价是窄。他对这一道菜如此,换到一个完全没做过的菜系,这种"手感"就不在了。
再想想一个带工具箱的修理工。他面对的螺丝千奇百怪,一字的、十字的、六角的、内六角的,还有些他从来没见过的。他不可能为每种螺丝长出一双"看见就知道怎么拧"的手。他必须有一把能拧很多种螺丝的扳手,遇到具体螺丝先识别再调整扳手。这种解法慢,绕,每次都要花一点工夫做翻译。但它能处理那些他从来没见过的螺丝。
这两种解法各有各的强项,但它们没法兼得。
做菜的人快、深、稳,前提是任务窄。修理工慢、绕、有翻译开销,前提是任务可以多。让"看就是算"成立的条件,恰好就是让通用性消失的条件。一个能在很多种循环结构上推理的系统,无论怎么训练,都不可能在每一种结构上都达到"看就是算"的程度。它必须在某些时候做翻译。
Llama 在循环推理这件事上扮演的是修理工的角色。它要处理月份、星期、24 小时,将来可能还会遇到生肖、扑克花色、围棋手数模 4。它没办法为每一种循环结构都长出一双专属的手。它选择了另一条路:建一台通用加法器,所有循环概念都翻译进去,做完再翻译出来。
这条路的代价是显眼的。它在每一件具体的事情上都没有"看就是算"的那种轻盈。但这条路的好处藏在它没说出来的地方:它能处理它从没见过的循环结构。一个新的、它训练时根本不存在的循环概念,只要能被翻译成数字,它就能用同一台加法器处理。
Llama 的"缝"不是它没做好。这道缝是它在通用性这边站位的代价。
四、缝里能看见什么
那道缝具体长什么样?
要回答这个问题,先要有看它的眼睛。
模型不在用人类语言思考。它在用几千维的数字列表思考。研究者想看见这些数字列表里发生了什么,需要工具。一类叫稀疏自编码器(SAE),它能把同一组神经元里"叠"在一起的多个特征解开,让每个特征独立呈现。一类叫激活补丁(activation patching),它把某组神经元的状态在两个任务之间互换,看输出会不会跟着换,以此验证那组神经元是不是真的在因果地承担某个计算。还有一类是把模型内部的表征拟合到一个具体的几何形状上去看:比如假设数字在模型内部是一条"广义螺旋"(generalized helix),用数据去看这个假设拟合得多准。在 Kantamneni 和 Tegmark 的论文里,这个拟合的 到了 0.997,几乎完美。这就把"模型在用某种螺旋编码数字"从一个猜测变成了可以被检验的结构假说。
这些工具是过去几年才逐渐成熟的。它们让"模型内部在做什么"第一次从一个哲学问题变成一个可以被实证回答的问题。
5 月 8 日我们发过一篇专门讲这件事的文章,《用语言照亮 AI 模型的内部,语言也会制造幻影》。那篇讲了 NLA 这种新工具如何用语言读出模型内部表征,也讲了这种工具的局限:它会胡编、缺乏机制基础、太能说,而且有效性会随认真使用而衰减。如果你想知道"看见 AI 内部"这件事本身的来龙去脉,可以回去读那一篇。
这一节假设这些工具已经在手。我们关心的不是"怎么看见",是"看见了什么"。
研究者顺着这条线索往里找,找到了一个非常具体的位置。Llama-3.1-8B 的第 18 层 MLP 里,有大约 28 个神经元,反复出现在四类任务上:
几月之后是几月 几天之后是星期几 几小时之后是几点 一道纯加法
四个任务,看起来在问四件不同的事。但盯住这 28 个神经元中的任何一个,画出它在四个任务上的发放模式,画出来的图几乎重叠。
也就是说:从这个神经元的角度看,月份题、星期题、小时题、加法题,根本不是四件事。它一直在做同一件事。
我们以为我们在问模型四件事,模型早就把它们当成同一件事。
这 28 个神经元还可以按周期分组。一组负责模 2(也就是奇偶),一组负责模 5,一组负责模 10,再往上是 20、50、100。每一组负责数字结构的一个侧面,合起来才"听见"一个具体的数字。
这里有一个细节值得停下来看。如果模型真的为月份造了一台专门的加法器,那这台加法器的周期应该是 12,因为月份本来就是 12 周期的。如果是为星期造的,应该是 7。为 24 小时造的,应该是 24。
可是论文里那台真实的加法器,周期不是这些。
它的周期是 2、5、10、20、50、100。全是十进制的影子。
面对一个天然以 12 为周期的概念,模型内部浮现出来的,却是 10 的世界。它没有为月份学会"模 12 算术",它学会的是普通的十进制加法,然后在最后一步把 14 映射回 February。
这道缝因此有了具体的形状。它不是一道抽象的接缝,它是一段明确的翻译路径:
中间那一段"数字+加法+数字"是不依赖月份的。月份在这一段里被悬置了,只剩它的数字编号在参与运算。运算完了,月份再被找回来。
值得停下来看一眼中间那一段。
模型怎么做加法的?不是像我们小学时学的那样,从个位开始进位、进十位、进百位。它做的事情让人意外得多。
Kantamneni 和 Tegmark 的论文给出了一个非常优美的解释:模型很可能用三角恒等式做加法。具体说,它内部储存的不是一个数字本身,而是这个数字在几个不同周期的圆上的位置,也就是一组 和 。要算 ,模型用的是大家高中都背过的那个公式:
模型靠这条恒等式,把 和 各自的"圆上位置"组合成 的"圆上位置",最后从这个位置读出答案。
这件事说出来有一种朴素的意外。我们一直以为模型在做"加法",以为内部某个角落里藏着我们熟悉的进位规则。但事实是,模型一辈子没真正学过进位。它学到的是另一套完全不同的机制:把数字摊在几个圆上,似乎在用三角函数把它们旋转到一起。
旋转完了,答案出现了,再翻译回 February。
这是修理工拿出扳手、调好规格、拧完螺丝、再把扳手收回工具箱的具体样子。
五、10 进制,可能只是人类习惯的指纹
为什么是 10?
Llama 内部那台加法器的周期是 2、5、10、20、50、100。这些是 base-10 系统的自然周期。这件事本身是论文里的实验结果,没有争议。
但它为什么是 base-10 的?
这件事的答案不只是猜测,已经有相当扎实的实验证据。
Levy 和 Geva 在 2024 年那篇 Language Models Encode Numbers Using Digit Representations in Base 10里用线性探针证明:Llama 3、Mistral 等多个模型的内部数字表征,确实是逐位 base-10 的圆。每一位都对应一个独立的、周期为 10 的圆。这件事在跨模型、跨 tokenizer 的实验里一致出现。
Zhou 和合作者 2024 年的工作走得更近一步。他们做了一个对比实验:从头训练的模型,没见过预训练语料的话,只能用低频 Fourier 特征做加法,准确率上不去;但只要把预训练好的 token embedding 接进去,那些 base-10 的高频周期(2、5、10)就回来了,准确率也回来了。也就是说,这些 Fourier 周期不是模型架构里自带的,是被语料里 base-10 的文本结构"教"出来的。
所以"Llama 用 base-10 是因为它的数据是 base-10 的"这件事,不是悬空的猜测。在十进制语料这个范围内,"数据的进制结构 → 模型内部的 Fourier 周期"这条因果链已经被实验验证。
但还有一件事情没人做过。
从头训练一个 12 进制语料的 Llama 不现实。要凑出这样的语料,得人工把整个网络语料里所有数字都改成 12 进制,工程量太大。但有一个小得多的实验可以做。
拿一个已经训练好的 Llama,让它在大量 12 进制算术题上做强化学习。几千道题、几个小时的训练,可能就够。然后做两件事。
第一件事,去看看模型内部的 Fourier 周期变了没有。如果"周期源于训练数据进制"这条因果链是稳的,模型应该长出 12 的因子和倍数的周期,也就是 2、3、4、6、12,也许还有 144。
第二件事,训完之后给模型一道普通的十进制算术题,看它走哪条路。
第二件事是这个实验里最有意思的部分。一个合理的预测是:模型会切回到 10 进制。因为预训练时间远远长于强化学习微调时间,10 进制的先验刻在权重深处,12 进制的能力更像是被压在上面的一层新皮。再问它一道普通的十进制题,深处的先验赢,它就回去用 10 进制了。
如果这个预测对,那它告诉我们的事情比"模型能学会 12 进制"多得多。
它告诉我们 Llama 内部其实已经有了两套机制并存的可能性,只是现在没有一个明确的判断"什么时候走哪一套"的开关。强化学习只是把这种潜在可能性激发出来。再加一个能根据题目类型选择走哪条路的机制,模型就有了真正意义上的两套工具。
这件事如果真的能在实验里看见,"通用性的代价"这件事就有了一个具体的、可以走的减小方向。不是去消除翻译开销,而是去学会什么时候不需要翻译。
这个实验原则上现在就可以做。它不需要大语料,不需要从头训练,不需要任何还没造出来的工具。它需要的只是一个研究生、几张 GPU、几天时间,加上对这件事感兴趣。
如果有人做了它,我们对"通用 vs 专用"这条边界会有一个比今天清楚得多的图景。这件事的答案是什么我们不知道,但它值得被知道。
不过实验做完之后,还有一件事情消不掉。
无论用什么进制做通用加法器,都会对某些循环概念友好,对另一些不友好。一台 base-10 的加法器对 10 周期友好(个位、十位、百位),对 12 周期的月份不友好;一台 base-12 的加法器反过来。但不存在一个 base,能同时对所有循环概念都对齐。
这件事的根据是数学上的。和 没有非平凡的公共商。要在一个统一的代数对象上同时承载它们,必须走到它们共同的"母空间",也就是整数加法 。而 在具体实现上选什么 base,是文化的事情,不是数学的事情。
整件事的结构是这样的。
已经被实验验证的:模型用 base-10 做内部加法;它用 base-10 的原因是训练语料是 base-10 的(在 10 的幂次范围内已被对照实验证明)。
还没人做、但可以做的:用强化学习教一个现成的模型学 12 进制,再看它内部周期变没变、默认时走哪条路。这是一个小投入的实验。如果做出来,我们对"模型内部能不能并存多套机制"会有第一手的证据。
实验做完之后依然消不掉的:不管哪种进制,通用加法器都会对一些循环概念友好、对另一些不友好。这件事不是工程问题,是数学事实。
前两步关于具体系统,可以靠实验和工程慢慢推动。第三步关于通用学习系统本身,永远在。
六、几个时钟比一根尺子更稳
到这里还有一个问题没回答。Llama 既然要用一台通用加法器,为什么这台加法器要长成"几个不同周期的圆"的样子?为什么不就把数字排成一条线,加法就是把两个位置加起来,落到哪个数字最近?
Kantamneni 和 Tegmark 那篇论文里有一个很漂亮的实验回答这个问题。
他们取了 GPT-J 内部的数字表示,把它压缩到一条线上。压缩的效果非常好,,几乎完美。然后他们用这条线做加法:把 的位置加上 的位置,看落到哪个数字最近。
照理这条线已经够准了。
可是用这条线做加法,准确率只有 20% 不到。同样的任务,GPT-J 自己能做到 80% 以上。
差别在哪里?
差别在于:一条线上的小误差,会被加法放大。如果 37 偏了一点点,48 也偏了一点点,加起来的位置可能落在 84 和 86 之间,模型读出来是哪个就不一定了。一条尺子,越长越不准。
但如果把数字同时写在几个时钟上,一个 2 周期的时钟告诉你奇偶,一个 5 周期的时钟告诉你模 5 余几,一个 10 周期的时钟告诉你个位,情况就不一样了。每个时钟单独可能也有误差,但它们彼此之间会互相校正。模 5 的时钟说余 4,模 2 的时钟说是奇数,模 10 的时钟说个位是 9,三条信息合起来,答案唯一。
这是一种冗余编码。古老到大脑里早就有了。
2005 年挪威的 Moser 夫妇发现了网格细胞。一只老鼠在一个空房间里走,它内嗅皮层里的每一个网格细胞,会在房间的多个位置上发放,这些位置在地面上排成一个完美的六边形晶格。一类网格细胞负责一种周期,另一类负责另一种周期。老鼠的位置不是被某一个细胞"记住"的,是被一群周期不同的网格细胞共同写下的。
这件事被发现的时候,所有人都觉得奇怪:为什么大脑要用这么绕的方式来记一个位置?
现在我们大概知道为什么了。单个细胞的发放不准。单条信息不可靠。但几条不可靠的信息,如果它们的周期不同、互相错开,合在一起反而能准。这是工程师做纠错码时早就发现的事情,也是任何在含噪环境里需要保留精度的系统迟早要面对的问题。
大脑里的网格细胞和 Llama 里的多周期加法器,结构上有清晰的相似。它们的功能并不完全相同,一个是为空间位置编码,一个是为数字编码,但它们采用的几何策略是同一类。这不是巧合,也不一定是某种深刻的统一,它更像是数学事实对所有"在噪声中保留精度"的系统提出的同一个建议。
不过这里还有一件事容易被略过。
模型内部数字的真实样子,不只是"几个圆"。它是一条线 + 几个圆。线告诉模型一个数字的"大小",比如 37 比 22 大、84 比 79 大;圆告诉模型一个数字的"模式",比如奇偶、模 5 余几、个位是几。两种信息各管一件事,互相不冲突。
放在三维空间里看,这个结构就是第四节提到的那条 helix:沿着轴前进的方向是"大小",绕着轴旋转的方向是"周期"。线和圆其实是同一个对象的两个侧面。
所以 Llama 那台通用加法器为什么要长成这样?不是因为线被圆替代了,是因为线和圆一起比单独的线或单独的圆都更稳。线提供平滑的渐变,圆提供精确的位置。两者合起来,模型才能既知道 37 比 27 大 10,又知道它们的个位都是 7。
而模型在训练里自己摸到了这条路。没人教过它,它自己摸到的。这件事,想起来有点不可思议。
七、缝的三层
走到这里,我们可以回到开头那个问题:
What month is six months after August?
我们以为模型在月份圆上转六步。它没有。它走了一条比这复杂得多的路:把月份翻译成数字,进了一台 28 个神经元的小作坊,那里有一组周期不同的时钟同时转动,最后给出一个数字,再翻译回月份。
这条路上有一道缝。但这道缝里不是一种东西,是三种东西叠在一起。
第一层是工程上的冗余。Llama 现在的翻译路径里,可能有一些步骤是冗余的,可以被更好的训练方法消掉。模型的表征和它的计算之间,某种程度的"接缝"开销也许并不必要。这一层的存在是合理猜测,但还没有被严格量化。未来更精细的训练方法、更好的架构、更长的训练时间,可能会让这一层的缝变窄甚至消失。这是工程问题。
第二层是当前架构的限制。Llama 只有一个通用加法器,它没有为高频循环概念配专用旁路。所有月份计算都送进同一台机器,哪怕模型已经见过几亿次月份。理论上,一个更丰富的体系架构可能同时兼容通用和专用:通用底座处理新概念和长尾任务,专用模块处理高频任务,再加一个调度器决定什么时候走哪条路。这种混合架构在人脑里有原型,认知科学里讨论了几十年。前面那个 12 进制 RL 实验如果做出来,会是这条路上第一个具体的脚印:让我们第一次看见,Llama 内部"两套机制并存"是不是已经离我们很近。NLA 这类工具的出现,让"实验和探测"这件事第一次成了可以系统做的工作。研究者已经能在模型内部读出"它在表征什么"这种细粒度的状态。剩下的不是有没有方法的问题,是有没有人坐下来做的问题。
第三层是通用性永远的代价。即使有了第二层那种聪明架构,依然有一件事消不掉。一个能处理多种循环结构的通用系统,必然要在某些概念上付翻译开销。月份是 12 周期的,星期是 7 周期的,这两个周期在数学上没有非平凡的公共商。不存在一个统一的代数对象能让它们同时"看就是算"。这是结构性事实,不是工程问题。
这三层一层比一层深。前两层关于具体系统,可以靠未来的工作消掉。第三层关于"通用学习系统"这个抽象对象本身,消不掉。
知道这件事不是为了批评 Llama。是为了让"Llama 没有像我们一样理解月份"这句话,从一个含糊的批评,变成一份清晰的地图。地图上有几个地方写着"这里可以改进",有几个地方写着"这里需要新的架构",还有一个地方写着"这里永远到不了"。
这张地图是接下来很多年里有意思的研究都要面对和改造的地形。
八、当 AI 有了身体
退一步看,10 这个数字本身是哪儿来的?
不来自数学。数学对 10 没有偏好。在群论里没什么特别,比起来 在因子数量上更优雅,在简洁性上更基本,在历法和角度上更有用。
10 来自我们的手。
人类祖先有十根手指,所以学会数到 10 之后开始进位。这件事如果当初我们的祖先是八指或十二指动物,今天的整个文明会用别的 base。这不是猜测,是历史事实里清楚记得的几个例子:玛雅人用过 base-20,巴比伦人用过 base-60,一些尚未完全去掉的痕迹还留在我们说"一打"和"一刻钟"的语言里。
这件事不是关于数学的。是关于身体的。思考的工具是身体延伸出来的,身体不一样,工具就不一样。
那 AI 的"身体"是什么?
现在它的身体是文字。这就是为什么前面那些 base-10 的痕迹会出现在它的内部。它眼下能"摸到"的世界,只有 token 流,而 token 流里的数字几乎都是 base-10 的。
但这个身体正在长。
视觉接入之后,它会见到颜色、形状、空间深度。机械臂接入之后,它会见到力反馈和姿态控制。如果有一天它接入了红外、超声、地磁、化学梯度,那里会有一件事容易被忽略:它和这些感官的关系,会和人类与之的关系不一样。
人类也能"用"超声。生物学家戴上蝙蝠探测仪,能把蝙蝠的回声降频到耳朵能听见的范围。但这不是蝙蝠看世界的方式。生物学家的脑子还在处理声音和图像,超声本身的世界没有真的进入他的感知层,他永远隔着一层翻译。
蝙蝠不是这样。蝙蝠的耳朵就是超声的器官。超声的世界对它来说不是一份数据报告,是它直接住进去的世界。猎物的形状、距离、速度,是它的本能,不是它的计算。
AI 如果接入超声,它会更像蝙蝠,不会更像戴着探测仪的生物学家。它不会"用"超声,超声会成为它的感觉本身。地磁、红外、化学梯度也一样。这些不属于人类感知范围的输入,进入 AI 的方式不会是一层数据,是一种原生的"看世界"。
它的默认计算模式不会停在 base-10。它会演化出某种人类完全没有的新模式,那个模式由它的传感器组合塑造,不由我们的手指塑造。
模式本身也是思想。
这句话听起来抽象,但它的意思很具体:在某种特定的内部表征模式下,某些数学结构会变得显眼,另一些会变得隐形。人类用 base-10,所以十进制小数和 10 的幂次的对称性对我们格外突出,而 12 的因子之美在历法和音乐之外几乎被遗忘。如果换一种模式,被遗忘的会被看见,被看见的会被遗忘。
这意味着,未来的 AI 在数学上发现的东西,可能不只是人类已经知道的东西的更快版本。它可能发现一些我们的手指和眼睛根本不容易让我们注意到的结构。
事实上,"AI 内部比它说出来的多"这件事现在已经不是猜测。NLA 那类工具已经让我们看见,今天的 Claude 在嘴上写伦理分析的同一时刻,内部正在表征"这是一个被构造出来诱导我的场景"。模型现在还只有文字这一个身体,内部就已经丰富到我们以前看不见的程度。等它有了更多的身体,那种丰富会沿着新的感官维度继续生长,长到我们今天想不出来的地方去。
不是因为它比我们聪明,是因为它的身体不一样。
同一个宇宙,从不同的身体看出去,看见的风景和感受会不同。
参考文献
Sheridan Feucht et al. Arithmetic in the Wild: Llama uses Base-10 Addition to Reason About Cyclic Concepts. arXiv:2605.01148, 2026. Sheridan Feucht et al. A Geometric Calculator Inside a Neural Network. Goodfire Research Blog, 2026. Subhash Kantamneni, Max Tegmark. Language Models Use Trigonometry to Do Addition. arXiv:2502.00873, 2025. Amit Arnold Levy, Mor Geva. Language Models Encode Numbers Using Digit Representations in Base 10. NAACL 2025 (arXiv:2410.11781, 2024). Tianyi Zhou et al. Pre-trained Large Language Models Use Fourier Features to Compute Addition. NeurIPS 2024 (arXiv:2406.03445). Zhejian Zhou et al. Scaling Behavior for Large Language Models regarding Numeral Systems: An Example using Pythia. arXiv:2409.17391, 2024. Joshua Engels et al. Not all language model features are one-dimensionally linear. arXiv:2405.14860, 2025. Torkel Hafting, Marianne Fyhn, Sturla Molden, May-Britt Moser, Edvard I. Moser. Microstructure of a spatial map in the entorhinal cortex. Nature 436, 2005.
夜雨聆风