文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models

news2024/11/26 2:56:02
  • 文献阅读:MathPrompter: Mathematical Reasoning using Large Language Models
    • 1. 内容简介
    • 2. 方法细节
    • 3. 实验内容
    • 4. 结论&思考
  • 文献链接:https://arxiv.org/abs/2303.05398

1. 内容简介

这篇文章是今年3月份的时候微软提出的一篇工作,其核心的问题是优化了GPT模型在数学问题上的回答准确性。

众所周知,生成模型在生成内容真实性方面一直存在较大的问题,虽然随着GPT模型的持续迭代,模型生成质量一直在不断地提升,不过生成内容可靠性的问题事实上还是一直存在的,无法被彻底根除。

而这个问题在数学问题上更加会被极具放大,而这篇文章的核心工作就是在这方面进行了优化。

但是具体到方法上面,事实上这里也并没有什么根本上的方法改进,事实上也就是一个专门进行数学问题的prompt工程的工作,因此多少还是有些失望。

而且更进一步地,他们的方法的有效性可能也不是纯粹的来自于他们的prompt方法,而是可能来自于系综模型的效果……

anyway,不过无论如何,这篇文章达到的效果是实打实的,因此无论如何还是有一些借鉴意义的。

2. 方法细节

本文的核心方法可以用下图中的流程图进行表述:

在这里插入图片描述

它可以抽象为以下两个大的步骤:

  1. 将具体的问题抽象为一个和具体数字无关的代数问题;
  2. 通过重复验证的方式对1中给出的代数问题进行数字化计算,具体包括:
    1. 多种不同的计算方式交叉验证;
    2. 多次计算重复验证;

下面,我们给出文中的具体步骤如下:

  1. 抽象化代数问题
  2. 分别生成1中给出的代数问题解答的代数表达式以及python解答函数;
  3. 计算2中给出的代数表达式的解答以及python函数执行得到的结果;
  4. 重复多次执行,得到的最高频次的回答就最可能是问题最后的答案。

3. 实验内容

下面,我们来看一下文中给出实验结果。

这篇文章的实验内容相对来说还是比较简单的,就是在MultiArith数据集上面做了一些实验,然后获得了比较显著的效果。

给出其具体的实验效果表格如下:

在这里插入图片描述

可以看到:

  • 使用math prompter之后,模型的效果确实有了较大幅度的提升。

最后,文中还给出了几个具体的case如下图所示:

在这里插入图片描述

可以看到:

  • 使用math prompter之后模型的效果较之baseline确实有了一定的提升,不过依然无法完全规避掉事实性错误,还是会有错误的存在。

4. 结论&思考

综上,我们可以看到:

  • math prompter这篇文章确实是有效的,有效地提升了数学问题上的回答准确性。

不过对于文中使用的方法,我个人多少有点存疑。

首先,文中给出的实例中的数学题本质上都不难,也就是小学应用题的水平,而且都是简单计算题,对于稍微复杂一些的问题,比如说不等式问题或者求最大最小值的问题,似乎上述方法都不具有可扩展性。

另一方面,文中这种交叉验证以及多次生成验证的方式,事实上就是一个ensemble方法,而ensemble的方式获得的效果高于单一模型的效果应该是一个比较公认的结果了。因此文中给出的方法带来的提升有多少来自于他们的mathprompter,有多少来自于ensemble方式事实上也有一些存疑。

综上,这篇文章的价值总让我有一些怀疑……

不过尽管如此,这篇文章关于代数拆分的方式还是很有启发价值的,因为原先的问题如果要一步求解的话,那无疑需要同时完成题意的理解以及数字的计算,尤其后者由于模式太多,因此对大模型的统计概率生成来说尤其显得不友好。

而分钟通过拆分任务的方式让模型先理解问题,然后进行数字求解,本质上就是一个COT方式,无疑大幅简化了任务,增大了单一任务当中模型执行的结果可靠性。

这个思路还是很有启发意义的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760340.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot中间件—ORM(Mybatis)框架实现

目录 定义 需求背景 方案设计 代码展示 UML图 实现细节 测试验证 总结 定义: ORM:Object Relational Mapping --> 对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里面不同类型系统的数据之间的转换 需求背…

前端|CSS(一)| pink老师

参考视频:黑马程序员前端CSS3基础教程,前端必备基础 目录 📚CSS引入 🐇引入CSS样式表 📚CSS基础选择器 🐇标签选择器 🐇类选择器(最常用) 🐇id选择器 …

VIM文本如何复制到系统剪切板?

今天从vim上用鼠标复制代码,发现把VIM当中的行号也复制进去了,就很麻烦,于是简单研究了下,如果vim支持clipboard的话就比较好办,具体支持与否,使用命令查看: vim --version | grep "clipb…

C语言指针面试题

C语言指针面试题 一.指针和数组1.一维数组2.字符数组3.二维数组 二.指针 一.指针和数组 1.一维数组 int a[] {1,2,3,4};(1)printf("%d\n",sizeof(a));// 16(2)printf("%d\n",sizeof(a0));// 4/8(3)printf("%d\n",sizeof(*a));// 4(4)printf(&…

xred病毒分析

概述 xred病毒是一种感染型病毒,会感染系统中特定目录下的exe和xlsx文件,该病毒会将自身伪装成Synaptics触摸板驱动程序,使用Dephi编写。 样本的基本信息 Verified: Unsigned Link date: 6:22 1992/6/20 Company: Synaptics Description: S…

vue3 前端编码规范

prettier 配置 1. vscode 安装prettier 的 插件 2. 新建 .prettierrc 文件 {"semi": false, // 不尾随分号"singleQuote": true, // 使用单引号"trailingComma": "none" // 多行逗号分隔的语法,最后一行不加逗号 }eslin…

WPF嵌入外部exe应用程序-实现基本的嵌入

WPF嵌入外部exe应用程序 使用场景功能实现嵌入基本功能实现1.导入windows API2.运行外部程序3. 获取窗体句柄4. 嵌入窗体5.设置子窗体位置整个代码 嵌入存在的问题: 使用场景 在WPF桌面应用程序开发过程中,有时候需要将其他程序结合到一起,让…

Linux尖刀——shell

目录 知识点 lsblk grep awk tail du df 对新增存储设备的检测与分区 用lsblk查询块设备 用dmesg看内核打印信息 用ls查看新增设备 对rootfs空间使用情况的监控 知识点 首先想要用shell脚本解决一些问题肯定要熟悉linux的命令 lsblk -t或–tree:以…

Redis进阶底层原理- 缓冲区

Redis中使用了很多缓冲区,在redis各个环节起到了非常核心的作用。下面来一一介绍一下: 输入输出缓冲区(客户端缓冲区) Redis中的输入输出缓冲区是为了平衡客户端发送命令和服务端处理命令的速度差异,如果客户端发送指…

java用 postman输入 数字 会加上单引号 和逗号,方便查询

java用 postman输入 数字 会加上单引号 和逗号,方便查询 /*** 输入12575726* 891006* 12575726* 891006* 返回* 12575726,* 891006,* 12575726,* 891006* 方便查询数据* param data* return*/RequestMapping(value "l…

MySQL查看系统性能参数、统计SQL的查询成本last_query_cost的使用

1、查看MySQL系统性能参数 在MySQL中,可以使用SHOW STATUS语句查询一些MySQL数据库服务器的性能参数、执行频率。 语法如下: SHOW [ GLOBAL | SESSION] STATUS LIKE 参数; 一些常用的性能参数如下: Connections:连接MySQL服…

《银行法律法规》三、银行管理——2、公司治理、 内部控制与合规管理

第二章 公司治理、 内部控制与合规管理 第一节 公司治理 考点1 银行公司治理概述★★ 商业银行公司治理是指股东大会、 董事会、 监事会、 高级管理层、 股东及其他利益相关者之间的相互关系, 包括组织架构、 职责边界、 履职要求等治理制衡机制, 以…

从零到精通!50个必懂IT术语,让你成为行业翘楚!

您刚进入IT行业?不必惊慌!我们为您整理了50个最常见的IT术语,从ICT到ITIL再到SLM,全方位解读,让您快速掌握这些关键概念。更令人兴奋的是,我们将向您介绍轻易云数据集成平台,它是您在数字化转型…

Redis进阶底层原理 - 分区算法方案

Redis分区是指将数据分散到不同的Redis实例,降低单个Redis实例内存和高并发请求的压力。为什么要做分区:目前来说前面所学知识都是基于Redis单实例上进行的,及时是哨兵模式也只是保证了单个Redis实例的可用性。当内存数据越来越多时单个Redis…

BOM编程

十四、BOM和DOM编程 windows对象 常见方法 _self:在当前页面打开窗口 _blank:打开一个新的选项卡 第一个参数是x轴,一般没有横向滚动条,都是操作第二个参数 history对象 属性:一般用不到 方法: 01.histor…

PCB规则设置

PCB设计规则 网络class设置间距规则设置线宽规则过孔规则设置铺铜规则设置其他规则设置 网络class设置 间距规则设置 进入规则设置 线宽规则 新建线宽选项,电源类 过孔规则设置 铺铜规则设置 其他规则设置

Django ORM Field源码解读

已models.py的CharField字段代码为起点 secret_id = models.CharField("secret_id", max_length=256, default="") 构造方法中,会去调父类Field 的构造方法,而后向 CharField 的验证器列表 中添加一个 MaxLengthValidator 对象,用于…

leecode 数据库:1084. 销售分析III

导入数据: Create table If Not Exists Product (product_id int, product_name varchar(10), unit_price int); Create table If Not Exists Sales (seller_id int, product_id int, buyer_id int, sale_date date, quantity int, price int); Truncate table Prod…

Elasticsearch中查询性能优化

Elasticsearch是一种流行的搜索引擎和分布式文档存储解决方案,它的高效性能和可伸缩性使其成为许多应用程序的首选存储引擎。在工作中,优化Elasticsearch的检索性能是一个非常重要的任务,可以大大提高应用程序的响应速度和用户体验。下面我们…

0131 物理层2

目录 2.物理层 2.2传输介质 2.3物理层设备 2.2,2.3部分习题 2.物理层 2.2传输介质 2.3物理层设备 2.2,2.3部分习题 1.利用一根同轴电缆互连主机构成以太网,则主机间得通信方式为() A.全双工 B.半双工 …