​基于MCTS和Residual-EBM的数学推理能力提升实践

news2024/7/2 3:49:19

2c07d9dbf5d04b54b30a212c0f13e999.gif

©PaperWeekly 原创 · 作者 | 许皓天

99201c07562d77ed355e2b63d4e4a45d.png

导读

LLM 在 NLP 以及 ai-agent 等场景展现出了巨大的应用潜力,并且在复杂推理任务如 math 等任务极大提升了模型性能。

近期,基于 llama2 的 RFT [1] 以及 wizard-math [2] 等通过 rejection-sampling、RLEIF(从 Evol-Instruct 反馈中强化学习(RLEIF)等提升了开源模型的数学能力。比如,wizard-math 使用 Evol-instruct 构造更多量的 SFT 数据,并且引入基于 chatgpt 的过程打分、结果打分的 reward 建模和 PPO 等,使得开源模型能够与闭源模型如 chatgpt 等相当。

然而,这些方法主要通过构造更多的数据实现效果的提升。我们认为,底座模型已经具备一定的推理能力,但缺少有效的采样方法。传统采样方法如 greedy-decoding、beam-search 等均是根据当前 token 的输出概率进行采样,缺少全局评估反馈。这种局部 token 采样的方法,极大限制了模型性能。

为此,我们提出了基于 Residual-EBM [3] 和 MCTS [5] 的方法,在微调好的模型上,使用 EBM 和 MCTS 采样,初步实验显示,该方法能极大提升微调好的模型的数学能力,而不需要使用额外数据重新训练或者 RLHF 等对齐方法。

89a135df801eaae978b76111717dedb4.png

Residual-EBM and PPO

Residual-EBM [3] 构建了一个基于自回归模型的能量语言模型,可以有效降低 exposure bias。同时,[4] 也指出,PPO+KL-divergence 是边际分布的变分近似,而其最优解为:

534720722e7197d3c13e1e03f7e98a87.png

这里,我们可以看到最优解与 Residual-EBM [3] 有着类似形式:

cbea157c0d89b2d868789fc7fa8d29c0.png

这里, 为输入序列如 prompt, 为输出序列。我们可以看到,Residual-EBM 等价于自回归语言模型与句子级别的能量模型的乘积。而  通过全局能量模型对输出句子打分,从而降低模型的 exposure bias。

7b2b174c9adb24316f8a7ff1740bed43.png

MCTS

MCTS [5] 是一种解决高维推理问题强有力的工具,在诸如 alpha-go、游戏 ai 等均有应用。近期,TOT [6] 等工作提出了基于树搜索的 COT 算法,提升复杂推理问题的解决能力。这些方法通过使用 BFS、DFS 等搜索算法实现 exploration,并且使用 chatgpt 等接口对中间过程进行打分。[7] 也提出了类似的算法但使用不同的排序函数,实现更高的推理能力。

然而,这些方法均使用了确定性的探索方法如 BFS 等,缺少高效探索。同时,路径打分和排序都需要较为强大的模型如 chatgpt 进行评估。

相比之前的方法,MCTS 能够具备更好的复杂空间探索能力,是解决复杂决策或者组合问题的 SOTA。然而,为了应用 MCTS,依然需要训练一个 task-specific的打分模型,对潜在的决策路径打分。[7][8][9] 均提出了不同的路径打分模型。这些路径打分模型依赖一定量的标注数据,在 sample-then-rank 的设置下,[8][9] 的打分模型并没有对结果带来显著提升。也从一定程度说明,这些打分函数很难很好的评估输出路径。

76e8f85ef681ee9fffb52494b564b9dd.png

NCE

从 Residual-EBM 以及 MCTS 的基本介绍我们可以看到,我们可以使用能量函数可以对完整句子打分并作为 MCTS 的路径评分函数。为了优化能量模型,我们使用 Noise Contrastive Estimation(NCE)[10] 优化。得益于 Residual-EBM 的形式,最终的优化目标函数如下:

56148a5510dc4d4eef19ef2ed1ad973d.png

具体推导过程可以参考 [10]。这里,K 为负样本数量。

0ca65e37ff483282cdc2f9329345faf0.png

们的方法

5.1 能量模型参数估计

我们将训练好的 SFT 模型作为基础模型,并使用 Residual-EBM 的形式得到最终的采样模型。为了高效训练能量模型,我们使用 NCE 算法估计(这里,隐含了归一化系数为常数的假设。实际中不一定成立)。

使用 NCE 优化能量模型,我们需要从数据分布和 noise 分布分别采样样本。数据分布为 SFT 训练集。noise 分布为 SFT 模型 [11]。noise 分布可以使用 infilling、reorder 等不同的生成模型建模。使用 SFT 模型是最为简单直接的方案。

NCE 的负样本为从 SFT 模型采样的样本集合。我们考虑了 2 种不同的负样本生成方法。

  1. 给定 prompt,多次随机采样。过滤错误答案、过程高度相似的样本 [1]。为了节约采样成本,我们使用 [1] 中提供的样本作为负样本。记作 RFT

  2. 给定 prompt 和 suboutput(训练集正确推理路径的前 N 步),生成后续的推理过程。将 suboutput 拼接生成的推理路径作为负样本。记作 suboutput

我们使用 Deberta-large 作为能量模型在 RFT、RFT&suboutput 两个负样本上面完成训练。

5.2 基于MCTS的采样

MCTS 是解决组合问题强有力的武器。然而,文本生成问题,每一个 step 需要对  大小(这里, 是词表大小)的 action 空间采样。极大降低了采样效率。为此,我们将生成的句子作为 MCTS 中的节点,有效降低了 MCTS 的采样成本 [9]。 下图为 MCTS的基本算法流程。具体原理可参考 [5]。

a374cb212fadfed73f990252ddf25f7e.png

▲ MCTS算法流程

9916b654fae98b087cf6f65ad373ee50.png

实验结果

我们基于 GSM-8k 以及 LLama2-7b 作为我们的实验数据和基础模型。在 gsm-8k 数据 SFT 模型的基础上,探讨了不同采样方法的效果。评价指标为答案的 acc。我们主要参考并修改了 [9][15][16] 的开源代码。

6.1 基于Residual-EBM的重要性采样

这里,我们对比了 greedy-decoding、self-consistency majority-voting 以及基于同一批采样数据的 Residual-EBM 重要性采样(类 softmax 排序)结果。

54e6c1fafea17c48fa14bd8fee6ff9a2.png

从上表可以看到,基于能量模型的采样 [3] 可以有效提升推理效果。pass@1 的 acc 从 41.69 提升到 46.77。基于不同负样本和 noise-ratio 的 NCE 训练也对采样结果有较大的影响。

  1. 基于 RFT 的负样本比 RFT+suboutput 的效果更差一些。suboutput 生成的数据与原始数据有更高的重合度,增加了能量模型的学习难度。

  2. 当我们增加负样本后(大概一条训练数据样本有 10 条负样本)。noise-ratio 的 NCE 具有更好的判别效果。

6.2 基于MCTS的采样

为了进一步验证 MCTS 的采样效果,我们使用 ebm-RFT&suboutput-noise-ratio=10 的能量模型作为打分模型,对 MCTS-rollout 的样本进行评估。并根据 node-visit 和 node-reward 的最大值(如先看 node-visit 的最大值,如果有多个,则选择 node-reward 最大的)选择 node 作为当前 step 的决策输出路径。最终,我们仅输出一条路径作为最终的推理路径(但 MCTS 迭代会产生很多中间路径)。

caf6e2380e9e0a8c486682fe28bdb23e.png

从上表可以看到,基于 MCTS+EBM 打分的方法,能够将 pass@1 只有 41.69 的模型提升到 52.23,提升了 10 个点以上。媲美使用 RFT、RLEIF 等使用更多 SFT 数据或者 RL 对齐的方法。也验证了弱模型也能通过更合理的采样方法实现更高的推理效果。从而,在微调好的模型基础上提升模型的推理效果。

基于 RFT 的 EBM 能量模型的 MCTS 采样,由于输出只采样了答案正确的路径,对于 suboutput 的路径判别能力较弱,相比原始的 greedy-decoding、sample-then-rank 有一定提升,但远远差于使用加入 suboutput 的 EBM+MCTS 的效果,也一定程度说明路径打分模型需要更好的适配采样过程。

为了验证 MCTS-EBM 是否能迁移到其它 SFT 模型,我们基于 RFT-7b、RFT-13b 以及 wizard-math-7b 分别应用 mcts+ebm。从上表可以看出,RFT-7b 和 RFT-13b 均是在原始 gsm8k 数据集训练得到,与能量函数的训练数据分布一致。在这两个模型上,我们也能看到较为一致的提升,即 RFT-7b 从 50.30 提升到 56.78,RFT-13b 从 55.40 提升到 61.46。

而 wizard-math 由于引入了强化学习对齐、过程 reward 等等,导致 wizard-math 的训练数据分布与 gsm8k 的数据分布相差较大,所以,我们也能看到,在 wizard-math 上加 mcts-ebm 的采样效果下降较为明显,也间接表明 energy-function 即使在同一个任务但不同的数据格式上的迁移能力会比较弱,未来,需要探索 energy-function 的泛化能力提升方案如使用更多样的 noise-distribution、noise 构造方法等生成更多样的 noise-sample。

MCTS-EBM 在不同的基础 带来的提升不一致,比如底座越弱,带来的提升越明显(如 sft-greedy-decoding 从 41.69 提升到 52.23),而更强的底座如 RFT-7b, RFT-13b 带来的提升越弱,RFT-7b 从 50.30 提升到 56.78,而 RFT-13b 只能从 55.40 提升到 61.48。

181cea0ce9ccd1e4940769c8ee0cff3a.png

总结

本文提出了基于 Residual-EBM 和 MCTS 的采样方法,不需要重新训练模型的条件下,能够提升 GSM-8k 模型的推理效果,将 greedy-decoding 只有 41.69 的 pass@1 acc 提升到 52.23,从而初步验证了“通过更好的采样方法,可以实现弱鸡模型能力的巨大提升”。

本文提出的能量模型训练可以扩展到其它应用场景,通过 SFT/infilling 等不同的方法完成 noise-distribution 的模型训练和采样,从而实现无监督的打分模型训练,降低打分模型的构建成本。同时,该方法构建的打分模型在 sample-then-rank 的设置下,也具有一定的效果提升。

未来,我们也会探讨能量模型在不同数据集、不同任务的迁移能力。其它材料可参考 [12][13][14]。

本文初步验证了 Residual-EBM+MCTS 在不训练模型的条件下,可以极大提升模型的推理效果。然而,MCTS 的采样成本相比直接采样要高很多,从而降低了实际应用价值。另外,我们通过使用 "tiny" 能量模型(deberta-large 相比 llama2-7b,前者已然属于 tiny 模型)打分,也能帮助大模型实现更好的效果。

outside_default.png

参考文献

outside_default.png

[1] SCALING RELATIONSHIP ON LEARNING MATHEMATICAL REASONING WITH LARGE LANGUAGE MODELS

[2] WizardMath: Empowering Mathematical Reasoning for Large Language Models via Reinforced Evol-Instruct

[3] Residual Energy-Based Models for Text Generation

[4] RL with KL penalties is better viewed as Bayesian inference

[5] Monte Carlo Tree Search: A Review of Recent Modifications and Applications

[6] Deliberate Problem Solving with Large Language Models

[7] Large Language Model as Autonomous Decision Maker

[8] Discriminator-Guided Multi-step Reasoning with Language Models

[9] Solving Math Word Problems via Cooperative Reasoning induced Language Models

[10] https://leimao.github.io/article/Noise-Contrastive-Estimation/

[11] Joint Energy-based Model Training for Better Calibrated Natural Language Understanding Models

[12] https://zhuanlan.zhihu.com/p/648136217

[13] https://zhuanlan.zhihu.com/p/645388566

[14] https://zhuanlan.zhihu.com/p/650438958

[15] https://github.com/NohTow/PPL-MCTS

[16] https://github.com/TianHongZXY/CoRe

更多阅读

132897408ab77dd60d9d9f83c5bf4b12.png

343d4950ab740beacea3a8b034f54880.png

29af6ccce29e09195f2a0aa8071bb885.png

cee8396f0aac90d805ddd377e113c9e1.gif

#投 稿 通 道#

 让你的文字被更多人看到 

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

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

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

📝 稿件基本要求:

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

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

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

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

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

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

fff5274f7bf5a5efdd3c2a3d0e3af30d.png

△长按添加PaperWeekly小编

🔍

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

进入知乎首页搜索「PaperWeekly」

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

·

·

4a8058df3eb12d34ec3d539e449e10c1.jpeg

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

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

相关文章

2023--亲测C语言环境搭建并运行一个简单的贪吃蛇(含编译后的exe)_window

一. 说明 安装教程博客参考这里博主写的用VScode加C语言编译器(MinGW-W64 GCC)的方式在window搭建的方法. 博客里面要用上的资源0积分下载(vscode那个不翻墙下载得太慢了) *就别再用什么VC6.0了,都win11都出来了&am…

金蝶云星空和金蝶云星空接口打通对接实战

金蝶云星空和金蝶云星空接口打通对接实战 接通系统:金蝶云星空 金蝶K/3Cloud(金蝶云星空)是移动互联网时代的新型ERP,是基于WEB2.0与云技术的新时代企业管理服务平台。金蝶K/3Cloud围绕着“生态、人人、体验”,旨在帮助…

阿里后端开发:抽象建模经典案例【文末送书】

文章目录 写作前面1.抽象思维2.软件世界中的抽象3. 经典抽象案例4. 抽象并非一蹴而就!需要不断假设、验证、完善5. 推荐一本书 写作末尾 写作前面 在互联网行业,软件工程师面对的产品需求大都是以具象的现实世界事物概念来描述的,遵循的是人…

如何一次让ChatGPT输入多个版本的内容供你选择

随着人工智能的不断进步,我们对于AI工具的需求也在日益增加。尤其是像GPT这样的高级工具,单一的答案输出已经不能满足用户的多元需求。实际上,当我们面对一个问题时,多种答案的输出能让我们更全面地了解和思考,这样我们…

小程序赖加载刷新数据页面数据堆叠问题debug

目录 项目所需 原生写赖加载存在的bug 解决问题思路及代码实现 思路: 代码实现: 列表.wxml 列表.js Wenjain_shanchu.js Wenjain_shanchu.json Wenjain_shanchu.wxml shouye.js ⭐️ 好书推荐 【内容简介】 项目所需 某高校大一新生入学&am…

LLM 02-大模型的能力

LLM 02-大模型的能力 我们将深入探讨GPT-3——这个具有代表性的大型语言模型的能力。我们的研究主要基于GPT-3论文中的基准测试,这些测试包括: 标准的自然语言处理(NLP)基准测试,例如问题回答;一些特殊的一…

浅谈Oauth2.0授权

一、背景 近期公司准备上身份认证平台(IAM),主要有两块内容,一部分是单点登录、一部分是账号生命周期管理。其中涉及几个常用的单点登录标准认证协议,其中有SMAL、LOAP、CAS、OIDC、Oauth2.0,本篇文章对Oau…

计算机毕设之基于springboot+vue的社区团购管理系统的设计与实现--前后端分离项目(内含源码+文档+教程)

博主介绍:✌全网粉丝10W,Java领域新星创作者,前互联网大厂软件研发、专注于计算机相关专业毕业项目实战✌ 🍅由于篇幅限制,想要获取完整文章或者源码,或者代做,拉到文章底部即可看到个人VX。🍅 2023年 - 20…

4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒!

4个维度讲透ChatGPT技术原理,揭开ChatGPT神秘技术黑盒! 3.1 提示学习3.2 上下文学习3.3 思维链4.1 拥抱变化4.2 定位清晰4.3 合规4.4 经验沉淀 ) 博主 默语带您 Go to New World. ✍ 个人主页—— 默语 的博客👦🏻 《java 面试题…

Python计算机Python二级知识点整理

1. 此时我们这里首先解析一下这个d[A]N,根据ASCII表,我们可以看出字符A对应的十进制数字是65,ord()函数是把字符转换为相对应的ASCII码,chr()函数是ord()函数的逆运算,所以ord("A")65 ,chr(65)A,题目中首先定义了d为一…

无涯教程-JavaScript - XIRR函数

描述 XIRR函数返回的现金Stream量表的内部收益率不一定是周期性的。要计算一系列定期现金Stream量的内部收益率,请使用IRR函数。 语法 XIRR (values, dates, [guess])争论 Argument描述Required/OptionalValues 与日期付款时间表相对应的一系列现金Stream量。 请参阅下面的…

1.centos7安装docker

本文目录: 1.docker 安装1.安装步骤2.安装是否成功校验3.docker加速配置4.hello world来袭,验证安装是否ok 2.卸载docker3.卸载较旧版本docker 使用docker必备的三个官方网站: docker官网:https://www.docker.com docker官方仓库&…

Java笔记:阻塞队列

1. 什么是阻塞队列? 阻塞队列(BlockingQueue)是一个支持两个附加操作的队列。这两个附加的操作是:在队列为空时,获取元素的线程会等待队列变为非空。当队列满时,存储元素的线程会等待队列可用。阻塞队列常…

github一些有趣的使用场景和基本使用方法

文章目录 github的使用入门安装 Git创建 GitHub 帐户在本地设置 Git克隆仓库进行修改和提交推送更改拉取更新 删除Github上废弃的仓库注意 github更多有趣的使用场景协作和社交编程文档和知识库学习和教育自动化工作流程数据科学和可视化用来写blogGitHub PagesJekyllHexo第三方…

本地离线安装numpy低版本指南

不熟悉python,这几天瞎胡摸索 使用百度paddlepaddle的paddlespeech实现文字和语音互转,在linux系统没有任何问题,一切按照官方文档操作即可 由于本地机器是windows,配置相对较高,就想着在windows整一个paddlepaddle,继续按照官方文档操作,一直报错,首先是numpy版本过高,然后下…

低代码PMS:同事带的项目比我多,为什么管得还比我好?

近年来,随着客户需求不断多元化,要求不断精细化,越来越多企业意识到了项目管理的必要性。通过一款良好的项目管理系统,企业可以在综合管理项目的方方面面,确保实现项目目标的同时,让管理过程化繁为简。 PM…

第二证券:自动驾驶渐近 机构大佬齐看好

据姑苏发布9月11日音讯,国内首条满意车路协同式主动驾驭等级的全息感知才智高速公路即将在江苏姑苏启用。据介绍,该项目覆盖苏台高速S17(黄埭互通-阳澄湖北互通)。目前已完结悉数工程量超80%,估计9月底完结体系联调联试…

ChatGPT影响不可逆,与AI“共存”才是大趋势

不久前,英国24所顶尖大学联合宣布要撤销ChatGPT禁令! 不但联合宣布允许学生和教职员工在合乎道德的情况下使用生成式人工智能,还宣布学校会亲自指导学生使用。 此消息一出来可是让英国留学生们炸开了锅… 几个月前,二十多所英国学…

【微信小程序开发】一文学会使用视图组件进行界面设计

引言 在小程序开发中,界面设计是非常重要的一环。本文将介绍如何学习使用小程序的视图组件进行界面设计,并提供代码示例。 文章目录 引言1. 小程序视图组件简介2. 视图组件的使用方法2.1. 组件的引入2.2. 组件的使用2.3. 组件的事件绑定2.4. 组件的样式设…

通过数据模板自动生成表格table

1.数据模板中的主要几个参数需要注意下(需要加样式可自由设置参数): title:填入表格的内容 col:1,占一列,row: 3,占3行 align:center居中对齐, pdL:14,padding-left:14, bold:true,加粗 width:100&#xff…