技术深度剖析
大语言模型数不清豆子,并非表面上的小故障——它是Transformer架构的直接后果。GPT-4、Claude、Gemini等LLM的核心是下一个词元预测机器。它们处理输入文本,计算词元间的注意力模式,输出一个覆盖整个词表的概率分布。模型选择最可能的下一个词元,而非数学上正确的那个。这种概率机制在语言生成上表现出色,因为自然语言本质上是模糊且依赖上下文的。但算术恰恰相反:它要求精确性。2+2必须永远等于4,而不是以95%置信度等于3.999。
当被要求数豆子时,模型并不会逐个遍历豆子并递增计数器。相反,它依赖训练数据中学到的模式:带有“500颗豆子”标签的罐子图片,或写着“这个罐子里大约有300颗豆子”的文本片段。模型在近似、在估算、在猜测——但它从未执行顺序的、确定性的计数操作。这就是为什么LLM有时能给出看似合理的数字,却在简单变体上灾难性失败,比如数不同颜色的豆子或部分被遮挡的豆子。
2024年,来自苹果公司和加州大学伯克利分校的研究人员对多个模型进行了这一现象的分析。他们发现,在简单的计数任务(例如“数出字符串'ABACADABRA'中字母A的个数”)上,准确率从短字符串的接近完美,骤降至超过20个字符字符串的低于50%。这些模型表现出一个清晰的模式:当答案是常见数字(如3或5)时它们能数对,但在非标准计数(如7或11)上失败。这是因为常见数字在训练数据中出现频率更高,给了模型一条统计捷径。
| 模型 | 计数准确率(10项) | 计数准确率(50项) | 计数准确率(100项) |
|---|---|---|---|
| GPT-4o | 92% | 68% | 41% |
| Claude 3.5 Sonnet | 89% | 62% | 35% |
| Gemini 1.5 Pro | 85% | 55% | 28% |
| Llama 3 70B | 78% | 48% | 22% |
| Mistral Large | 80% | 52% | 25% |
数据要点: 表格揭示了一个清晰的退化模式:随着项目数量增加,所有模型的准确率都急剧下降。GPT-4o领先,但在100项计数任务中仍有59%的失败率。这不是规模问题——即使最大的模型也无法执行精确计数,因为它们缺乏迭代、有状态计算的架构机制。
多个开源项目正试图解决这一问题。"MathCoder" 仓库(GitHub,约3200星)微调LLM以生成并执行Python代码进行数学推理,实质上是将算术外包给确定性解释器。另一个项目 "SymbolicAI"(GitHub,约1800星)提出了一个将神经网络与符号推理引擎交织的框架,允许模型调用外部工具进行精确计算。这些方法显示出前景,但引入了延迟和复杂性,限制了实时应用。
关键玩家与案例研究
修复LLM数值推理的竞赛吸引了主要玩家和创新型初创公司。各家公司采取不同方法,从纯规模扩展到混合架构。
OpenAI 间接承认了这个问题。他们的GPT-4o模型包含一个“代码解释器”模式,可为数学任务生成并执行Python代码。当用户要求GPT数豆子时,模型可以编写一个Python脚本,使用循环来计数列表中的项目。这效果不错,但仅在用户明确启用该功能且任务基于文本时有效。对于视觉计数(例如数图片中的豆子),模型仍然失败,因为它无法将图像解析为离散对象。
Google DeepMind 正通过其 AlphaGeometry 和 FunSearch 项目走一条不同的道路。这些系统将LLM与符号搜索算法相结合。例如,FunSearch使用LLM生成候选数学函数,并由符号评估器验证其正确性。这种神经符号方法在复杂数学问题上取得了最先进的结果,但计算成本仍然高昂且任务特定。
Anthropic 专注于可解释性和安全性,但他们的Claude模型表现出同样的计数限制。Anthropic关于“机制可解释性”的研究表明,Transformer中的注意力头可以在有限上下文中学习计数(例如,统计一个单词在句子中出现的次数),但当计数超过模型的上下文窗口或项目未被清晰分隔时,这种能力就会崩溃。
| 公司 | 方法 | 优势 | 劣势 |
|---|---|---|---|
| OpenAI | 代码解释器(Python执行) | 基于文本的计数准确率高 | 需要用户激活;视觉输入失败 |