![](https://s5-media.51cto.com/aigc/pc/static/noavatar.gif)
啊!DeepSeek-R1、o3-mini能解奥数题却算不了多位数乘法? 精华
我们都知道,普通大模型的数学能力并不好,甚至可能会搞不清楚 9.8 和 9.11 哪个大。但随着 o1、o3 以及 DeepSeek-R1 等推理模型的到来,情况正在发生变化。比如 DeepSeek-R1 在竞赛数学基准 AIME 2024 上达到了 79.8% 的准确度,成就了自己头号开源推理模型的地位。
而根据 OpenAI 发布的数据,o3-mini (high) 在 AIME 2024 上的准确度更是达到了 87.3%,预计 o3 满血版的成绩还会更好。
但即便如此,这些强大的推理模型却依然常常在一类看起来相当简单的数学问题上栽跟头,那就是简单的乘法算法,尤其是多位数乘法。
去年 9 月,滑铁卢大学助理教授邓云天(Yuntian Deng)在 𝕏 上分享了自己的一个实验结果:通过让 o1 计算最多 20x20(20 位数乘 20 位数)的乘法,发现该模型到 9x9 乘法之后准确度就不好看了,而 GPT-4o 更是在 4x4 时就会难以为继。
以下是详细结果:
前两天,邓云天又分享了 o3-mini 的「多位数乘法考试」成绩。结果嘛,确实相较于 o1 有进步,但当位数超过 13 位时,准确度表现依然会严重下滑。
以下是详细结果:
看起来,至少在多位数乘法任务上,非智能的计算器比推理大模型更可靠。
看到这个消息后,机器之心也去试了试 DeepSeek-R1 能否计算多位数乘法。首先,我们尝试了让两个随机写的 9 位数相乘:456347891 乘以 390869523 等于多少?令人惊讶的是,DeepSeek-R1 在思考了足足 240 秒之后成功给出了正确答案。
接下来我们又试了两个 15 位数的相乘:569815324865789x698437369846583=?
这一次 DeepSeek-R1 思考的时间却更短,为 114 秒,但给出了一个很接近但依然错误的答案。
根据计算器的结果,正确答案应该是 397980316797537914439995248987。
可以看到由于「服务器繁忙」,我们在这里尝试了 4 次才成功获得响应;而在另一次使用更加稳定的火山方舟 API 版 DeepSeek-R1 的尝试中,还得到了另一个不同的结果:397816402510166516760347336987。
所以,LLM 真没有能力正确执行多位数乘法吗?
并不一定,转折马上就来了。
就在上面那条推文之下,微软研究院研究科学家、威斯康星大学麦迪逊分校副教授 Dimitris Papailiopoulos 表示这个问题已经解决了。
他领导的一个研究团队发现,不管是乘法,还是加法、迷宫求解和从易到难的泛化,都可以基于标准的 Transformer 加以解决,方法就是使用「递归式自我提升」。
下面是一个小模型教自己加法时的准确度表现:
Transformer 果真是神一样的发明:Attention Is All You Need!
下面我们就来看看 Papailiopoulos 团队究竟得到了什么发现。
- 论文标题:Self-Improving Transformers Overcome Easy-to-Hard and Length Generalization Challenges
- 论文地址:https://arxiv.org/pdf/2502.01612
Transformer 的长度泛化问题
基于 Transformer 的语言模型取得成功已经无需多谈,它们已经有能力解决大量不同类型的任务。但是,它们在长度泛化(length generalization)方面依然有着巨大的局限性。也就是说,模型很难将自己的能力外推到比训练期间见过的序列更长的序列。
就比如简单的算术任务,一般的使用自回归目标训练的标准 Transformer 使用的训练数据通常位数不多,当出现高位数算术运算时,这些模型常常表现不佳。
之前也有不少研究者试图解决这个问题,采用的方法包括改用位置嵌入、修改架构、修改数据格式等。
不过,这些方法虽然在受控的实验环境中很有效,但却与 LLM 实际的训练方式不兼容。原因也很简单,这些修改方式都是针对具体任务实现的,我们不清楚这些修改能在多大程度上或以什么方式迁移到通用设置。
解决方案:递归式自我提升
为此,Papailiopoulos 团队研究了 Transformer 展现出的一个有趣现象:transcendence,也就是「超越性」。
简单来说,超越性是指学生模型在训练期间泛化超过教师模型提供的数据难度的能力。2024 年 OpenAI 与哈佛大学等机构的一篇论文《Transcendence: Generative Models Can Outperform The Experts That Train Them》最早描述了这一现象。
具体来说,在任务的简单实例(例如 n 位算术运算)上训练的模型有时可为稍微困难的实例(例如 n + 1 位算术运算)生成正确的输出。
Papailiopoulos 团队利用这一现象构建了一个自我提升框架,其中模型可以迭代地生成自己的训练数据并递进地学习更困难的示例样本。下图展示了该团队的自我改进流程:
在 AI 领域,自我提升并不是一个新鲜词汇。通常来说,为了保证数据质量,自我提升大都需要外部验证器、弱监督或过滤机制。下面展示了实验中采用的两种数据过滤方法。
该团队的研究表明:在这个框架下,极端的长度泛化确实是可能的,而无需对基础 Transformer 架构进行任何修改。对于反向相加和字符串复制等任务,自我改进无需显式的数据过滤即可成功。然而,对于乘法和寻找迷宫最短路径等更难的问题,没有数据过滤的自我改进会因错误累积而失败。他们的研究表明,简单的过滤技术(例如长度过滤和多数投票)足以保持数据质量,并可实现大幅超越其初始训练分布的自我改进。
不仅如此,该团队还发现,自我改进不仅限于长度泛化,还可以实现从易到难的泛化,即在简单任务上训练的模型无需额外监督即可成功学习更难的任务。值得注意的是,该方法并没有引入新的自我改进框架,而是展示了其在各种算法任务中的有效性。
此外,他们还研究了自我改进的动态,并得到了以下发现:
首先,控制从弱到强的历程非常重要,因为为了避免灾难性失败,模型需要结构化的难度调度计划。
第二,自我改进会随着时间的推移而加速,因为更困难的示例样本会带来越来越大的好处,在某些情况下会实现指数级的外推。
最后,如果从预训练模型开始,可以显著加快自我改进速度,从而比使用从头开始训练的模型更快地实现泛化。
该团队总结说:「我们的研究结果提供了证据,表明对于长度泛化和从易到难泛化,学习自我改进是一种通用且可扩展的解决方案。」
那么,Transformer 大模型能做多位数乘法了吗?
回到最开始的问题,如果使用自我改进,基于 Transformer 的大模型能就能做多位数乘法了吗?
先来看看实验结果,当组合使用多数投票与长度过滤时,31 轮提升后,实验模型能在 9 位数以内的乘法上达到近乎完美的表现。
而如果使用该团队精心设计的一种自我改进调度方案,提升速度还能大大提升:在 19 轮内就能在 10 位数以内的乘法上达到近乎完美。
不过,或许是实验成本方面的考虑,该团队并未实验更多位数的乘法。但至少从趋势上看,这种自我提升策略确实是可行的。
那么,问题来了:现在的大模型已经开始有能力使用工具了,对于这样的算术运算,为什么不直接让大模型调用一个计算器应用呢?
对此,Dimitris Papailiopoulos 给出的答复是可以研究 Transformer 可以如何学习算法以及如何让 Transformer 在比其训练数据更困难的数据上取得更好的表现。
本文转自机器之心 ,作者:机器之心
![](https://s5-media.51cto.com/aigc/pc/static/noavatar.gif)