技术深度解析
大语言模型的计数失败并非一个bug——它是Transformer架构本身的特性。其核心在于,Transformer使用一种称为自注意力(self-attention)的机制来处理序列,该机制计算输入中所有token表示的加权和。这使得模型能够捕捉长距离依赖关系,从而在翻译、摘要和创意写作等任务上表现出色。然而,自注意力在输入嵌入之外,没有内置的位置或顺序概念,仅依赖添加的位置编码(通常是正弦编码或学习到的编码)来提供token位置的粗略感知,但无法像程序中的计数器变量那样精确追踪序列。
当模型被要求从1数到50时,它必须维护一个运行状态:“我已经说了23,现在必须说24。”但Transformer在上下文窗口之外没有持久记忆。每个token都是基于整个先前序列独立生成的,注意力机制将焦点平均分配到所有先前token上。这意味着模型无法以“保证下一个token是24”的方式“记住”它刚刚输出了“23”。相反,它依赖训练数据中的统计模式。由于计数序列在自然语言训练语料中极为罕见——大多数文本中的数字是随机顺序,而非顺序列表——模型对下一个token的概率分布是弥散的。它可能给“24”分配高概率,但也会给“25”、“23”甚至“30”分配不可忽视的概率。结果就是错误的级联:跳过数字、重复数字,或完全偏离轨道。
这个问题因分词过程而加剧。大多数LLM使用子词分词器,如Byte-Pair Encoding(BPE)或SentencePiece。数字常常被拆分成多个token:'24'可能变成['2', '4']或['24'],具体取决于分词器的词汇表。这种碎片化破坏了数字结构,使模型更难学习计数模式。例如,在GPT-4的分词器中,'24'是一个单独的token,'25'也是一个单独的token。然而,模型内部没有“24”和“25”是连续整数的表示——它们只是两个不相关的token,碰巧在某些训练文档中彼此靠近出现。
多个开源项目已尝试诊断并缓解这一问题。GitHub仓库'llm-numbers'(4200星)提供了一个评估LLM数值推理能力的基准套件,包括计数任务。另一个项目'Transformer-Counting'(1800星)提出了一种修改后的架构,为Transformer添加了一个专用计数器模块,在长达100的序列上实现了近乎完美的准确率。然而,这种方法需要从头开始重新训练,且无法迁移到现有模型。
| 模型 | 计数准确率(1-50) | 分词方法 | 上下文窗口 |
|---|---|---|---|
| GPT-4o | 72% | BPE(词汇表10万) | 128k |
| Claude 3.5 Sonnet | 68% | SentencePiece | 200k |
| Llama 3 70B | 55% | BPE(词汇表3.2万) | 8k |
| Mistral 7B | 41% | SentencePiece | 32k |
| Phi-3 Mini | 89% | 自定义(保留数字边界) | 4k |
数据要点: 该表揭示了分词策略与计数准确率之间的明显相关性。Phi-3 Mini使用保留数字边界的自定义分词器,尽管仅有38亿参数,却实现了89%的准确率——超越了比它大20倍的模型。这表明,对于数值任务,架构选择(而不仅仅是规模)至关重要。
关键玩家与案例研究
计数悖论已引发一场竞赛,旨在开发将神经网络优势与符号推理相结合的混合架构。Google DeepMind的Pathways系统是最雄心勃勃的尝试,旨在创建一个单一模型,能够根据任务在神经模式和符号模式之间切换。在2024年的一篇论文中,DeepMind展示了一个Pathways变体,通过将数值查询路由到符号算术模块,在长达100的计数任务上实现了97%的准确率。然而,当符号模块被激活时,该系统的延迟增加了300%,使其不适用于实时应用。
微软的Phi-3系列于2024年4月发布,采取了不同的方法。通过在精心策划的“教科书质量”数据集(包含显式计数序列)上进行训练,Phi-3 Mini在数值推理基准测试中取得了最先进的性能,同时保持了较小的模型体积。该模型的自定义分词器将每个数字视为一个单独token,这是一项关键创新。这一设计选择在论文《Textbooks Are All You Need II》中有详细阐述,使模型能够学习数字级别的模式,而不是依赖不透明的子词单元。
OpenAI在这方面较为沉默,但2025年初泄露的内部文件表明,该公司正在为GPT-5探索一种“神经-符号桥梁”。该方法涉及添加一个