激发数学思维:GPT-4实证研究探索挑战性数学问题
深度学习自然语言处理 原创
作者:wkk
考虑到自然语言在许多科学和工程领域表达的数学问题的丰富性,使用大语言模型(LLM)来解决数学问题是一项有趣的研究工作。今天给大家介绍一篇微软研究院联合欧美高校关于如何使用GPT-4解决数学问题的研究论文。
之前的许多工作研究了如何使用LLM解决基本的数学问题,本文探索了使用GPT-4解决更复杂和更具挑战性的数学问题。论文评估了使用GPT-4的各种方法,其中主要贡献是提出了MathChat架构,这是此项工作新提出的会话问题解决框架。通过对MATH数据集中困难的高中竞赛问题进行评估,展现了所提出的对话方法的优势。
下面让我们一起来探究MathChat的模型结构,看看它是如何做到从容应对数学难题的!
论文:An Empirical Study on Challenging Math Problem Solving with GPT-4
地址:https://arxiv.org/abs/2306.01337进NLP群—>加入NLP交流群
1.前言
随着大语言模型的发展,其在跨领域内的各项任务上发挥出了出色的性能。考虑数学在众多科学和工程领域内起到的关键作用,因此探索大语言模型用于解决数学问题是极具研究价值的。对于GPT-4语言模型,鲜有研究探索其解决数学问题的能力。本研究在Bubeck等人的研究基础上调整和评估了几种现有的使用LLMS的方法来适应GPT-4的使用,包括普通提示符和思维程序(POT)提示符。上图是使用MathChat解决数学问题过程的示例。用户通过将数学问题发送到GPT-4来启动对话。从GPT-4的响应中,用户能够提取代码并按顺序执行它们。其记录了之前运行的有效代码,并将与新代码共同执行,以反映模型的逐步推理进度。结果将返回给GPT-4,GPT-4将继续其问题解决过程。在Iddo等人的研究基础上,进一步提出了MathChat,工作流程如下图所示这是一个为基于聊天的LLM量身定制的对话框架,其中数学问题是通过模型和用户之间的模拟对话来解决的,然后对MATH数据集(一个来自各种比赛和教育水平的数学问题的综合集合)进行评估。我们的研究针对该数据集中的5级难度问题,这些问题主要由具有挑战性的高中竞争问题组成。评估表明,MathChat可以将以前的提示方法进一步提高6%,并且可以在一半的类别上达到60%的准确率,同时还展示了具有不同提示和不同工具的MathChat的可扩展性。
2.现有的数学问题求解中使用LLM的方法
本节介绍使用现有的LLM各种方法,这些方法可用于解决数学问题。包括专门为数学问题解决而设计的技术,之后总结了一般方法。从我们的调查中,目前只有一种方法是针对具有挑战性的数学问题,而其他大多数方法都是在小学数学上进行评估的。
2.1专门为数学问题解决而设计的技术
尽管有创造性的方法将LLM用于不同的任务,但只有少数方法被提出用于解决数学问题。通过使用LLM将算术计算和其他涉及数学问题解决的基本操作装载到程序中。具体而言,使用Codex通过将CoT提示与代码交错,将数学问题分解为可运行的步骤,从而生成可执行的Python代码来解决数学问题。还使用Codex生成基于代码的问题答案。虽然促使模型解决数学单词问题,有研究探索了程序辅助编码对大学级问题的能力,包括从math数据集中随机抽样的问题。除了使用Python,还提出了一种解决基本算术和逻辑问题的方法,将生成的答案连接回问题,并让模型预测原始条件,以验证该答案的正确性。
2.2一般方法
可用于改进数学求解的一般方法包括(1)chain-of-thought prompting、(2)multi-stage prompting、(3)tool-using和(4)self-consistency。其中,本文回顾了一些最新的研究方法。Timo等人训练一个工具转换器,它可以决定何时发送API调用。Bhargavi使用few-shot提示来交错逐步推理和工具使用。Aman等人的研究首先使用GPT-3.5生成输出,并使用相同的模型给出输出的反馈,然后要求模型根据反馈细化输出。尽管这些通用方法可以应用于解决数学单词问题,但这些方法不是为解决数学问题量身定制的,并且主要在更简单的数学任务上进行评估。
3.MathChat:用于解决数学问题的对话框架
A conversational framework with user proxy agent:MathChat是一个模拟LLM助手和用户之间模拟对话的框架。这里,用户是在与LLM助手的对话中扮演用户角色的代理。在MathChat中,助手和用户共同解决数学问题。初始化提示用于指示LLM助手以某种期望的方式与用户协作解决问题。该框架以这种对话方式设计,以便利用最先进的LLM的聊天优化功能。该框架的另一个明显好处是,它能够进行多回合对话,这在解决需要多步骤推理和工具使用的复杂问题时尤其有用。
Prompting and tool-using in MathChat:通过适当的修改,可以将现有研究中的有效提示方法(如CoT和工具使用)集成到MathChat框架中。具体来说,对于初始消息中的提示,我们聚合了多种有效的提示技术来指导LLM助手。我们在图4中展示了设计好的提示,它由三个主要组件组成。
1). Tool-using Prompt: 该组件提示LLM使用正确格式的Python编程来解决问题。使用“query reqiurement”小节来指定编码格式,以便用户代理可以解析代码并返回相应的结果。如下图所示:
2). Problem-Solving Strategy Selection Prompt: 该组件指示助手从三种可能的解决问题的策略中进行选择,并在最后一种策略中执行多阶段推理和工具使用。问题解决策略包括以下三种情况,涵盖了现有数学问题解决文献中最有效的策略。
Case1: 编写一个Python程序来直接解决问题。
Case2: 不使用Python直接解决问题。这种策略允许GPT-4运用其固有的推理能力来解决手头的问题。
Case3: 逐步解决问题,并使用Python帮助进行数学运算。如果前两种方法不合适,我们要求模型选择这种方法来解决问题。我们创建了多步骤工具使用提示符的零样本版本,该提示符允许模型在多步骤推理和Python代码之间灵活交错。在这种情况下,要求模型处理程序运行中的错误和意外结果。
3). Final Answer Encapsulation Prompt: 提示的此组件指示LLM助手将最终答案包含在'\boxed{}'中,该答案将用作结束对话的指示符。LLM助手和用户代理之间的这种交互将继续进行,直到检测到'\boxed{}'或达到最大轮数对话。如下图所示:
评估
数据集
Dan等人提出的MATH数据集,本文对其中的最高等级难度的数学题目进行评估,其中包括七类问题:Prealgebra, Algebra, Number Theory, Counting and Probability, Geometry, Intermediate Algebra, and Precalculus(前代数、代数、数论、计数和概率、几何、中间代数和前微积分)。在本研究中,删除了对几何问题的评估。
评估方法
以前的大多数工作都使用few-shot examples引出LLM和工具使用的推理,因而模型就会模仿示例来遵循所需要的格式或模式。选择与未回答的问题类似的示例,然后对这些示例进行注释,以涵盖LLM可能遇到的所有情况,多项现有研究揭示了GPT-4遵循指令的显著能力。因此,我们对zero-shot prompt技术感兴趣,该技术可以增强GPT-4的数学求解,而无需任何示例选择和注释。按照这个标准,使用引入的提示符和以下所有few-shot方法评估MathChat框架:Vanilla prompt、Program of Thoughts和Program Synthesis prompt。
vanilla prompt: GPT-4可以在无few-shot的情况下执行CoT推理。为了直接评估GPT-4在解决问题方面的性能,使用了一个默认提示,改编自MATH数据集中的小样本提示:"Solve the problem carefully. Put the final answer in \boxed{ }. {Problem}".
Program of Thoughts: 使用来自Chen等研究人员的zero-shot PoT提示,要求模型编写求解器函数来解决这个问题并直接返回最终答案。
Program Synthesis prompt: 与PoT类似,Program Synthesis(程序合成)提示方法使用提示来要求模型编写程序来解决问题:"Write a program that answers the following question: {Problem}".
评估细节
将GPT-4上的不同方法与OpenAI API的默认配置进行了比较。在MathChat中,仅允许GPT-4和用户之间的最多发送15条消息。如果用户从3次连续执行中检测错误,将明确地要求GPT-4自行解决每个步骤。为了避免用户的极长响应,代理将用户消息中的警告文本替换超过600个标记的任何结果,以要求GPT-4修改先前的代码。我们手动遍历所有方法的答案来计算所有正确答案。对于普通提示、程序合成和MathChat,我们要求GPT-4包含 "\boxed{ }"中的最终答案,因此只会提取框中的答案。对于PoT,我们遵循原始论文将求解器函数的反馈作为最终答案。
实验结果
主要结果
对MATH数据集中的6类的5级问题进行了评估。表1中报告了不同方法在每个类别中的解决问题的准确率。与GPT-4的普通提示相比,使用带有POT或PS的Python将整体准确率提高约10%。在涉及更多数字运算的类别(计数、概率和数论)和更具挑战性的类别(中级代数和预微积分)中发现这种改进。然而,对于代数和预代数,POT和PS几乎没有什么改进,甚至导致精度降低。与POT和PS相比,MathChat可以进一步将总准确率提高6%左右,并且在所有类别上都具有竞争力的性能。值得强调的是,与其他方法相比,MathChat将代数类别的准确率提高了约15%。综合考虑各种方法,中级代数和预微积分的求解准确率只有20%左右。其他类别的问题中,超过一半可以通过MathChat正确解决。
在MathChat上进行附加评估,并提供其他提示
MathChat能够轻松合并不同的提示和工具。本研究通过执行额外的评估来测试使用MathChat的两个替代初始提示,以证明其可扩展性。
(1) 使用Python的简化提示:在这种替代方案中,只保留Python编码格式的"query reqiurments"小节和默认提示中的逐步工具使用。
(2) Python和Wolfram Alpha的简化提示:在方案1的基础上,添加了Wolfram Alpha,这是一个计算引擎,作为LLM助手从中选择的附加工具。对六个问题类别中的每一个中随机抽取的50个示例进行评估。还在样本问题中包含了其他方法的结果,在下表中进行比较。MathChat仍然比具有两个新的提示的其他方法表现更好。使用MathChat,允许Python和Wolfram的逐步提示在代数上表现最好,而只有Python的新提示解决了Pre代数和Precalculus中的大多数问题,但在Number Theories上的性能更差。总体而言,带有默认提示的MathChat仍然表现最好。
错误分析
原因
通过对错误案例进行总结,主要观察到以下三种失败原因。
(1) 未能设计或选择合适的计划或路径来解决问题
(2) MathChat未能完美地执行设计的计划
(3) 其他技术错误
总结与未来工作
本文对GPT-4在高等数学解题中的不同使用方式进行了评价。介绍了一个基于GPT-4的对话框架MathChat,它允许该模型与代理用户代理交互来解决数学问题。MathChat是为GPT-4等聊天优化模型设计的,它可以扩展,只需很少的工作就可以与不同的提示和不同的工具一起使用。在该框架的基础上,还推导出了一个提示符,该提示符集合了以往在MathChat上使用的提示技术。
对MATH数据集的5级问题的评估表明,MathChat在解决更复杂和更具挑战性的问题方面的有效性。尽管与以前的方法相比有所改进,但结果表明,即使在外部工具的帮助下,复杂的数学问题对于最近的强大LLM仍然具有挑战性。一方面,由于执行错误,GPT-4无法解决相当数量的问题。虽然MathChat试图改进这一点,但可以做进一步的工作来增强这个框架。
Human-in-the-loop扩展。基于GPT-4的MathChat具有很大的潜力,可以被改编成辅助驾驶系统,以帮助人们解决数学问题。MathChat的设计很自然地帮助人们与GPT-4进行交流。使用MathChat中的预设提示,用户可以直接输入问题并获得逐步的响应。此外,可以将MathChat系统设计为在每一步都停止,以允许用户覆盖代理代理的消息。我们设想这个系统可以让用户参与到解决数学问题的过程中,并促进学习。
进NLP群—>加入NLP交流群
相关文章:
激发数学思维:GPT-4实证研究探索挑战性数学问题
深度学习自然语言处理 原创作者:wkk 考虑到自然语言在许多科学和工程领域表达的数学问题的丰富性,使用大语言模型(LLM)来解决数学问题是一项有趣的研究工作。今天给大家介绍一篇微软研究院联合欧美高校关于如何使用GPT-4解决数学问题的研究论文。 之前的…...
如何配置IP地址
一.自动获取IP 1.dhclient 2.ifconfig 通过这个命令可以查看系统有几块网卡和网卡的IP。 如果您的Linux有多块网卡,那么在Linux中它会显示成eth1, eth2 依此类推 二.手动配置IP 如果您的虚拟机不能自动获取IP,那么只能手动配置,配置方法为&am…...
CentOS + Nginx 环境自动申请和部署Let‘s Encrypt免费SSL证书教程
文章目录 步骤 1:安装Certbot工具步骤 2:配置Nginx服务器步骤 3:生成SSL证书步骤 4:配置Nginx以使用SSL证书步骤 5:重新加载Nginx配置步骤 6:自动续期证书 本文介绍如何在 CentOS Nginx 环境下,…...
浅谈对BI工具价值的看法
浅谈对BI工具价值的看法 BI的定义看法 百度百科的定义: 商业智能(Business Intelligence,简称:BI),又称商业智慧或商务智能,指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术…...
创建定时任务
import schedule import timedef task():print("Im working...")if __name__ __main__:schedule.every(10).seconds.do(task) # 每10秒一次schedule.every(10).minutes.do(task) # 10分钟一次schedule.every().hour.do(task) # 每小时schedule.every().day.at(&q…...
MyBatis的使用、Spring AOP、Spring事务
一、MyBatis 的使用 1、环境配置 1.1、建库建表 -- 创建数据库 drop database if exists mycnblog; create database mycnblog DEFAULT CHARACTER SET utf8mb4;-- 使⽤数据数据 use mycnblog;-- 创建表[⽤户表] drop table if exists userinfo; create table userinfo(id in…...
Apache Doris 冷热分层技术如何实现存储成本降低 70%?
在数据分析的实际场景中,冷热数据往往面临着不同的查询频次及响应速度要求。例如在电商订单场景中,用户经常访问近 6 个月的订单,时间较久远的订单访问次数非常少;在行为分析场景中,需支持近期流量数据的高频查询且时效…...
MySQL 两个备机同时挂掉故障分析
来源: 接报线上出现两个5.7.38的备库同时crash,crash堆栈相同,内容如下: stack_bottom 7fd7700b0d30 thread_stack 0x40000 /home/service/app/mysql33066/bin/mysqld(my_print_stacktrace0x2c)[0xf1062c] /home/service/app/m…...
序列化与反序列化深入理解
序列化与反序列化深入理解 1 介绍1.1 概述1.2 序列化实现的需求 2 常用序列化实现函数序列化语言内置开源序列化实现 3 各序列化实现比较4 各序列化实现概述XMLJSONProtobufJava 内置TLVVLE(Variable Length Encoding) 5 flex & bison5.1 介绍应用解…...
hudi系列-小文件优化
hudi使用mvcc来实现数据的读写一致性和并发控制,基于timeline实现对事务和表服务的管理,会产生大量比较小的数据文件和元数据文件。大量小文件会对存储和查询性能产生不利影响,包括增加文件系统的开销、文件管理的复杂性以及查询性能的下降。对于namenode而言,当整个集群中…...
mysql 是否包含 返回索引 截取字符串
是否包含返回索引 原文链接:https://www.cnblogs.com/shoshana-kong/p/16474175.html 方法1:使用通配符%。 通配符也就是模糊匹配,可以分为前导模糊查询、后导模糊查询和全导匹配查询,适用于查询某个字符串中是否包含另一个模糊…...
【LeetCode】74. 搜索二维矩阵
74. 搜索二维矩阵(中等) 方法一:二分查找 思路 总体思路 由于二维矩阵固定列的「从上到下」或者固定行的「从左到右」都是升序的 因此我们可以使用两次二分来定位到目标位置。 第一次二分: 从第 0 列中的「所有行」开始找&#x…...
Nginx rewrite
一.location 大致可以分为三类: 精准匹配:location / {…}一般匹配:location / {…}正则匹配:location ~ / {…} 1.location 常用的匹配规则: :进行普通字符精确匹配,也就是完全匹配。^~ &am…...
【数据分享】1929-2022年全球站点的逐日降水量(Shp\Excel\12000个站点)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,说到常用的降水数据,最详细的降水数据是具体到气象监测站点的降水数据! 有关气象指标的监测站点数据,之前我们分享过1929-2022年全…...
【论文阅读】(2013)Exact algorithms for the bin packing problem with fragile objects
文章目录 一、摘要二、介绍三、之前在这个问题上的工作四、易碎物品背包问题的求解4.1 ILP模型4.2 基于KP01的方法4.3 动态规划 五、二元分支方案5.1 分支方案1(基于决策变量的分支)5.2 分支方案2(基于yj和xji的分支)5.3 将L2嵌入…...
K8S YAML 部署XXLJOB 集群
apiVersion: apps/v1 kind: Deployment metadata: labels: app: xxl-job-admin name: xxl-job-admin namespace: ccetest #根据情况修改namespace spec: replicas: 3 #根据情况修改副本数 selector: matchLabels: app: xxl-job-admin strat…...
Linux防火墙学习笔记3
iptables链的概念: 当客户端访问服务器端的Web服务的时候,客户端发送请求报文到网卡,而TCP/IP协议栈是属于内核的一部分。客户端的请求报文会通过内核的TCP协议传输到用户空间的Web服务,而客户端报文的目的地址为Web服务器所监听的…...
数仓用户行为数据分析
分层优点:复杂的东西可以简单化、解耦(屏蔽层作用)、提高复用、方便管理 SA 贴源 数据组织结构与源系统保持一致 shm 历史层 针对不同特征的数据做不同算法,目的都是为了得到一份完整的数据 PDM 明细层 做最细粒度的数据明细…...
RK3288 Android5.1添加WiFiBT模块AP6212
CPU:RK3288 系统:Android 5.1 注:RK3288系统,目前 Android 5.0 Kernel 3.10 SDK 支持 Braodcom,Realtek 等 WiFi BT 模块 各个 WiFi BT 模块已经做到动态兼容,Android 上层不再需要像以前一样进 行特定宏的配置 此…...
使用 YApi 管理 API 文档,测试, mock
随着互联网的发展,API变的至关重要。根据统计,目前市面上有上千万的开发者,互联网项目超过10亿,保守统计涉及的 API 数量大约有 100 亿。这么大基数的API,只要解决某些共有的痛点,将会是非常有意义的事情。…...
chatgpt生成【2023高考作文】北京卷二 - 亮相
舞台上,戏曲演员有登场亮相的瞬间。生活中也有许多亮相时刻:国旗下的讲话,研学成果的汇报,新产品的发布……每一次亮相,都受到众人关注;每一次亮相,也会有一段故事。 请以“亮相”为题目&#x…...
实验四、shell编程
一、实验目的 1.了解shell的特点和主要种类。 2.掌握 shel1 脚本的建立和执行方式。 3.掌握bash的基本语法。 4.学会编写shell 脚本。 二、实验内容 shell 脚本的建立和执行。历史命令和别名定义。shell变量和位置参数、环境变量。bash的特殊字符。一般控制结构。算术运算及…...
【代码随想录】刷题Day51
1.最佳买卖股票时机含冷冻期 309. 最佳买卖股票时机含冷冻期 1.dp数组的含义:dp[i][0]为第i天卖出股票的最大价值;dp[i][1]为第i天持有股票的最大价值 2.dp数组的条件:由于有冷冻期,所以dp数组的条件就变了。第i天卖出股票的最大…...
centos7下svnserve方式部署subversion/SVN服务端(实操)
一般来说,subversion服务器可以用两种方式架设: 一种是基于svnserve,svnserve作为服务端; 一种是基于Apache,用apache作为服务端。 这里采用第一种方式部署。 执行如下命令,安装SVN。 yum install sub…...
一款红队批量脆弱点搜集工具
功能 指纹识别:调用“三米前有香蕉皮“前辈工具,他的工具比finger好用 寻找资产中404,403,以及网页中存在的其他薄弱点,以及需要特定路径访问的资产 后续会把nuclei加进来 目前只有windows可以用 使用 第一次使用脚本请运行p…...
Docker 基本管理
一、Docker 概述 Docker是一个开源的应用容器引擎,基于go语言开发并遵守了apache2.0协议开源。 Docker是在Linux容器里运行应用的开源工具,是一种轻量级的“虚拟机”。 Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自…...
Debezium系列之:把多张表的数据分发到同一个Kafka Topic,同一张表的数据始终进入Topic相同分区
Debezium系列之:把多张表的数据分发到同一个Kafka Topic,同一张表的数据始终进入Topic相同分区 一、需求背景二、实现思路三、核心参数和参数详解四、创建相关表五、提交Debezium Connector六、插入数据七、消费Kafka Topic八、总结和延展一、需求背景 debezium采集数据库的多…...
雪崩 - 如何重试 - sla和重试风暴的双保证
父文章 异常导致级联雪崩的例子 - 不应该有立即重试._个人渣记录仅为自己搜索用的博客-CSDN博客 一个系统处于稳态临界点 如果立即重试3次, 会导致流量瞬间增大, 哪怕后来系统10s内自愈了, 这个时候, 流量本质上增加了3倍. 如果rpc框架不是fastFail ( 超过 调用方失败timeout上…...
[网鼎杯 2018]Fakebook1
拿到题目后是一个博客的界面,这里可以登录和注册 点入登录界面,猜测可能是sql注入 试了很多次,都不是,也没有回显报错,所以把目光放到了注册上面 注册的其他行数据,差不多都可以乱填,只有一个bl…...
Oracle-第一章-多表查询和其他
4多表关联查询 4.1表的别名 ①在多表关联查询时,如果多个表之间存在同名的列,则必须用表名限定列的引用如dept.deptno,emp.deptno ②为使语句简洁,使用表别名,表别名在from子句中定义如 emp e ③表别名一经定义,在整…...
山西太原网站建设公司/惠州seo推广外包
Sub Initialize/*******************************************功 能: B/S下导出系统通讯录信息到Excel中注意事项: 1、Domino服务器上必须安装Excel 2、代理安全性等级设置为3*******************************************/On Error Goto errHa…...
做公司网站的南宁公司/企业网络营销策略分析案例
闭包又称词法闭包 闭包最早定义为一种包含<环境成分>和<控制成分>的实体. 解释一:闭包是引用了自由变量的函数,这个被引用的变量将和这个函数一同存在。 解释二:闭包是函数和相关引用环境组成的实体。 注:<自由变量…...
织梦网站源码下载/外贸推广方式
word2vec基本思想通过训练每个词映射成k维实数向量(k一般为模型中的超参数),通过词之间的距离来判断语义相似度。word2vec采用一个三层的神经网络。 训练的时候按照词频将每个词语Huffman编码,词频越高的词语对应的编码越短。这三层的神经网络本身是对语…...
重庆做网站多少钱/兰州压热搜
Linux下高并发socket最大连接数所受的各种限制 在Linux平台上,无论编写客户端程序还是服务端程序,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个soc…...
沈阳网站建设优秀公司/单页关键词优化费用
一般情况下,Linux系统管理员通过SSH服务来管理操作系统,但Docker的很多镜像不带SSH服务的。 基于commit命令创建 准备工作 首先,使用ubuntu镜像来创建一个容器: $ sudo docker run -it ubuntu /bin/bash root3c6ed6207883:/# 这…...
个人免费建网站/百度秒收录蜘蛛池
使用Action、Func和Lambda表达式 在.NET在,我们经常使用委托,委托的作用不必多说,在.NET 2.0之前,我们在使用委托之前,得自定义一个委托类型,再使用这个自定义的委托类型定义一个委托字段或变量。.NET 2.0给我们带来了Action、Func两个泛型委托ÿ…...