GPT-4拿下最难数学推理数据集新SOTA,新型Prompting让大模型推理能力狂升
近期,华为联和港中文发表论文《Progressive-Hint Prompting Improves Reasoning in Large Language Models》,提出 Progressive-Hint Prompting (PHP),用来模拟人类做题过程。在 PHP 框架下,Large Language Model (LLM) 能够利用前几次生成的推理答案作为之后推理的提示,逐步靠近最终的正确答案。要使用 PHP,只需要满足两个要求: 1) 问题能够和推理答案进行合并,形成新的问题;2) 模型可以处理这个新的问题,给出新的推理答案。
结果表明,GP-T-4+PHP 在多个数据集上取得了 SOTA 结果,包括 SVAMP (91.9%), AQuA (79.9%), GSM8K (95.5%) 以及 MATH (53.9%)。该方法大幅超过 GPT-4+CoT。比如,在现在最难的数学推理数据集 MATH 上,GPT-4+CoT 只有 42.5%,而 GPT-4+PHP 在 MATH 数据集的 Nember Theory (数论) 子集提升 6.1%, 将 MATH 整体提升到 53.9%,达到 SOTA。
- 论文链接:https://arxiv.org/abs/2304.09797
- 代码链接:https://github.com/chuanyang-Zheng/Progressive-Hint
介绍
随着 LLM 的发展,涌现了关于 prompting 的一些工作,其中有两个主流方向:
- 一个以 Chain-Of-Thought( CoT,思维链) 为代表,通过清楚得写下推理过程,激发模型的推理能力;
- 另一个以 Self-Consistency (SC) 为代表,通过采样多个答案,然后进行投票得到最终答案。
显然,现存的两种方法,没有对问题进行任何的修改,相当于做了一遍题目之后就结束了,而没有反过来带着答案进行再次检查。PHP 尝试模拟更加类人推理过程:对上次的推理过程进行处理,然后合并到初始的问题当中,询问 LLM 进行再次推理。当最近两次推理答案一致时,得到的答案是准确的,将返回最终答案。具体的流程图如下所示:
在第一次与 LLM 交互的时候,应当使用 Base Prompting (基础提示), 其中的 prompt(提示)可以是 Standard prompt,CoT prompt 或者其改进版本。通过 Base Prompting,可以进行第一次交互,然后得到初步的答案。在随后的交互中,应当使用 PHP,直至最新的两个答案一致。
PHP prompt 基于 Base Prompt 进行修改。给定一个 Base Prompt,可以通过制定的 PHP prompt design principles 来得到对应的 PHP prompt。具体如下图所示:
作者希望 PHP prompt 能够让大模型学习到两种映射模式:
1)如果给的 Hint 是正确答案,那么返回的答案依然要是正确答案 (具体如上图所示的「Hint is the correct answer」);
2)如果给的 Hint 是错误答案,那么 LLM 要通过推理,跳出错误答案的 Hint,返回正确答案(具体如上图所示的「Hint is the incorrect answer」)。
按照这种 PHP prompt 的设计规则,给定任意现存的 Base Prompt,作者都可以设定出对应的 PHP Prompt。
实验
作者使用七个数据集,包括 AddSub、MultiArith、SingleEQ、SVAMP、GSM8K、 AQuA 和 MATH。同时,作者一共使用了四个模型来验证作者的想法,包括 text-davinci-002、text-davinci-003、GPT-3.5-Turbo 和 GPT-4。
主要结果
当语言模型更强大、提示更有效时,PHP 的效果更好。相比于 Standard Prompt 和 CoT Prompt,Complex CoT prompt 表现出了显著的性能提升。分析还显示,使用强化学习进行微调的 text-davinci-003 语言模型比使用监督指令微调的 text-davinci-002 模型表现更好,能够提升文档效果。text-davinci-003 的性能提高归因于其增强的能力,使其更好地理解和应用给定的提示。同时,如果只是使用 Standard prompt,那么 PHP 所带来的提升并不明显。如果需要让 PHP 起到效果,至少需要 CoT 来激发模型的推理能力。
同时,作者也探究了交互次数与模型、prompt 之间的关系。当语言模型更强大,提示更弱时,交互次数会减少。交互次数指代智能体与 LLMs 互动的次数。当收到第一个答案时,交互次数为 1;收到第二个答案时,交互次数增加到 2。在图 2 中,作者展示了各种模型和提示的交互次数。作者的研究结果表明:
1)在给定相同提示的情况下,text-davinci-003 的交互次数通常低于 text-davinci-002。这主要是由于 text-davinci-003 的准确性更高,导致基础答案和后续答案的正确率更高,因此需要更少的交互才能得到最终的正确答案;
2)当使用相同的模型时,随着提示变得更强大,交互次数通常会增加。这是因为当提示变得更有效时,LLMs 的推理能力会得到更好的发挥,从而使它们能够利用提示跳出错误答案,最终导致需要更高的交互次数才能达到最终答案,这使得交互次数增加。
Hint 质量的影响
为了增强 PHP-Standard 的性能,将 Base Prompt Standard 替换为 Complex CoT 或 CoT 可以显著提高最终性能。对 PHP-Standard 而言,作者观察到在 Base Prompt Standard 下,GSM8K 的性能从 16.0% 提高到了在基础提示 CoT 下的 50.2%,再提高到在基础提示 Complex CoT 下的 60.3%。相反,如果将 Base Prompt Complex CoT 替换为 Standard,则最终性能会降低。例如,在将基础提示 Complex CoT 替换为 Standard 后,PHP-Complex CoT 在 GSM8K 数据集上的性能从 71.6% 下降到了 65.5%。
如果 PHP 不是基于相应的 Base Prompt 进行设计,那么效果可能进一步提高。使用 Base Prompt Complex CoT 的 PHP-CoT 在六个数据集中的四个数据集表现优于使用 CoT 的 PHP-CoT。同样地,使用基础提示 CoT 的 PHP-Complex CoT 在六个数据集中的四个数据集表现优于使用 Base Prompt Complex CoT 的 PHP-Complex CoT。作者推推测这是因为两方面的原因:1)在所有六个数据集上,CoT 和 Complex CoT 的性能相似;2)由于 Base Answer 是由 CoT(或 Complex CoT)提供的,而后续答案是基于 PHP-Complex CoT(或 PHP-CoT),这就相当于有两个人合作解决问题。因此,在这种情况下,系统的性能可能进一步提高。
消融实验
将句子 P1 和 P2 纳入模型可以提高 CoT 在三个数据集上的表现,但当使用 Complex CoT 方法时,这两个句子的重要性尤为明显。在加入 P1 和 P2 后,该方法在六个数据集中有五个数据集的表现得到了提升。例如,在 SVAMP 数据集上,Complex CoT 的表现从 78.0% 提高到了 80.0%,在 GSM8K 数据集上从 68.3% 提高到了 71.6%。这表明,尤其是在模型的逻辑能力更强时,句子 P1 和 P2 的效果更为显著。
在设计提示时需要同时包含正确和错误的提示。当设计的提示同时包含正确和错误的提示时,使用 PHP 的效果优于不使用 PHP。具体来说,提示中提供正确的提示会促进生成与给定提示相符的答案。相反,提示中提供错误的提示则会通过给定的提示鼓励生成其他答案
PHP+Self-Consistency
使用 PHP 可以进一步提高性能。通过使用类似的提示和样本路径数量,作者发现在表 6 和图 3 中,作者提出的 PHP-CoT 和 PHP-Complex CoT 总是比 CoT 和 Complex CoT 表现更好。例如,CoT+SC 的样本路径为 10、20 和 40 时,能够在 MultiArith 数据集上达到 96.5% 的准确率。因此,可以得出结论,CoT+SC 的最佳性能为 96.5%,使用 text-davinci-003。然而,在实施 PHP 之后,性能升至 97.1%。同样,作者还观察到在 SVAMP 数据集上,CoT+SC 的最佳准确率为 83.3%,在实施 PHP 后进一步提高到 83.7%。这表明,PHP 可以打破性能瓶颈并进一步提高性能。
使用 PHP 可以降低 SC 的成本,众所周知,SC 涉及更多的推理路径,导致成本更高。表 6 说明,PHP 可以是降低成本的有效方法,同时仍保持性能增益。如图 3 所示,使用 SC+Complex CoT,可以使用 40 个样本路径达到 78.1% 的准确率,而加入 PHP 将所需平均推理路径降低到 10×2.1531=21.531 条路径,并且结果更好,准确率达到了 78.2%。
GPT-3.5-Turbo 和 GPT-4
作者按照以前的工作设置,使用文本生成模型进行实验。随着 GPT-3.5-Turbo 和 GPT-4 的 API 发布,作者在相同的六个数据集上验证了具有 PHP 的 Complex CoT 的性能。作者对这两个模型都使用贪心解码(即温度 = 0)和 Complex CoT 作为提示。
如表 7 所示,提出的 PHP 增强了性能,在 GSM8K 上提高了 2.3%,在 AQuA 上提高了 3.2%。然而,与 text-davinci-003 相比,GPT-3.5-Turbo 表现出对提示的依附能力降低。作者提供了两个例子来说明这一点:a)在提示缺失的情况下,GPT-3.5-Turbo 无法回答问题,并回复类似于 “由于答案提示缺失,我无法回答此问题。请提供答案提示以继续” 的声明。相比之下,text-davinci-003 在回答问题之前会自主生成并填充缺失的答案提示;b)当提供超过十个提示时,GPT-3.5-Turbo 可能会回复 “由于给出了多个答案提示,我无法确定正确的答案。请为问题提供一个答案提示。”
在部署 GPT-4 模型后,作者能够在 SVAMP、GSM8K、AQuA 和 MATH 基准测试上实现新的 SOTA 性能。作者提出的 PHP 方法不断改善了 GPT-4 的性能。此外,与 GPT-3.5-Turbo 模型相比,作者观察到 GPT-4 所需的交互次数减少了,这与 “当模型更加强大时,交互次数会减少” 的发现相一致。
总结
本文介绍了 PHP 与 LLMs 交互的新方法,具有多个优点:1)PHP 在数学推理任务上实现了显著的性能提升,在多个推理基准测试上领先于最先进的结果;2)使用更强大的模型和提示,PHP 可以更好地使 LLMs 受益;3)PHP 可以与 CoT 和 SC 轻松结合,进一步提高性能。
为了更好地增强 PHP 方法,未来的研究可以集中在改进问题阶段的手工提示和答案部分的提示句子的设计上。此外,除了将答案当作 hint,还可以确定和提取有助于 LLMs 重新考虑问题的新 hint。
以上是GPT-4拿下最难数学推理数据集新SOTA,新型Prompting让大模型推理能力狂升的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Vue.js 中字符串转对象时,首选 JSON.parse() 适用于标准 JSON 字符串。对于非标准 JSON 字符串,可根据格式采用正则表达式和 reduce 方法或解码 URL 编码字符串后再处理。根据字符串格式选择合适的方法,并注意安全性与编码问题,以避免 bug。

文章介绍了MySQL数据库的上手操作。首先,需安装MySQL客户端,如MySQLWorkbench或命令行客户端。1.使用mysql-uroot-p命令连接服务器,并使用root账户密码登录;2.使用CREATEDATABASE创建数据库,USE选择数据库;3.使用CREATETABLE创建表,定义字段及数据类型;4.使用INSERTINTO插入数据,SELECT查询数据,UPDATE更新数据,DELETE删除数据。熟练掌握这些步骤,并学习处理常见问题和优化数据库性能,才能高效使用MySQL。

为了设置 Vue Axios 的超时时间,我们可以创建 Axios 实例并指定超时选项:在全局设置中:Vue.prototype.$axios = axios.create({ timeout: 5000 });在单个请求中:this.$axios.get('/api/users', { timeout: 10000 })。

利用地理空间技术高效处理700万条记录并创建交互式地图本文探讨如何使用Laravel和MySQL高效处理超过700万条记录,并将其转换为可交互的地图可视化。初始挑战项目需求:利用MySQL数据库中700万条记录,提取有价值的见解。许多人首先考虑编程语言,却忽略了数据库本身:它能否满足需求?是否需要数据迁移或结构调整?MySQL能否承受如此大的数据负载?初步分析:需要确定关键过滤器和属性。经过分析,发现仅少数属性与解决方案相关。我们验证了过滤器的可行性,并设置了一些限制来优化搜索。地图搜索基于城

总结:将 Vue.js 字符串数组转换为对象数组有以下方法:基本方法:使用 map 函数,适合格式规整的数据。高级玩法:使用正则表达式,可处理复杂格式,但需谨慎编写,考虑性能。性能优化:考虑大数据量,可使用异步操作或高效数据处理库。最佳实践:清晰的代码风格,使用有意义的变量名、注释,保持代码简洁。

MySQL启动失败的原因有多种,可以通过检查错误日志进行诊断。常见原因包括端口冲突(检查端口占用情况并修改配置)、权限问题(检查服务运行用户权限)、配置文件错误(检查参数设置)、数据目录损坏(恢复数据或重建表空间)、InnoDB表空间问题(检查ibdata1文件)、插件加载失败(检查错误日志)。解决问题时应根据错误日志进行分析,找到问题的根源,并养成定期备份数据的习惯,以预防和解决问题。

远程高级后端工程师职位空缺公司:Circle地点:远程办公职位类型:全职薪资:$130,000-$140,000美元职位描述参与Circle移动应用和公共API相关功能的研究和开发,涵盖整个软件开发生命周期。主要职责独立完成基于RubyonRails的开发工作,并与React/Redux/Relay前端团队协作。为Web应用构建核心功能和改进,并在整个功能设计过程中与设计师和领导层紧密合作。推动积极的开发流程,并确定迭代速度的优先级。要求6年以上复杂Web应用后端

MySQL性能优化需从安装配置、索引及查询优化、监控与调优三个方面入手。1.安装后需根据服务器配置调整my.cnf文件,例如innodb_buffer_pool_size参数,并关闭query_cache_size;2.创建合适的索引,避免索引过多,并优化查询语句,例如使用EXPLAIN命令分析执行计划;3.利用MySQL自带监控工具(SHOWPROCESSLIST,SHOWSTATUS)监控数据库运行状况,定期备份和整理数据库。通过这些步骤,持续优化,才能提升MySQL数据库性能。
