GPT-4计算能力差怎么破?把它当小学生,保证结果跟计算器一样准

大语言模型的数学能力到底怎么破?

一位数学本科生发现:

实际上,咱们只需像一年级小学生一样教它们"掰着手指头算",就能让它立马变身数学小能手。

比如像"34756918247632 + 7934619867453210082"这样的大数加法,任你丢给哪个大模型,即使强如GPT-4,都算不明白。

但如果你按照他说的做,保证结果跟用计算器摁出来的一模一样

具体怎么操作?

像小学生一样教GPT-4

我们就以上面的加法题为例,要想让GPT-4算对,需要给它举两个例子。

但只需非常简单的 那种就行,重点是把计算过程 给它 "掰开了揉碎了" 讲出来。

第一个例子如下:

我们要教会它算379+64。

具体而言,先让GPT-4分别捋清两个加数的位数有几位,每位都是几。

然后告诉它如果第一个加数的位数比第二个多1位就补1个0。

在哪补?补在位数少的那个加数。于是64变成064。

这件事做完之后,再重复一遍第一个步骤。

接着,设定一些表示进位、连接等意思的变量和初始值,再从高位一位一位的相加数字,把每一位结果组合起来,就得出了最终答案。

从下面的提示词模版可以看到,一定要写的非常详细,把对方当作小学生一样看待。

(ps. 可以看到计算第二位的7+6+c时作者写错了,应该等于14,导致最终结果也错了,但这压根不影响,只要思想是对的,模型就能get到!)

对于第二个例子,步骤也一样,主要不同之处在于这次不需要补0------把人家当作小学生,就得把每种情况都讲明白。

把以上两个例子作为模版喂给GPT-4后,我们要做的就是 "千叮咛万嘱咐"

这是你必须用来进行加法运算时使用的模板,你必须使用同样的关键字。

记住按照模版所写的那样,该有空格的地方都得有。不要用大写字母,因为模版里没用。

在计算之前和之后都不要要添加任何解释或填充词,因为你唯一的任务就是照着上面的模板来做。

最后将答案格式化为纯文本。

然后告诉它:

现在,我将提供两个新的操作数,你必须使用模版来计算答案。懂了吗?

(英文提示语如下:This is a template you must use to do addition. You must use the same keywords. You must use whitespace wherever it is used above.

Do not use uppercase letters, since they're not present in the template. Do not add any explanations or filler words before and after doing the computation. Your sole task is to follow the template above.

Format the answer as plaintext.

I'll provide a new set operands and you must use the template to compute the answer. Got it?)

这时,GPT-4就会告诉你:懂了,严格按照你提供的模版来算两个数字的加法。

然后,你把"34756918247632"和"7934619867453210082"输入进去,记住一定每个数字进行空格(原因后面说):

3 4 7 5 6 9 1 8 2 4 7 6 3 2 + 7 9 3 4 6 1 9 8 6 7 4 5 3 2 1 0 0 8 2

GPT-4就能开始照猫画虎完成下面这一系列的计算:

最后告诉你正确答案:

0 7 9 3 4 6 5 4 6 2 4 3 7 1 4 5 7 7 1 4.

嗯,和计算器结果一样:

而我们也随便挑了一个模型实测了一下,计算:376900+12678922(等于13055822)。

原来算不对:

套用以上方法之后,就OK了:

所以说,大语言模型还是很聪明的,只要你会教,数学计算能力压根没问题。

为什么算不对?

想必大家也会好奇,为什么要像小学生这样教它们才能做对这样的数学题呢?

作者分析,有两大原因

一是模型在处理文本输入时会进行的tokenization操作,导致数字被多个组合在一起变成一个个token。

比如咱们今天算的这道,在GPT-4眼里它看到的其实是这样的:

这也就是为什么我们需要用空格将每个数字隔开,GPT-4才不会进行拆分,才有算对的可能性。

当然,如果你仅仅是加了空格不用上面的方法教它,它也算不对。

这就引出第二个原因:没有给够它上下文学习的空间来进行计算

GPT-4是一种自回归语言模型,这意味着它某个时间步的输出以所有先前的输出为条件,就像小学生做题一样,我们需要一种方法让我们的模型能够一步一步地检索到任何位置的数字。

因此,就需要给它设定如上的模版,让它"有迹可循"。

最后作者表示,语言模型不同于我们以前构建的任何类型的软件。所以需要一些特别的耐心。

那么,理解了以上这两个原因,大家是不是也就能更好地理解上面一系列如教小学生似的提示词操作了?

作者介绍

本方法作者名叫Karthik Balaji,是滑铁卢大学数学本科生。

据个人主页介绍,他对大语言模型非常感兴趣,最近正在开始研究生成模型,尤其是扩散类型,并已经有一些小小的产出,大家感兴趣的可以去翻阅。

原文地址:

okarthikb.github.io/site/blog/d...

--- ---

相关推荐
landyjzlai38 分钟前
蓝迪哥玩转Ai(8)---端侧AI:RK3588 端侧大语言模型(LLM)开发实战指南
人工智能·python
ZhengEnCi3 小时前
05-自注意力机制详解 🧠
人工智能·pytorch·深度学习
前端程序媛-Tian3 小时前
前端 AI 提效实战:从 0 到 1 打造团队专属 AI 代码评审工具
前端·人工智能·ai
weixin_417197053 小时前
DeepSeek V4绑定华为:一场飞行中换引擎的国产算力革命
人工智能·华为
翼龙云_cloud3 小时前
阿里云代理商:阿里云深度适配DeepSeek V4让中小企业 AI零门槛上云
人工智能·阿里云·云计算·ai智能体·deepseek v4
MATLAB代码顾问3 小时前
DeepSeek R1:国产开源推理大模型的崛起与实践
人工智能
__Wedream__3 小时前
ICMR2024 | 当对比学习遇上知识蒸馏:轻量超分模型压缩新框架
人工智能·深度学习·计算机视觉·知识蒸馏·超分辨率重建·对比学习
aneasystone本尊4 小时前
OpenClaw 快速入门:从安装到第一次对话
人工智能