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

  • 文献阅读: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.mfbz.cn/a/39399.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

TortoiseGit 入门指南07:创建分支

Git 的 分支 出了名的好用。其它的版本控制系统也提供分支,但在易用度上,只有两类版本控制系统:一种是 Git,一种是其它。 Bob 大叔在《匠艺整洁之道》中写道: 我曾经坚持拒绝分支。在使用 CVS 和 Subversion 的时候&a…

IDE /字符串 /字符编码与文本文件(如cpp源代码文件)

文章目录 概述文本编辑器如何识别文件的编码格式优先推测使用了UTF-8编码?字符编码的BOM字节序标记重分析各文本编辑器下的测试效果Qt Creator的文本编辑器系统记事本VS的文本编辑器Notepad 编译器与代码文件的字符编码ANSI编码其他 概述 前期在整理 《IDE/VS项目属…

备战秋招 | 笔试强训9

目录 一、选择题 二、编程题 三、选择题题解 四、编程题题解 一、选择题 1、某函数申明如下() void Func(int &nVal1); A. Func(a) B. Func(&a) C. Func(*a) D. Func(&(*a)) 2、C语言中,类ClassA的构造函数和析构函数的执行…

如何生成一个漂亮的allure测试报告

前言 今天给大伙展示一下如何生成一个漂亮的allure测试报告,同时呢希望能帮助到大家。 定制化后的allure测试报告效果展示 如何定制化输出锦上添花的allure测试报告 使用前,先导入allure模块。 import allure 使用前,先熟悉运行测试用例…

【Spring Boot】拦截器与统一功能处理:统一登录验证、统一异常处理与统一数据返回格式

前言 Spring AOP是一个基于面向切面编程的框架,用于将横切性关注点(如日志记录、事务管理)与业务逻辑分离,通过代理对象将这些关注点织入到目标对象的方法执行前后、抛出异常或返回结果时等特定位置执行,从而提高程序的…

供应链管理系统有哪些?

1万字干货分享,国内外 20款 供应链管理软件都给你讲的明明白白。如果你还不知道怎么选择,一定要翻到第三大段,这里我将会通过8年的软件产品选型经验告诉你,怎么样才能快速选到适合自己的软件工具。 (为防后续找不到&a…

Waves 14 Complete对Mac和Windows系统的最低要求

Waves 14 Complete是一款功能齐全的音频编辑软件,适用于音乐制作、音频工程和声音设计等领域。它提供了一系列强大的工具和效果,帮助用户在音频处理过程中实现专业水平的效果和混音。 Waves 14 Complete包含了多个实用的插件,如均衡器、压缩…

Gradle和Aritifactory,实现上传Apk并发送消息到钉钉

Gradle和Aritifactory 本文链接:https://blog.csdn.net/feather_wch/article/details/131746580 文章目录 Gradle和AritifactoryGradle基本介绍Gradle插件开发流程本地仓库artifactory搭建添加仓库使用本地仓库gradle插件仓库引入 插件buildSrc开发步骤xxxPluginPg…

甲板上的战舰(力扣)递归 JAVA

给你一个大小为 m x n 的矩阵 board 表示甲板,其中,每个单元格可以是一艘战舰 ‘X’ 或者是一个空位 ‘.’ ,返回在甲板 board 上放置的 战舰 的数量。 战舰 只能水平或者垂直放置在 board 上。换句话说,战舰只能按 1 x k&#xf…

Redis入门基础命令

文章目录 一、redis1.1 redis概述1.2 redis安装 二、string2.1 基础命令2.2 存储结构2.3 应用 三、list3.1 基础命令3.2 应用 四、hash4.1 基础命令4.2 存储结构4.3 应用 五、set5.1 基础命令5.2 存储结构5.3 应用 六、zset6.1 基础命令6.2 存储结构6.3 应用 一、redis 1.1 re…

随手笔记——如何手写高斯牛顿法

随手笔记——如何手写高斯牛顿法 说明源代码 说明 将演示如何手写高斯牛顿法 源代码 #include <iostream> #include <chrono> #include <opencv2/opencv.hpp> #include <Eigen/Core> #include <Eigen/Dense>using namespace std; using names…

【前端知识】React 基础巩固(二十八)——StrictMode

React 基础巩固(二十八)——StrictMode StrictMode StrictMode 是一个用来突出显示应用程序中潜在问题的工具 与 Fragment 一样&#xff0c;StrictMode 不会渲染任何可见的 UI为后代出发额外的检测和警告严格模式检查仅在开发模式下运行&#xff0c;不影响生产构建 严格模式检…

线程与信号

1. 进程内所有线程共享信号处理配置&#xff0c;故信号配置可以全部放在主线程内。 2. 每个线程有自己的信号掩码sigset_t&#xff0c;线程创建时继承创建时线程的信号掩码。 3. 触发信号处理函数按创建线程顺序分配给当前空闲线程&#xff0c;信号处理函数内是可以阻塞的。 …

Django实现接口自动化平台(十三)接口模块Interfaces序列化器及视图【持续更新中】

相关文章&#xff1a; Django实现接口自动化平台&#xff08;十二&#xff09;自定义函数模块DebugTalks 序列化器及视图【持续更新中】_做测试的喵酱的博客-CSDN博客 本章是项目的一个分解&#xff0c;查看本章内容时&#xff0c;要结合整体项目代码来看&#xff1a; pytho…

华润燃气牵手腾讯云 数字技术助力燃气行业高质量发展

7月13日&#xff0c;华润燃气与腾讯云正式签署战略合作协议。双方将充分发挥各自优势&#xff0c;探索AI大模型在燃气行业的深度应用&#xff0c;并深耕分布式计算、连接和客户运营等领域&#xff0c;不断提升燃气民生服务的效率、质量&#xff0c;共同推动行业数字化转型和高质…

巧妙使用 CSS 渐变来实现波浪动画

目录 一、波浪的原理 二、曲面的绘制 三、波浪动画 四、文字波浪动画 五、总结一下 参考资料 之前看到coco[1]的这样一篇文章&#xff1a;纯 CSS 实现波浪效果&#xff01;[2]&#xff0c;非常巧妙&#xff0c;通过改变border-radius和不断旋转实现的波浪效果&#xff0c…

初探KVM虚拟化技术:新手指南

首先了解一下虚拟化的概念 虚拟化是指对资源的逻辑抽象、隔离、再分配、管理的一个过程&#xff0c;通常对虚拟化的理解有广义狭义之分。广义包括平台虚拟化、应用程序虚拟化、存储虚拟化、网络虚拟化、设备虚拟化等等。狭义的虚拟化专门指计算机上模拟运行多个操作系统平台。…

面试中关于自动化测试的认识

目录 一、什么是自动化测试&#xff0c;自动化测试的优势是什么&#xff1f; 二、什么样的项目比较适合做自动化测试&#xff0c;什么样的不适合做自动化测试&#xff1f; 三、在制定自动化测试计划的时候一般要考虑哪些点&#xff1f; 四、编写自动化脚本时的一些规范&…

C#图片处理

查找图片所在位置 原理&#xff1a;使用OpenCvSharp对比查找小图片在大图片上的位置 private static System.Drawing.Point Find(Mat BackGround, Mat Identify, double threshold 0.8) {using (Mat res new Mat(BackGround.Rows - Identify.Rows 1, BackGround.Cols - Iden…

WEB:shrine

背景知识 了解Flask SSIT模板注入 题目 进行代码审计 import flask import osapp flask.Flask(__name__) /*创建了flask包下的Flask类的对象&#xff0c;name是一个适用于多数情况的快捷方式。有了这个参数&#xff0c;Flask才知道在哪里可以找到模板和静态文件*/app.confi…
最新文章