ACL 2023 | 使用语言模型解决数学推理问题的协同推理框架

news2024/11/24 1:47:46

f74d017c65f018b1921104871594a0e9.gif

©PaperWeekly 原创 · 作者 | 朱欣宇

单位 | 清华大学

研究方向 | 自然语言处理

c10635d36f49dceec5a736072e6aca23.png

论文标题:

Solving Math Word Problems via Cooperative Reasoning induced Language Models

论文链接:

https://arxiv.org/abs/2210.16257

代码链接:

https://github.com/TianHongZXY/CoRe

f6008565423d8a99e0371ca9a0697321.png

Language Models 解决推理任务

过去的一年里,使用语言模型来解决各种各样的推理问题变成了一个非常火热的研究课题,出现了许多非常简单,但效果惊人的方法,特别是以 Chain of Thought [1](CoT)系列为代表的 prompt design 工作。

后续的改进工作层出不穷,比如将原始 CoT 中的构建 few-shot 例子所需的人工成本降为只需要一句 “Let's think step by step” 的 Zero-shot CoT [2],使用聚类方法自动化构建 few-shot 例子的 auto-CoT [3],这些 prompt + Large Language Models(LLMs)的工作可以说掀起了使用 LLMs 做推理任务的热潮。

然而,这些工作的惊人效果很大程度上依赖于 LLMs 本身的强大能力,正如 CoT 原文中指出的那样,在较小的语言模型(< 10B 参数)上,CoT 的提升并不明显,甚至有下降。Chain of Thought hub [4] 中的排行榜也清晰地指出了开源模型与 OpenAI,Anthropic 的闭源模型在复杂推理任务(特别是数学推理)上的差距,正如项目主页中写的那样:“chit-chat is cheap, show me the reasoning”。

尽管也有一些专注于提升较小的语言模型推理能力的工作,如 STaR [5],但是这种提升仅在相对简单的常识推理任务上较为明显,在难度更大的数学推理上,比如知名的 GSM8K 数据集,提升效果并不理想,使用一个 6B 参数的 GPT-J,仅能达到 10.7 的 accuracy,与 CoT + LLMs 有着相当大的差距。看起来,一个只有几十亿参数的语言模型似乎不可能在困难推理问题上取得与那些上千亿参数的模型相当的性能,难道复杂推理任务真的仅仅是大模型的游戏吗?

在我们这篇名为 CoRe 的工作中,我们证明了这并不是真的,即使是只有 6B 参数的语言模型,也可以在适当的引导下生成高质量的推理路径,同时这些优秀的例子可以被用作模型的进一步训练,达到更高的推理水平。我们的实验表明,像 GPT-J 这样大小的模型在数学推理任务上也可以与那些千亿参数的 LLMs 相媲美,甚至超过它们。

918387dbc49a46f3df19c7e62adf7667.png

动机

CoT + LLMs 很强大,但是有什么地方可以改进呢?

1. 一个很明显的地方就是语言模型在推理的过程中没有监督和引导,我们都知道语言模型是从左到右地一路往下生成 token,这就导致了它有可能陷入一些逻辑不够严密的,质量较低的推理路径中,仅仅因为这些路径的 perplexity 更低。

2. 另一个方面是当语言模型生成多条推理路径时,这些路径之间是独立的,比如 Self-Consistency [6] 提出的采样多条再进行多数投票,而 OpenAI [7] 最早是使用训练了一个额外的 verifier 来挑选出多条 solutions 中最高分的那个作为答案,生成前面 reasoning paths 的经验并没有给接下来的生成带来更多的指导与经验,这很明显是一个不够 smart 与 efficient 的方法。

4b09c0a49c101d4a6e581084811c758a.png

为了解决上述的两个问题,我们期望能够在语言模型生成推理路径的过程中引入监督与指导,借鉴人类思考的双系统理论,系统一是一种快思考,而系统二是一种慢思考,更适用于解决需要深思熟虑的问题,我们希望模仿这一种双系统互动的过程,将生成模型 generator 当作系统一,而验证模型 verifiers 当作系统二。

除此以外,对于模型每一次生成一条新的 solution,都能够得到一个反馈,从而给接下来的生成带来更好的路径选择。这种树状的搜索思路与蒙特卡洛树搜索(MCTS)的方法恰好十分吻合,我们便应用了这样的一个算法来控制整个推理过程,提出了一个名为 Cooperative Reasoning 的协同推理框架 CoRe

我们训练了两个 verifiers 来给予 generator(语言模型)反馈,一个是 token-level verifier,另一个是 sentence-level verifier,这一做法是受 AlphaGo [8] 启发:

在下围棋时,AlphaGo 也使用了两个打分网络,一个在模型每走一步棋时就给出一个分数(对应我们的 token-level verifier),另一个会让模型通过 MCTS 在走完上一步后,把这盘棋下完,根据结果再给出一个分数(对应我们的 sentence-level verifier),很明显下围棋也是一个极其复杂的推理任务,为了使用语言模型解决数学推理问题,我们从 AlphaGo 的文章中获得了大量的启发。

3. 当解决了前两个问题后,我们希望能进一步提升语言模型的推理能力,因此我们使用上述提出的协同推理框架给训练集的 question 生成更多的 solutions,并且使用 generator 对它们的 perplexity 和 verifiers 对它们的分数进行过滤,得到了一批高质量的数据用于进一步 fine-tune,我们称这一过程为 Self-Thinking,同期工作 Self-Improve [9] 与我们不谋而合,但我们使用的模型要相对小得多。

8cd46033bd06df60c427d7051da86de5.png

CoRe

9abd7289e00aa763b0e5c0fdd93390e9.png

我们训练了一个 generator 与两个 verifier,generator 与 token-level verifier 都是一个 GPT-J,sentence-level verifier 我们采用了 DeBERTa,整体的方法框架如上图所示。在 Step 1,我们 follow 了 OpenAI [7] 的工作,在GSM8K fine-tune 得到了 generator 与 两个 verifiers。

在 Step 2,不同于之前的工作是在完成所有的生成后再使用 verifier 来选择 solution,我们认为在生成的过程中间提供反馈非常重要,推理路径的搜索在指导下进行,那些高质量的路径会被更多地探索。我们使用了两个 verifiers,一个是 GPT-J 用于提供 token-level 的反馈,另一个用 DeBERTa 用于提供 sentence-level 反馈。我们利用 MCTS 算法将生成器和验证器结合起来,让它们共同解决推理问题。

在 Step 3,为了进一步提高模型的推理能力,我们利用这个协同推理框架来生成更多的例子以进一步微调语言模型和验证模型,形成了整套流程的闭环。值得注意一点是,我们发现直接用最终答案正确与否来过滤生成的例子效果并不理想。相反,我们通过生成器和验证器的合作来过滤它们,因而过滤其实也是一个协同过程,我们把这个过程称为自我思考(Self-Thinking)。最后,我们重复 Step 2 和 Step 3 直到性能饱和。

19da78b9a337fa116aa7eebfa97b1ff1.png

下图是推理过程的可视化:

a8f346a4646184c305aef45fb330fb94.png

d3996e8763782be1482cead52afe5393.png

实验结果

我们在 GSM8K 上对模型进行了微调,而在其他数学推理数据集上进行的是 zero-shot。可以看出,推理能力可以在同一领域内转移,在 GSM8K 上的微调有助于语言模型解决其他数学推理问题。

d59b9b00c1d4bf49bd3ea9ac70b489c5.png

我们在其他数据集上的 zero-shot 结果超过了之前的 fine-tune SoTA。

f7931b2492470529c0b55fcf05d37755.png

使用了 CoRe 的 GPT-J 可以与那些超大的语言模型相媲美。即使在最难的数据集 GSM8K 上,它也超过了 OpenAI 以前的微调 SoTA,后者使用两个 GPT-3 175B,一个作为生成器,一个作为验证器。

dc89044a1ba415e9c8f03344965d9b14.png

通过与 Self-Consistency 的对比可以看出,虽然我们的方法起于一个相对低的起点,但它增长的速率远远超过 Self-Consistency,且在超越其之后一直保持着更高的斜率,这意味着更慢的性能饱和速度,证明了这种带有引导的协同推理框架的有效性。

d77bc93096d50060b1aff7650cdae7e2.png

66aa094289d82e2212efdf7ed07dc7d7.png

展望

虽然 LLMs 在各个方面展现出了很强大的性能,最近的研究也指出了它存在很严重的 hallucination 问题,它生成的内容并不是确定性的,采样时总会产生不确定性,因而有很多工作将 LLMs 与其他工具的结合,最容易想到的就是编程语言,事实上在 CoRe 发布在 arxiv 上的仅一个月内便出现了数篇这样的工作 [10] [11][12]。在未来 LLMs 很有可能接入各种各样的系统,作为一个总规划师,而非真正的执行者,比如近期的一些工作已经对这些有所探索 [13] [14] [15]。

outside_default.png

参考文献

outside_default.png

[1] Chain of thought prompting elicits reasoning in large language models

[2] Large language models are zero-shot reasoner

[3] Automatic Chain of Thought Prompting in Large Language Models

[4] https://github.com/FranxYao/chain-of-thought-hub

[5] STaR: Bootstrapping Reasoning With Reasoning

[6] Self-consistency improves chain of thought reasoning in language models

[7] Training Verifiers to Solve Math Word Problems

[8] Mastering the game of Go with deep neural networks and tree search

[9] Large Language Models Can Self-Improve

[10] PAL: Program-aided Language Models

[11] Program of Thoughts Prompting: Disentangling Computation from Reasoning for Numerical Reasoning Tasks

[12] Teaching Algorithmic Reasoning via In-context Learning

[13] HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face

[14] TaskMatrix.AI: Completing Tasks by Connecting Foundation Models with Millions of APIs

[15] Question Answering as Programming for Solving Time-Sensitive Questions

更多阅读

2c68a10f9531d5fdb1c013d0ea55494a.png

6d5bf8b196788e0082e4e865e9b1eac0.png

967ebcaba48ac3a656e091eda5991700.png

0590e2782b7a052d29c5f016b43955ca.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

9d6a059bd161f0ce5fc9857edba2b8e8.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

1ac45935953ffd9ce0c1acaae2cf15c4.jpeg

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

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

相关文章

2023 互联网大厂薪资大比拼

最近整理了33家互联网大厂的薪资情况。可以看出来&#xff0c;大部分互联网大厂薪资还是很不错的&#xff0c;腾讯、阿里、美团、百度等大厂平均月薪超过30k&#xff0c;其他互联网大厂平均月薪也都在25k以上。01020304050607080910111213141516171819202122232425262728293031…

ESP8266(RTOS SDK)内嵌网页以实现WEB配网以及数据交互

【本文发布于https://blog.csdn.net/Stack_/article/details/131997098&#xff0c;未经允许不得转载&#xff0c;转载须注明出处】 1、执行make menuconfig&#xff0c;将http头由512改为更大的值&#xff0c;否则用电脑浏览器访问正常&#xff0c;但用手机浏览器访问会因为ht…

关于`IRIS/Caché`进程内存溢出解决方案

文章目录 关于IRIS/Cach进程内存溢出解决方案 描述原因相关系统变量$ZSTORAGE$STORAGE 什么情况下进程内存会变化&#xff1f;内存不足原理解决方案 关于 IRIS/Cach进程内存溢出解决方案 描述 在IRIS/Cach中&#xff0c;进程内存溢出错误是指一个进程&#xff08;例如运行中的…

群晖 nas 自建 ntfy 通知服务(梦寐以求)

目录 一、什么是 ntfy ? 二、在群晖nas上部署ntfy 1. 在Docker中安装ntfy 2. 设置ntfy工作文件夹 3. 启动部署在 docker 中的 ntfy&#xff08;binwiederhier/ntfy&#xff09; 三、启动配置好后&#xff0c;如何使用ntfy 1. 添加订阅主题&#xff08; Subscribe to topic…

六种不同的CRM系统类型分别有哪些特点?

企业想要管理销售&#xff0c;可以选择CRM系统&#xff1b;企业想要优化业务流程&#xff0c;可以选择CRM系统&#xff1b;企业想要提高收入&#xff0c;可以选择CRM系统。下面来说说&#xff0c;CRM是什么&#xff1f;六种常见CRM系统类型对比。 什么是CRM&#xff1f; CRM是…

当执行汇编指令MOV [0001H] 01H时,CPU都做了什么?

今天和几位单位大佬聊天时&#xff0c;讨论到一个非常有趣的问题-当程序执行MOV [0001H], 01H计算机实际上都做了哪些工作&#xff1f;乍一看这个问题平平无奇&#xff0c;CPU只是把立即数01H放在了地址为0001的内存里&#xff0c;但仔细想想这个问题远没有那么简单&#xff0c…

Synchronized八锁

/** * Description: 8 锁 * 1 标准访问&#xff0c;先打印短信还是邮件 ------sendSMS ------sendEmail 2 停 4 秒在短信方法内&#xff0c;先打印短信还是邮件 ------sendSMS ------sendEmail 3 新增普通的 hello 方法&#xff0c;是先打短信还是 hello ------getHello ------…

阿里云服务器IP地址查看方法(公网/私网)

阿里云服务器IP地址在哪查看&#xff1f;在云服务器ECS管理控制台即可查看&#xff0c;阿里云服务器IP地址包括公网IP和私有IP&#xff0c;阿里云百科分享阿里云服务器IP地址查询方法&#xff1a; 目录 阿里云服务器IP地址查询 阿里云服务器IP地址查询 1、登录到阿里云服务器…

HTML基础知识,网页和报表都可用

首先我们先介绍一下网页&#xff1a; 网页时构成网站的基本元素&#xff0c;它通常由图片&#xff0c;链接&#xff0c;文字&#xff0c;声音&#xff0c;视频等元素组成。通常我们看到的网页&#xff0c;常见以.htm或.html后缀结尾的文件&#xff0c;因此我们把它俗称为HTML文…

易服客工作室:Elementor AI简介 – 彻底改变您创建网站的方式

Elementor 作为领先的 WordPress 网站构建器&#xff0c;是第一个添加本机 AI 集成的。Elementor AI 的第一阶段将使您能够生成和改进文本和自定义代码&#xff08;HTML、自定义代码和自定义 CSS&#xff09;。我们还已经在进行以下阶段的工作&#xff0c;其中将包括基于人工智…

uniapp 使用 uni push 2.0 推送消息

因为之前使用uni push 1.0&#xff0c;开通账号和配置厂商就不写了。只说一点&#xff0c;配置厂商很重要&#xff0c;不然收不到离线推送的消息。那么就直接开始咯&#xff01;&#xff01;&#xff01; 一、创建并关联云服务空间 1.创建云服务空间&#xff0c;右键项目【创…

『C语言初阶』第八章 -隐式类型转换规则

前言 今天小羊又来给铁汁们分享关于C语言的隐式类型转换规则&#xff0c;在C语言中类型转换方式可分为隐式类型转换和显式类型转换(强制类型转换)&#xff0c;其中隐式类型转换是由编译器自动进行&#xff0c;无需程序员干预&#xff0c;今天小羊课堂说的就是关于隐式类型转换…

阻塞和非阻塞,同步和异步

文章目录 典型的一次IO的两个阶段IO多路复用是同步还是异步&#xff1f; 典型的一次IO的两个阶段 数据就绪和数据读写 同步&#xff1a;需要应用程序自己操作 IO多路复用是同步还是异步&#xff1f; epoll也是同步的 具体数据读取还是通过应用程序自己完成的 只有使用了特…

快速开发平台 WebBuilder 的功能特点

WebBuilder 是一款强大&#xff0c;全面和高效的应用开发和运行平台。基于浏览器的集成开发环境&#xff0c;智能化的设计&#xff0c;能轻松完成常规桌面应用和面向手机等的移动应用开发。高效、稳定和可扩展的特点&#xff0c;适合复杂企业级应用的运行。跨平台、数据库和浏览…

线性回归例子

转自&#xff1a;https://www.cnblogs.com/BlairGrowing/p/15061912.html 刚开始接触深度学习和机器学习&#xff0c;由于是非全日制&#xff0c;也没有方向感&#xff0c;缺乏学习氛围、圈子&#xff0c;全靠自己业余时间瞎琢磨&#xff0c;犹如黑夜中的摸索着过河。 只是顺…

易服客工作室:WordPress是什么?初学者的解释

目录 什么是WordPress&#xff1f; WordPress可以制作什么类型的网站&#xff1f; 谁制作了WordPress&#xff1f;它已经存在多久了&#xff1f; 谁使用 WordPress&#xff1f; 白宫网站 微软 滚石乐队 为什么要使用 WordPress&#xff1f; WordPress 是免费且…

【不支持发行版本 5】错误解决

说明&#xff1a;启动项目报下面的错误&#xff0c;不支持发行版本 5 解决&#xff1a;在pom文件中添加下面这两行配置&#xff0c;修改成你自己安装的jdk版本 <properties><maven.compiler.source>11</maven.compiler.source><maven.compiler.target&g…

TienChin 新建业务菜单

首先是移动菜单&#xff0c;参考下图将菜单移动到下图结构&#xff1a; 我这里将系统监控&#xff0c;系统工具都移动到了系统管理下面&#xff0c;并且排了个序&#xff0c;将多级菜单放在了一起&#xff0c;这样看起来更加的清晰。 修改一下系统管理(100)与TienChin健身官网(…

Blazor:组件生命周期和刷新机制详解

文章目录 前言生命周期子组件设置事件刷新为什么传入非基础元素&#xff0c;会强制刷新 自动刷新逻辑如何解决委托事件强制刷新问题 前言 对于组件化来说&#xff0c;生命周期是必须掌握的知识&#xff0c;只有掌握了生命周期才能更好的去设置数据的变化。 Blazor 生命周期 微…

99. for循环练习题-3种方式输出0-9

【目录】 文章目录 99. for循环练习题-3种方式输出0-91. for循环和while循环的区别2. 输出 0~(n-1)的数字2.1 基础代码2.2 自定义函数代码2.3 异常处理语句代码 【正文】 99. for循环练习题-3种方式输出0-9 1. for循环和while循环的区别 for循环和while循环都用于重复执行特定…