Transformer 大模型也能做多位数乘法?递归式自我提升或为关键

大型语言模型在多位数乘法上表现不佳,但“递归式自我提升”方法有望解决这一问题,让 Transformer 模型也能进行复杂的数学计算。

原文标题:啊!DeepSeek-R1、o3-mini能解奥数题却算不了多位数乘法?

原文作者:机器之心

冷月清谈:

大型语言模型(LLM)在数学推理方面取得了显著进展,例如 DeepSeek-R1 和 OpenAI 的 o3-mini 在美国数学邀请赛(AIME)等基准测试中取得了高分。然而,它们在看似简单的多位数乘法上却经常出错。研究表明,o1 和 o3-mini 在处理超过十位的乘法时,准确率会急剧下降。DeepSeek-R1 虽然能正确计算 9 位数乘法,但在 15 位数乘法上却给出了错误答案。这引发了关于 LLM 数学能力的讨论,以及它们是否能像计算器一样可靠地执行基本算术运算。

不过,微软研究院和威斯康星大学麦迪逊分校的研究人员提出了一种名为“递归式自我提升”的解决方案。该方法利用 Transformer 模型的“超越性”,即在简单示例上训练的模型可以生成更难示例的正确输出。通过迭代地生成自己的训练数据并逐步学习更难的示例,模型可以克服长度泛化问题,并在多位数乘法等任务上取得显著改进。实验结果表明,这种方法可以使模型在 9 位数以内的乘法上达到近乎完美的表现,并在更少的迭代轮数内在 10 位数乘法上取得类似的成果。这一发现为解决 LLM 在长度泛化和从易到难泛化方面的挑战提供了新的思路。

怜星夜思:

1、如果大模型可以通过自我提升来掌握多位数乘法,那么这种学习方法能否推广到其他数学领域,例如微积分或线性代数?
2、文章提到大模型可以使用工具,例如计算器。那么,在什么情况下让大模型自己学习算法比使用工具更有效?
3、“递归式自我提升”方法依赖于模型的“超越性”。这种“超越性”是如何产生的?它是否具有普遍性,还是只存在于某些特定类型的模型中?

原文内容

机器之心报道

编辑:Panda

我们都知道,普通大模型的数学能力并不好,甚至可能会搞不清楚 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://x.com/yuntiandeng/status/1889704768135905332
https://x.com/DimitrisPapail/status/1889747709491351734

© THE END 
转载请联系本公众号获得授权
投稿或寻求报道:[email protected]

兄弟,格局小了!搞个大模型出来,就为了算个微积分?不如想想怎么用它来证明黎曼猜想,那才叫牛逼!

关于这个问题,目前的研究还没有给出确定的答案。一种可能的解释是,“超越性”源于模型对数据的泛化能力。当模型在简单示例上训练时,它会学习到一些潜在的规律和模式,这些规律和模式可以帮助它解决更难的示例。至于“超越性”是否具有普遍性,还需要更多的研究来验证。

关于这个问题,我觉得很有可能。文章中提到的“递归式自我提升”方法的核心在于让模型逐步学习更复杂的例子。如果能找到合适的训练数据和评估方法,这种方法理论上可以应用于任何数学领域。比如,可以先让模型学习简单的微分方程,然后逐步增加难度,最终使其能够解决复杂的微积分问题。

我觉得这取决于具体的应用场景。如果是在一个高度受限的环境中,例如嵌入式系统,那么让大模型自己学习算法可能更有效,因为这样可以减少对外部工具的依赖。但如果是在一个资源丰富的环境中,例如云服务器,那么使用工具可能更方便快捷。

我个人认为,“超越性”可能与模型的架构和训练方法有关。Transformer 模型具有强大的表示学习能力,这可能是它展现出“超越性”的原因之一。此外,合适的训练方法,例如课程学习,也可能有助于提升模型的“超越性”。

这么说吧,老大让我算个1+1,我掏出计算器按一下,老大不得骂死我?有些时候,显得自己聪明点比实际结果更重要。

这个问题的核心在于效率和灵活性。如果只是简单的计算,调用计算器当然更快更准确。但如果涉及到更复杂的场景,例如需要根据上下文理解问题并进行推理,那么让大模型自己学习算法可能更有效。因为这样可以避免在不同工具之间切换的 overhead,并且可以更好地结合模型自身的知识和推理能力。

这个问题嘛,就像问人类的创造力是怎么来的,很难解释清楚。也许是天生的,也许是后天培养的,谁知道呢?

我觉得这个想法很有意思,但实际操作起来可能会有难度。微积分和线性代数比多位数乘法复杂得多,涉及的概念也更加抽象。简单的“递归式自我提升”可能不足以让模型掌握这些复杂的数学知识。可能需要结合其他方法,例如符号计算或逻辑推理,才能取得更好的效果。