2.6 数学运算
在前几章中,我们分别认识了用正向表述来排除内容、 JSON 法提取信息、知识生成的特殊方法以及文章生成的正确方式等,这些面向特定问题的优化方法。而在这章中,我们将一起来认识面向数学运算的优化方法。
GPT 与数学运算
在我们的日常生活学习中,数学运算可谓无处不在。如果你不是身处创意文学等领域,那么很大一部分 GPT 的需求都会涉及到数学运算。然而,数学运算一直是 GPT 模型的薄弱环节,甚至是 AI 失败的例子中最常被提及的一个。比如,GPT 甚至无法保证最简单的加法计算100%正确,对于更复杂的数学题目,错误解答的几率更大。
我们之前已经多次强调,GPT 生成内容往往是根据模型权重作出的「猜测」,而非真正的思考。因此,虽然它有时能轻松应对复杂任务,但最简单的计算却可能使它碰壁。这是因为它并非真正地进行计算,而只是在预测最可能的结果。
然而,对于数学运算来说,不能仅凭「猜测」得出正确结果,因为数学运算通常都有明确的解题步骤和答案。在诸如工程、数据科学和物理学等众多领域,正确的数学计算结果是至关重要的,稍微的偏差都可能产生严重的后果。以工程设计为例,错误的数学计算可能导致结构问题,进而引发安全隐患。
随着模型的发展,现在这个问题已经得到了很大改善,至少简单的运算 GPT-3.5 大概率不会出错(吧),但只要无法保证 100% 的准确率,不仅是复杂的数学问题,甚至日常的数学计算,我们也不敢放心交给它处理。这个问题的优化基本只能靠模型算法本身的迭代,但我依然可以教给你两个方法,可以有效提高 GPT 回答数学运算问题的准确度。
让 AI 正确地进行数学运算
AI 在进行数学计算和数学题解答方面的表现,一直都是大型语言模型的弱点。虽然 GPT-4 已经通过大幅度地改进,对此问题有所缓解,但是仍有可能给出错误的答案。然而,有一种优化方法可以显著改进GPT在数学计算方面的问题,就是将计算问题转化成 GPT 擅长的格式处理。
具体来说,我们可以使用两种方法:一是将数字转化为变量,二是将问题转换为 Python 代码。
方法一:数字转化为变量
首先,我们可以通过提问 GPT 来获取解决数学问题的相关公式。例如,我们可以问 GPT:「解决这道问题需要的公式有哪些?」接下来,可以手动指定数字变量,这一步也可以交给 GPT,例如:「将题目中涉及的数据代入公式」。最后,让 GPT 根据公式计算出结果。
可以看到如果不使用这个方法,答案真的很离谱,不过起码可以让你知道肯定是错的。先问公式再代入变量之后,就能够获得正确的答案了,这里答案是秒,GPT 单位给错了。
使用这种方法,GPT 可将复杂的数学运算转换为其更专长的逻辑和语言处理任务,从而显著提升计算结果的准确度。在过去 GPT 通常会直接回答这类问题,但现在会先给出问题所使用的公式,然后再进行解答。如今,当向 GPT 提出数学运算类的问题时,OpenAI 官方也会采用类似的优化策略。
如果你的问题未能触发官方的优化,或你不想采用试错方式,仍可手动使用这种优化方式。
方法二:将问题转换为 Python 代码
另一个方法是我们先让 GPT 将数学问题转化为对应的 Python 代码,再让 GPT 给出 Python 代码的输出。例如:「将题目转换为相对应的 Python 代码,然后输出运行结果。」
利用这种方法,GPT 可以利用其强大的代码生成和解析能力,将复杂的数学运算转化为计算机程序代码,然后直接输出计算结果,从而提高结果的准确性。这里的 Python 可以替换为任何你喜欢的编程语言,这样如果 GPT 回答错误,你还可以手动复制代码运行得到结果,目前截图里面的代码运行结果是正确的。
当然,这两种方法的优化效果在很大程度上取决于问题在数据库中的出现频率。GPT 具有一个用户体验不佳的特性——嘴硬。尤其对于数学运算问题,GPT 往往会坚持一个答案,无论是否正确。你每次质疑,在当时它会道歉,但再问,仍会给出同样的错误答案,仿佛在说,「我错了,下次还敢」。因此,如果你的需求涉及数学运算,并要求高精确度,且 GPT 能显著提高你的问题解决效率,那么你可能需要开通 ChatGPT Plus,采用下面的这种更有效的方法。
让 GPT 借助 Wolfram Alpha 进行运算
对于 GPT 回答数学运算这类特定问题,我们有一种终极解决办法,可以将准确度提高到完全放心使用的水平,那就是使用 Wolfram Alpha 插件。
Wolfram Alpha 是由 Wolfram Research 开发的一种在线计算引擎,与一般的搜索引擎不同,它更像一个「计算知识引擎」。用户可以在其中输入各种问题,从数学题目、物理公式、化学反应式,甚至是财务、人口统计等问题,Wolfram Alpha 都可以尝试提供解答,可以说 Wolfram Alpha 就是普通人解决相对复杂的数学运算问题最好用的工具了。
Wolfram Alpha 有个缺点,就是不支持中文输入,而且对于输入的格式也有一定的要求。但是,Wolfram Alpha 插件配合 GPT 就能将它的威力完全发挥出来。
您可以自如地用口语表达自己的问题,即是使用中文也没有问题。而 GPT 不仅仅是将内容直接转发给Wolfram Alpha,它还会自主「思考」,在合适的时机才将问题转交给 Wolfram Alpha。这种方法既保证了问题解决的灵活性,也保障了问题在解决时的运算准确性。
这个方法几乎唯一的缺点就是需要 GPT-4,或者说是你需要开通 ChatGPT 的 Plus 会员(至少目前是这样的)。除开这个,在数学运算这个问题类型上,它的表现近乎完美。
总结
对于 AI 在进行数学运算和解答数学题目时遇到的问题,我向大家介绍了两种优化方法:一是将数字转化为变量,二是将问题转换为 Python 代码。利用这两种方法,我们可以显著提高 GPT 在数学运算方面的准确性。
除了这两种可能需要 OpenAI 定向优化的方法,我还介绍了一种需要开通 ChatGPT Plus 会员的终极计算解决方法,使用 Wolfram Alpha 插件可以将 GPT 数学运算的准确度提高到完全放心使用的水平。
从下一章开始我们将使用几个情景,来给大家演示一下组合优化方法的思路,让你能在不同的优化方法之间融会贯通。
最后更新于