大语言模型综述(六)模型使用

2023年05月04日 22:13350阅读 · 1喜欢 · 0评论

dupaper

经过预训练或自适应调整后,使用大语言模型的一个主要方法是设计适合解决各种任务的提示策略。一种典型的提示方法是上下文学习,它以自然语言文本的形式制定任务描述或演示。此外,思维链提示可用于通过将一系列中间推理步骤纳入提示来增强上下文学习。接下来,我们将详细说明这两种技术的细节。

上下文学习(In-Context Learning)

作为一种特殊的提示形式,上下文学习(in-context learning,ICL)首先与GPT-3一起被提出,这已成为利用大语言模型的典型方法。

提示公式

如“Language models are few-shot learners”所述,ICL 使用格式化的自然语言提示包括任务描述一些任务示例作为演示。图显示了 ICL 的图示。首先,从任务描述开始,从任务数据集中选择一些示例作为演示。然后,将它们按照特定的顺序组合在一起,形成具有专门设计模板的自然语言提示。最后,将测试实例附加到演示中作为大语言模型生成输出的输入。基于任务演示,大语言模型可以在没有显式梯度更新的情况下识别并执行新任务。

情境学习 (ICL) 和思维链 (CoT) 提示的比较说明。 ICL 用自然语言描述、几个演示和一个测试查询来提示大语言模型。而 CoT 提示涉及提示中的一系列中间推理步骤。

形式上,令 Dk = f{(x1; y1); ......; f(xk; yk) }表示一组有 k 个例子的演示,其中 f(xk; yk) 是将第 k 个任务例子转换为自然语言提示的提示函数。给定任务描述 I、演示 Dk 和一个新的输入查询 xk+1,大语言模型生成的输出 y^k+1 的预测可以表示如下

其中实际答案 yk+1 留作空白,由大语言模型预测。由于 ICL 的性能严重依赖演示,因此在提示中正确设计它们是一个重要问题。根据上面式子的构建过程,我们重点关注三个方面的提示格式化演示,包括如何选择组成演示的示例,用函数f(·)将每个示例格式化为提示,并安排合理的展示顺序。

综述论文“A survey for in-context learning”中对 ICL 进行了全面调研,我们建议读者参考该论文,以便就此主题进行更广泛、更详细的讨论。与本次综述相比,我们特别从演示设计和 ICL 的底层机制两个方面重点讨论了将 ICL 应用于大语言模型。此外,ICL 还与指令调整有着密切的联系,因为两者都使用自然语言来格式化任务或实例。

示范设计(Demonstration Design)

多项研究表明,ICL 的有效性在很大程度上受演示设计的影响。我们将从三个主要方面介绍 ICL 的演示设计,即示范选择、格式顺序

示范选择。 ICL 的性能往往与不同的演示示例有很大差异,因此选择能够有效利用大语言模型的 ICL 能力的示例子集很重要。有两种主要的演示选择方法,即启发式方法和基于大语言模型的方法:

启发式方法。由于简单和低成本,现有工作广泛采用启发式方法来选择演示。一些研究使用基于 k-NN 的检索器来选择与查询语义相关的示例。但是,他们对每个示例单独执行选择,而不是将示例集作为一个整体进行评估。为了解决这个问题,提出了基于多样性的选择策略来为特定任务选择最具代表性的示例集。此外,在“Complementary explanations for effective in-context learning”中,在选择演示时同时考虑了相关性和多样性。

基于大语言模型的方法。另一行工作通过使用大语言模型来选择演示。例如,大语言模型可用于根据添加示例后的性能增益直接测量每个示例的信息量。此外,EPR提出了一种两阶段检索方法,首先使用无监督方法(例如 BM25)召回相似示例,然后使用密集检索器(使用大语言模型标记的正例和负例进行训练)对它们进行排序。作为一种替代方法,演示选择的任务可以表述为 RL 问题,其中大语言模型作为奖励函数为训练策略模型提供反馈。由于大语言模型在文本注释方面表现良好,最近的一些研究使用大语言模型本身作为演示生成器,无需人工干预。

总而言之,如“An explanation of in-context learning as implicit bayesian inference”中所讨论的,对于上述两种选择方法,ICL中选择的演示示例应该包含足够的关于要解决的任务的信息,并且与测试查询相关。

演示格式。选择任务示例后,下一步是将它们集成并格式化为大语言模型的自然语言提示。一种直接的方法是用相应的输入输出对来实例化一个预定义的模板。为了构建信息量更大的模板,最近的研究考虑添加任务描述或使用思维链提示增强大语言模型的推理能力。例如,在 “Cross-task generalization via natural language crowdsourcing instructions”中,作者收集了一个大型数据集,其中包含人类编写的任务描述。使用此数据集进行调优后,可以提高已见任务的性能,并且大语言模型还可以在一定程度上泛化到未见任务。为了降低注释成本,“Self-instruct: Aligning language model with self generated instructions” 中提出了一种半自动化方法,通过使用由人工编写的任务描述组成的种子集来指导大语言模型为新任务生成任务描述。由于为不同的任务手动注释演示格式的成本很高,因此一些工作还研究了如何自动生成高质量的演示格式。作为两种具有代表性的方法,Auto-CoT 利用大语言模型的零样本提示“让我们逐步思考”来生成中间推理步骤,而 least-tomost 提示首先查询大语言模型以执行问题分解,然后利用大语言模型根据先前已解决问题的中间答案顺序解决子问题。

示例排序。 大语言模型有时会受到新近度偏差的影响,即它们倾向于重复演示接近尾声的答案 。因此,以合理的顺序安排演示(即任务示例)很重要。早期的工作提出了几种启发式方法来快速找到一个好的顺序。例如,演示可以根据它们与嵌入空间中的查询的相似性直接组织越相似,越接近结束。此外,全局和局部熵度量可用于对不同的演示顺序进行评分。为了整合更多的任务信息,最近的一些研究提出最小化压缩和传输任务标签所需的代码长度,这是受信息论 的启发。然而,这些方法需要额外的标记数据作为验证集来评估特定演示订单的性能。为了消除这种需要,“Fantastically ordered prompts and where to find them: Overcoming few-shot prompt order sensitivity”中的作者建议从大语言模型本身抽样验证数据。

底层机制

经过预训练后,大语言模型可以在不更新的情况下展现出有趣的 ICL 能力。接下来,我们将讨论关于大语言模型的 ICL 能力的两个关键问题,即“预训练如何影响 ICL 能力”和“LLM 在推理过程中如何执行 ICL”。

预训练如何影响 ICL? ICL 最早是在 GPT-3中提出的,它表明 ICL 能力随着模型尺寸的增大而变得更加显着。同时,一些研究表明,小型 PLM 也可以通过专门设计的训练任务(例如,学习以任务示例和查询作为输入来预测标签)表现出强大的 ICL 能力,甚至可能超过更大的模型。这表明训练任务的设计是大语言模型 ICL 能力的重要影响因素。除了训练任务,最近的研究还调查了 ICL 和预训练语料库之间的关系。已经表明,ICL 的性能在很大程度上取决于预训练语料库的来源,而不是规模。另一项研究“Data distributional properties drive emergent in-context learning in transformers”对训练数据分布的影响进行了深入分析。他们发现,当训练数据可以聚集到许多不频繁的类中,而不是均匀分布时,ICL 就会出现。此外,“An explanation of in-context learning as implicit bayesian inference”中的作者从理论上将 ICL 解释为对表现出长程连贯性的文档进行预训练的产物。

大语言模型如何执行 ICL在推理阶段,研究人员专注于分析 ICL 功能如何基于给定的演示运行,因为不涉及显式学习或更新。他们通常从梯度下降的角度进行分析,并将 ICL 视为隐式微调。在此框架下,ICL 过程可以解释如下:大语言模型通过前向计算生成关于演示的元梯度,并通过注意力机制隐式执行梯度下降。实验还表明,大语言模型中的某些注意力头能够执行与任务无关的原子操作(例如,复制和前缀匹配),这与 ICL 能力密切相关。为了进一步探索 ICL 的工作机制,一些研究将 ICL 抽象为一个算法学习过程。具体来说,“What learning algorithm is in-context learning? investigations with linear models”中的作者发现大语言模型本质上是在预训练期间通过其参数对隐式模型进行编码。借助 ICL 中提供的示例,大语言模型可以实现梯度下降等学习算法或直接计算闭式解以在正向计算期间更新这些模型。在这个解释框架下,已经表明大语言模型可以有效地学习简单的线性函数,甚至是一些复杂的函数,比如带有 ICL 的决策树。

思维链提示(Chain-of-Thought Prompting)

思维链 (CoT) 是一种改进的提示策略,可提高大语言模型在复杂推理任务上的性能,例如算术推理、常识推理和符号推理。 CoT 不是像在 ICL 中那样简单地使用输入-输出对构建提示,而是合并了可以导致最终输出到提示中的中间推理步骤。在下文中,我们将详细说明 CoT 与 ICL 的用法,并讨论 CoT 提示何时以及为何起作用。

使用 CoT 进行上下文学习

通常,CoT 可以在两种主要设置中与 ICL 一起使用,即少样本和零样本设置,如下所述。

小样本CoT。小样本CoT是ICL的一个特例,它通过结合CoT推理步骤,将每个演示的输入、输出扩充为输入、CoT、输出。为了应用这一策略,我们接下来讨论两个关键问题,即如何设计适当的CoT提示,以及如何利用生成的CoT来获得最终答案。

CoT提示设计。设计适当的 CoT 提示对于有效激发大语言模型的复杂推理能力至关重要。作为一种直接的方法,它表明使用不同的 CoT(即每个问题的多个推理路径)可以有效地提高它们的性能。另一个直观的想法是,具有更复杂推理路径的提示更有可能引发大语言模型的推理能力,这可以导致生成正确答案的准确性更高。然而,这两种方法都依赖于带注释的 CoT 数据集,这限制了它们在实践中的使用。为了克服这个限制,AutoCoT 提出利用 Zero-shot-CoT 通过特别提示大语言模型来生成 CoT 推理路径,从而消除手动工作。为了提高性能,Auto-CoT 进一步将训练集中的问题划分到不同的簇中,然后选择最接近每个簇质心的问题,这应该能很好地代表训练集中的问题。虽然 few-shot CoT 可以被认为是 ICL 的一种特殊提示情况,但与 ICL 中的标准提示相比,演示的排序似乎具有相对较小的影响:重新排序演示只会导致性能变化小于 2%大多数任务。

增强的 CoT 策略。除了丰富上下文信息外,CoT 提示还提供了更多选项来推断给定问题的答案。现有研究主要集中在生成多个推理路径,并试图在派生答案中找到共识。例如,在生成 CoT 和最终答案时,自洽性被提议作为一种新的解码策略。它首先生成几个推理路径,然后对所有答案进行集成(例如,通过在这些路径中投票选择最一致的答案)。自洽性大大提高了 CoT 推理的性能,甚至可以改善 CoT 提示通常比标准提示差的一些任务(例如,闭卷问题回答和自然语言推理)。此外,“Rationale-augmented ensembles in language models”中的作者将自洽策略扩展到更通用的集成框架(扩展到提示上的集成),他们发现多样化的推理路径是 CoT 推理性能提升的关键。上述方法可以很容易地集成到 CoT 提示中,无需额外训练即可提高性能。相比之下,其他研究训练了一个评分模型来衡量生成的推理路径的可靠性或在自己生成的推理路径上不断训练大语言模型以提高性能。

零样本CoT。与少样本 CoT 不同,零样本 CoT 在提示中不包含人工注释的任务演示。相反,它直接生成推理步骤,然后使用生成的 CoT 来得出答案。Zero-shot CoT最早在“Large language models are zero-shot reasoners”中提出,大语言模型首先由“Let's think step by step”提示生成推理步骤,然后由“Therefore, the answer is”提示得出最终答案。他们发现,当模型规模超过一定规模时,这种策略会极大地提高性能,但对小规模模型无效,显示出显着的涌现能力模式。为了在更多任务上解锁 CoT 能力,Flan-T5 和 Flan-PaLM进一步对 CoT 注释进行指令调优,提高了未见任务的零样本性能。

关于 CoT 的进一步讨论

在这一部分中,我们将讨论与 CoT 相关的两个基本问题,即“CoT 何时适用于大语言模型”和“为什么大语言模型可以执行 CoT 推理”。

CoT 何时适用于大语言模型?由于 CoT 是一种涌现能力,它只对足够大的模型(例如,通常包含 10B 或更多参数)有积极影响,但对小模型没有影响。此外,由于 CoT 通过中间推理步骤增加了标准提示,因此它主要有效改进需要逐步推理的任务,例如算术推理、常识推理和符号推理。然而,对于不依赖于复杂推理的其他任务,它可能表现出比标准提示更差的性能,例如来自 GLUE 的 MNLI-m/mm、SST-2 和 QQP。有趣的是,CoT 提示带来的性能提升似乎只有在标准提示产生较差结果时才会显着。

为什么大语言模型可以进行 CoT 推理?作为第二个问题,我们从以下两个方面讨论 CoT 的底层机制。

CoT能力的来源。关于 CoT 能力的来源,人们普遍假设它可以归因于代码训练,因为在其上训练的模型显示出强大的推理能力。直观上,代码数据组织良好,具有算法逻辑和编程流程,这可能有助于提高大语言模型的推理性能。然而,这个假设仍然缺乏消融实验的公开报道证据(有和没有代码训练)。此外,指令调优似乎不是获得 CoT 能力的关键原因,因为经验表明,对非 CoT 数据的指令调优不会提高在保留的 CoT 基准上的性能。

提示组件的效果。 CoT 提示和标准提示之间的主要区别是在最终答案之前结合了推理路径。因此,一些研究人员调查了推理路径中不同组件的影响。具体来说,最近的一项研究确定了 CoT 提示中的三个关键组成部分,即符号(例如,算术推理中的数值量)、模式(例如,算术推理中的方程式)和文本(即,其余不是符号或模式的标记)。结果表明,后两部分(即模式和文本)对模型性能至关重要,删除任何一个都会导致性能显着下降。然而,符号和模式的正确性似乎并不重要。此外,文本和模式之间存在共生关系:文本帮助大语言模型生成有用的模式,模式帮助大语言模型。理解任务并生成有助于解决问题的文本。总之,CoT 提示提供了一种通用而灵活的方法来激发大语言模型的推理能力。

总之,CoT提示为激发大语言模型的推理能力提供了一种通用而灵活的方法。也有一些初步尝试将该技术扩展到解决多模式任务和多语言任务。除了直接将大语言模型与ICL和CoT结合使用外,最近的一些研究还探讨了如何将大语言模型的能力专门化为特定任务,这被称为模型专门化。例如,研究人员通过微调大语言模型生成的CoT推理路径上的小规模Flan-T5,专门研究大语言模型的数学推理能力。模型专业化还可以应用于解决各种任务,如问答、代码合成和信息检索。

猜你喜欢

转载自blog.csdn.net/sinat_37574187/article/details/132161372