GPT-4拿下最难数学推理数据集新SOTA,新型Prompting让大模型推理能力狂升
机器之心 2023-05-14 12:16 发表于北京
机器之心专栏
机器之心编辑部
模拟人类推理过程,华为诺亚提出 Progressive-Hint Prompting (PHP) 引导大模型渐近正确答案。
近期,华为联和港中文发表论文《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。
介绍
随着 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),这就相当于有两个人合作解决问题。因此,在这种情况下,系统的性能可能进一步提高。