LTM提示使大语言模型中的复杂推理成为可能

发表于2023年ICLR:
在这里插入图片描述
论文链接:https://arxiv.org/pdf/2205.10625.pdf

一、摘要

思维链提示在各种自然语言推理任务中表现出显著的效果。然而,它往往在需要解决比提示中示例更难的问题的任务中表现不佳。为了克服这种易难概括的挑战,我们提出了一种新颖的提示策略,即最少到最多提示( least-to-most prompting)。这个策略的关键思想是把一个复杂的问题分解成一系列更简单的子问题,然后依次解决它们。以前解决的子问题的答案有助于解决每个子问题。我们在与符号操作、组合泛化和数学推理相关的任务上的实验结果表明,最少到最多的提示能够泛化到比提示中看到的更难的问题。一个值得注意的发现是,当GPT-3代码-davinci-002模型与最少到最多提示一起使用时,它可以在任何分割(包括长度分割)中以至少99%的准确率解决构成泛化基准SCAN,仅使用14个示例,相比之下,使用思维链提示只有16%的准确率。这一点特别值得注意,因为文献中专门解决SCAN问题的神经符号模型是在包含超过15,000个示例的整个训练集上训练的。我们在附录中包含了所有任务的提示。

二、介绍

尽管深度学习在过去十年取得了巨大的成功,但人类智能与机器学习之间仍然存在巨大的差异:(1)给定一个新的任务,人类通常可以从几个演示示例中学会完成它,而机器学习需要大量的标记数据进行模型训练;(2)人类可以清楚地解释其预测或决策的基本原理,而机器学习本质上是一个黑盒子;(3)人类可以解决比他们以前见过的任何困难的问题,而对于机器学习,训练和测试中的示例通常处于相同的难度水平。

最近提出的思维链提示方法(COT)为缩小人类智能和机器智能之间的差距迈出了重要的一步。它结合了自然语言原理的思想,并辅以少量提示(few-shot prompting)。当进一步与自一致性解码(self-consistency decoding)相结合,而不是使用典型的贪婪解码时,在许多具有挑战性的自然语言处理任务上,几次思维链提示在很大程度上优于文献中最先进的结果,这些任务是由经过数百倍注释示例训练的特殊设计的神经模型获得的,同时是完全可解释的。

然而,思维链提示有一个关键的局限性——它通常在需要解决比演示示例更难的问题的泛化任务上表现不佳,比如组合泛化。为了解决这些容易而困难的泛化问题,我们提出了从最少到最多提示的建议。它包括两个阶段:首先将一个复杂的问题分解成一系列更容易的子问题,然后依次解决这些子问题,从而通过先前解决的答案来解决给定的子问题。这两个阶段都是通过几次提示(few-shot prompting)来实现的,因此在任何阶段都不需要训练或微调。图1展示了从最少到最多提示的示例用法。

在这里插入图片描述
图1:最小到最多提示分两个阶段求解数学单词问题:(1)查询语言模型,将问题分解为子问题;(2)查询语言模型,依次求解子问题。第二个子问题的答案建立在第一个子问题的答案之上。本图中省略了每个阶段提示符的演示示例。

“least-to-most prompting”一词是从教育心理学中借用来的,在那里它被用来表示使用渐进提示序列来帮助学生学习新技能的技术。在这里,我们将这种技术应用于教授人类语言模型。关于符号操作、组合泛化和数学推理的经验结果表明,从最少到最多的提示确实可以泛化到比所演示的更难的问题。

三、Least-To-Most prompting

最小到最大提示教导语言模型(Least-to-most prompting teaches language models)如何通过将复杂问题分解为一系列更简单的子问题来解决复杂问题。它由两个连续的阶段组成:

  1. 分解。此阶段的提示包含演示分解的固定示例,然后是要分解的特定问题。
  2. 子问题解决。这一阶段的提示由三部分组成:(1)演示如何解决子问题的恒定示例;(2)之前回答的子问题和生成的解决方案的潜在空列表,以及(3)接下来要回答的问题。

在图1所示的示例中,首先要求语言模型将原始问题分解为子问题。传递给模型的提示包含演示如何分解复杂问题的示例(图中未显示),然后是要分解的特定问题(如图所示)。语言模型指出,原始问题可以通过解决中间问题“每次旅行需要多长时间?”来解决。

在下一阶段,我们要求语言模型从问题分解阶段依次解决子问题。原问题作为最后一个子问题追加。解决开始于向语言模型传递一个提示,该提示由说明如何解决问题的示例组成(图中未显示),然后是第一个子问题“每次旅行需要多长时间?”。然后我们使用语言模型生成的答案(“……每次行程需要5分钟”),并通过将生成的答案附加到前一个提示,然后添加下一个子问题来构造下一个提示,该子问题恰好是本例中的原始问题。然后将新的提示传递回语言模型,语言模型返回最终答案。

最少到最多提示可以与其他提示技巧相结合如 chain-of-thought and self-consistency,但不必如此。此外,对于某些任务,最少到最多提示的两个阶段可以合并成一个单遍提示。

四、结果

我们给出了符号操作、组合泛化和数学推理任务(symbolic manipulation, compositional generalization, and math reasoning tasks)的最少到最多提示结果,并将其与思维链提示进行比较。

4.1 符号操作

我们采用最后一个字母连接任务。在这个任务中,每个输入都是一个单词列表,对应的输出是列表中单词的最后一个字母的连接。
例如,“thinking, machine”输出“ge”,因为“thinking”的最后一个字母是“g”,而“machine”的最后一个字母是“e”。当测试列表与提示示例中的列表具有相同的长度时,思维链提示可以完美地完成工作。然而,当测试列表比提示示例中的列表长得多时,它的性能很差。我们表明,最小到最多提示克服了这一限制,并在长度泛化上显著优于思维链提示。

接下来我们分成3个表看:
1、表1中的示例演示了如何将列表分解为一系列子列表。Least-to-most 提示上下文分解。在这里插入图片描述
2、表2中的示例演示了如何将输入映射到所需的输出。给定一个新列表,我们首先将其附加到表1中的示例中,以构造分解提示,该提示被发送到语言模型以获得列表的分解。然后,我们为每个子列表S构造一个解决方案提示,它由表2中的示例组成,后面是前面的子列表/响应对(如果有的话),后面是S。我们依次向语言模型发出这些提示,并使用最后的响应作为最终的解决方案。
在这里插入图片描述
(1)第二个范例(“思考、机器、学习”)是第一个范例(“思考、机器”)列表的延伸,而不是一个完全独立的范例;(2)对“think, machine, learning”的响应是建立在“think, machine”的输出上的,从一句“think, machine”输出“ke”开始。这两个示例一起说明了一个基本情况和一个递归步骤。

Least-to-most prompting教会语言模型如何利用以前解决过的问题的答案来构建新问题的答案.

3、表3列出了最后一个字母连接任务的Chain-of-thought prompting.。它使用与表2中least-to-most prompt 相同的列表。唯一的区别是,在思维链提示中,对第二个列表(“思考、机器、学习”)的响应是从头开始构建的,而不是使用第一个列表(“思考、机器”)的输出。
在这里插入图片描述

随机抽取Wiktionary中的单词,以构建长度从4到12不等的测试列表。对于每个给定的长度,将构造500个列表。GPT-3中编码为davici -002的不同方法的精度见表4。
在这里插入图片描述

表4:不同提示方法在最后一个字母连接任务上的准确率。测试列表的长度从4个增加到12个。

4.2 成分概括

SCAN可能是评估成分泛化的最受欢迎的基准。它需要将自然语言命令映射到动作序列(表5)。
序列到序列模型在长度分割下表现不佳,其中训练集中的动作序列(约占整个集合的80%,有20000多个例子)比测试集中的动作序列短。已经提出了许多专门的神经-符号模型来求解SCAN。我们展示了具有最少到最多提示的大型语言模型可以仅使用几个演示示例来解决SCAN。无需培训或微调。
在这里插入图片描述
表5:SCAN中的示例命令及其相应的动作序列。agent通过执行相应的动作序列成功执行自然语言命令。

Least-to-most提示。与第3.1节中的最后一个字母连接任务类似,SCAN的最小到最大提示基于两种提示:(1)包含8个示例的命令分解提示,用于演示如何将长命令分解为短命令列表(其中一些示例参见表6);
在这里插入图片描述

表6:将长命令分解为短命令序列的两个示例,从提示符最少到最多。

(2)包含14个示例的命令映射提示符,用于演示如何将自然语言命令映射到动作序列(其中一些示例参见表7)。分解和映射的完整提示上下文列在附录8中。命令映射提示符中使用的示例旨在完全涵盖SCAN命令的语义。

在这里插入图片描述

表7: least-to-most /COT提示中获取的两个示例,用于将命令映射到动作序列。Python表达式被用作中间表示。

在我们的提示设计中,我们映射“看两次”“LOOK”* 2而不是“LOOK LOOK”。我们可能不得不指出,这些Python表达式只是中间表示。在从语言模型获得响应后,我们运行一个后处理脚本来扩展Python表达式以生成最终结果。然而,我们也可以进一步教语言模型正确处理表达式,这并不奇怪。以超过99%的组合精度解决SCAN(生成中间Python表达式的精度为99.7%,扩展这些表达式的精度为99.7%),即使我们不使用Python执行器,而是通过提示执行中间表示的扩展。
在这里插入图片描述

SCAN的COT提示使用与least-to-most提示相同的命令映射上下文(参见表7),但它不使用命令分解,命令分解专门用于least-to-most提示。

Least-to-most 策略主要关注在生成文本时逐步增加提示的详细程度,从简单到复杂,以引导模型生成更加合理的文本

4.3 数学推理

在本节中,我们应用least-to-most prompting来解决GSM8K (Cobbe等人,2021)和DROP (Dua等人,2019)中的数学单词问题。我们特别感兴趣的是,结合least-to-most prompting的大型语言模型是否可以解决比提示中看到的更困难的问题。在这里,我们只是通过解决步骤的数量来衡量难度。

在这里插入图片描述
表9:解决GSM8K的最小到最大提示。演示问题只需要两个步骤就可以解决,但是提示符可以处理需要多个步骤才能解决的问题。

我们为解决GSM8K而设计的提示符如表9所示。演示范例由两部分组成。第一部分(从“让我们来分解这个问题……”开始))展示了如何将原始问题分解为更简单的子问题,第二部分展示了如何按顺序解决子问题。请注意,此提示将分解和子问题解决合并到单个步骤中。相反,可以设计两个不同的提示分别用于分解和子问题解决,就像前面部分中最少到最多的提示一样,以进一步提高性能。在这里,我们将重点研究如何将这个简单的“最小到最多”提示从简单的两步问题推广到更复杂的多步问题。

在这里插入图片描述表10:解决GSM8K的思维链提示。它是通过删除分解部分从表9中最小到最大的提示派生出来的

总的来说,从最少到最多的提示只略微提高了思维链提示:从60.97%提高到62.39%。然而,从最少到最多的提示从本质上提高了解决至少需要5个步骤解决的问题的思维链提示:从39.07%提高到45.23%(表12)。

我们发现,在GSM8K中,几乎所有从最少到最多提示都无法解决的问题,最终都可以通过使用手工制作的分解来解决。这不足为奇。对于我们人类来说,只要我们知道如何将一个复杂的问题分解成更简单的子问题,我们实际上已经解决了它。对于DROP基准,从最少到最多的提示在很大程度上优于思维链提示(表11)。这可能是因为DROP中的大多数问题都可以简单地分解

在这里插入图片描述

表11:不同提示方法在GSM8K和DROP上的准确率(%)(仅包含数值问题的子集)。基本语言模型是code-davinci-002。

在这里插入图片描述

表12:最少到最多提示和思维链提示的准确性(%),按预期解决方案中所需推理步骤的数量进行细分。

五、局限性

分解提示通常不能很好地泛化到不同的领域。例如,演示分解数学单词问题的提示(如表9所示)对于教授大型语言模型来分解常识性推理问题(如“亚里士多德使用笔记本电脑吗?”)是无效的。(Geva et al ., 2021)。为了实现最佳性能,必须设计一个新的提示符来演示这些类型问题的分解。在同一领域内推广分解甚至会很困难。我们观察到,如果为大型语言模型提供了对这些具有挑战性的问题的正确分解,那么GSM8K中几乎所有问题都可以准确地解决。这一发现并不令人惊讶,而且与我们解决数学问题的经验一致。每当我们成功地将一个数学问题分解成我们可以解决的更简单的子问题时,我们基本上就解决了原来的问题。在最后一个字母连接任务和SCAN基准测试上取得了出色的结果,因为这些任务中的分解相对简单。

六、结论

我们引入了从最少到最多的提示,使语言模型能够解决比提示更难的问题。这种方法需要两个过程:自顶向下的问题分解和自底向上的解决方案生成。我们的实证研究发现,包括符号操作、组合概括和数学推理,揭示了最少到最多提示显著超过标准提示和思维链提示。一般来说,提示可能不是向大型语言模型教授推理技能的最佳方法。提示可以看作是一种单向的交流形式,在这种形式中,我们指示语言模型而不考虑它的反馈。一个自然的进程是将提示演变成完全双向的对话,使语言模型能够立即得到反馈,从而促进更高效和有效的学习。从最少到最多的提示技术代表了通过这种双向交互向指导语言模型迈出的一大步。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值