【大模型推理】大语言模型的推理:一项调研
将语言模型规模扩大到数十亿个参数使得上下文学习成为可能,这允许模型在非特定训练任务上进行指令调优和少样本学习。这在翻译、摘要和问答等语言任务上取得了突破性表现。此外,除了这些关联的“系统1”任务外,最近在思维链提示学习方面的进展展示了强大的“系统2”推理能力,回答了关于人工通用智能的一个问题,即LLMs是否可以推理。该领域始于能否让LLMs解决小学数学文字题的问题。本文回顾了快速扩展的基于提示的L
大语言模型的推理:一项调研
https://arxiv.org/abs/2407.11511
摘要
将语言模型规模扩大到数十亿个参数使得上下文学习成为可能,这允许模型在非特定训练任务上进行指令调优和少样本学习。这在翻译、摘要和问答等语言任务上取得了突破性表现。此外,除了这些关联的“系统1”任务外,最近在思维链提示学习方面的进展展示了强大的“系统2”推理能力,回答了关于人工通用智能的一个问题,即LLMs是否可以推理。
该领域始于能否让LLMs解决小学数学文字题的问题。本文回顾了快速扩展的基于提示的LLMs推理领域。我们的分类法识别了生成、评估和控制多步骤推理的不同方式。我们深入覆盖了核心方法和开放问题,并提出了未来研究的议程。最后,我们强调了推理与基于提示学习之间的关系,并讨论了推理、顺序决策过程和增强学习之间的关系。我们发现,通过审慎使用提示,推理过程的自我改善、自我反思和一些元认知能力是可能的。从与LLMs进行推理到由LLMs进行推理的真正自我改善和自我推理仍然是未来的工作。
1 引言
基于变换器的大型语言模型(LLMs)在大数据集上训练,已实现下一步令牌预测的突破性表现 [Vaswani 等, 2017, Radford 等, 2019, Wei 等, 2022a];它们在自然语言理解(GLUE, SQUAD, Xsum)方面表现出色 [Wang 等, 2018, 2019, Rajpurkar 等, 2016, Narayan 等, 2018],在翻译 [Kocmi 等, 2022, Papineni 等, 2002, Sennrich 等, 2015]、问答 [Tan 等, 2023]及其他系统1任务 [Kahneman, 2011]方面也表现优异。ChatGPT 的成功 [Ouyang 等, 2022] 让全世界为之一振。
超过数百亿参数的基于变换器的生成语言模型不仅在语言生成方面表现优异,还开启了一种新的机器学习类型,称为上下文学习 [Brown 等, 2020]。上下文学习,也被称为基于提示的学习,仅在一定规模(数百亿参数以上)且足够丰富的LLMs中发生 [Wei 等, 2022a]。上下文学习是推理时的、基于提示的、少样本学习,其中模型参数不再进行训练或微调。
系统1任务,如关联语言任务,通过基于提示学习被LLMs轻松解决,世界各地的许多学生每天都在使用 ChatGPT 进行证明。(尽管这些问题往往没有被正确解决,只是流利地回答,当模型的联想能力导致幻觉时 [Huang 等, 2023]。)另一方面,系统2任务,如小学数学文字题,对LLMs来说更难 [Cobbe 等, 2021]。解决数学文字题需要将问题分解为多个推理步骤。在系统1任务上令人印象深刻的表现促使了对LLMs在系统2任务上表现不佳的原因及改进方法的研究。
在这些研究中,思维链实验 [Wei 等, 2022b] 脱颖而出。这项工作,以及随后的 Kojima 等 [2022],显示在提示中加入简单指令“让我们一步一步思考”可以促使 LLM 执行所需的中间推理步骤,取得了意想不到的性能提升。思维链论文是LLMs推理领域的突破,基于此工作的很多令人兴奋的研究已被发布。
小学数学文字题开启了对LLM推理的研究,使用了GSM8K基准 [Cobbe 等, 2021]。在我们的调研中,我们讨论了基于该基准的论文,以及直接相关的后续研究。我们聚焦于基于提示的方法,使用简单的分类法审查近期文献。
尽管该领域才刚刚起步,但推理性能的跃升让人工智能和社会都感到振奋。我们提供了一项研究议程,指出未来研究的机会。在这项调研的最后,我们还讨论了与其他领域的联系,如自我反思、元认知(或关于思考的思考,参见Dunlosky和Metcalfe [2008]),以及朝人工通用智能的动机。
我们的贡献有:
-
对于大型语言模型中基于提示的推理(小学数学文字题及相关领域)的相关方法进行调研,包括研究议程。 1 {}^{1} 1 在他的书《思考,快与慢》中,人类心理学的畅销书作者丹尼尔·卡尼曼将系统1思维描述为近乎瞬时的过程;它是自动的、直观的,几乎不费力气。它受到本能和经验的驱动。系统2思维则较慢,需要更多的努力。它是有意识和逻辑的。系统1的自动运作生成惊人复杂的思想模式,但只有较慢的系统2才可以将思想组织成有序的步骤。在LLM文献中,这些术语常被简化使用,以区分单步骤关联任务和多步骤推理任务,尽管像问答和翻译这样的语言任务可能要求一些“慢思考”。
-
基于常规推理文献的分类法(步骤生成、步骤评估和推理步骤的控制)。
本调研组织如下。第2节总结了LLMs中最相关的发展,包括上下文学习。使用的基准在该领域中至关重要。我们在第3节讨论这些基准,随后在第4节介绍我们的论文范围和选择方法。接下来,在第5节中,我们提供了该领域的分类法,详细讨论了各种方法。然后,在第6节中,我们从更广泛的视角讨论我们的发现。我们还讨论了推理与自我反思和元认知工作的关系。本节最后总结了未来研究的议程。最后,第7节结束了本调研。
2 背景:与LLMs的推理
在深入研究推理的工作之前,我们回顾一下LLMs的一些背景术语。我们的概述简短明了。关于LLMs的优秀调研包括 Minaee 等 [2024] 和 Zhao 等 [2023]。我们讨论LLMs的通用训练流程,讨论上下文学习的工作原理,以及讨论推理流程。我们从通用语言模型训练流程开始。
2.1 训练流程语言模型
LLMs通常在多个阶段中构建,从数据准备到训练再到推理。大多数LLMs的训练流程非常复杂。我们现在根据 Minaee 等 [2024] 的调研列出最常见阶段的流程。
-
获取一个大型、通用、未标记的高质量文本语料库。关于选择文本的一些考虑在 Brown 等 [2020] 中讨论。
-
在这个大型语料库上预训练变换器模型 [Vaswani 等, 2017]。这一步产生一个通用模型。预训练是使用自我监督的方法在未标记数据集(文本语料库)上进行的。
-
将通用模型微调到特定(狭窄)任务。这可以使用一个新的带标签的数据集,通过监督学习进行,其中包含针对当前任务的提示和答案(监督微调,SFT) [Wei 等, 2022a, Minaee 等, 2024]。在本调研中,少量论文在微调阶段进行研究。4. 指令调优是一种在标注的指令提示及其相应输出的数据集上进行微调的形式,旨在改善模型对指令的遵循能力,从而提高模型的实用性。
-
将微调后的模型与用户期望对齐(偏好对齐)。此阶段的目标是改进模型,以给出更符合伦理和社会可接受标准的答案。在这一阶段使用的机器学习方法可以是,例如,带有人工反馈的强化学习 [Ouyang et al. 2022] 或直接偏好优化 [Rafailov et al. 2024]。
-
优化训练以提高成本效益,例如,可以使用低秩优化 [Hu et al. 2021]、混合精度训练 [Micikevicius et al. 2017]、量化 [Jacob et al. 2018] 或知识蒸馏 [Xu et al., 2024, Gu et al. 2023]。
-
推理与上下文学习可以用于训练模型,在不改变参数的情况下提供正确答案 [Dong et al. 2022, Brown et al., 2020]。通过提供一个包含少量示例的问题提示,上下文学习是一种小样本学习。这是本调查中大多数论文所工作的阶段,也是所有ChatGPT普通用户所熟悉的阶段。
我们在本调查中讨论的大多数推理方法在第7阶段工作:上下文学习,使用提示使大语言模型执行复杂的多步骤推理任务。以下部分简要介绍上下文学习。
2.2 上下文学习
在超过数千亿参数的大语言模型中,一种新的学习方式应运而生,称为上下文学习或提示学习 [Brown et al. 2020]。它发生在推理时,通常能够在少量示例的情况下给出良好的结果;这是一种小样本学习。模型的大规模与其包含丰富的通用知识相结合,推动了这种新的小样本学习(参见Dong et al. [2022]的综述)。
一个提示由一段示范上下文与一个查询问题串联,并提供给语言模型进行预测 [Liu et al. 2023]。例如,当任务是识别社交媒体帖子的情感时,“我今天错过了公交车”可以接着是“我感到如此[]”。或者对于翻译,我们可以在“我今天错过了公交车”后接上“法语:[]” [Liu et al. 2023]。提示包含了模型能够识别的背景信息,从而选择所需的模型上下文。上下文学习在语言模型包含足够知识的情况下有效,使其能够对提示中提供的示例进行概括。
包含少量示例的提示被称为执行小样本学习的提示。而只包含指令而没有示例的提示被称为执行零样本学习的提示。
上下文学习发生在推理时,经过计算密集的阶段,其中参数已被预训练和微调,此时模型由用户查询以提供答案。上下文学习中不再改变任何参数。这与监督深度学习或自监督深度学习中的常见方法相当不同,在这些方法中,使用大型数据集在训练期间通过反向传播来更新模型参数,经历漫长而昂贵的训练周期 [Goodfellow et al. 2016]。常见的小样本学习方法,如元学习,确实包括参数的训练和微调以实现泛化,且计算成本高昂(参见Finn et al. [2017]或Huisman et al. [2021]、Hospedales et al. [2021]的综述)。
提示为大语言模型提供了用户友好的接口。上下文学习的成功通常对提示的表述方式非常敏感;一种新的领域叫做提示工程应运而生,旨在通过学习如何使其按照我们的要求工作来优化上下文学习的实用性 [Radford et al., 2019, Wei et al., 2022a, Giray, 2023, Sahoo et al., 2024]。
2.3 推理流程
推理问题同样通过一个阶段管道解决。解决复杂问题的典型方法是将其细分为更小的步骤并逐步解决。这种方法与分而治之相关 [Bellman, 1966]。新的步骤是(1)生成,(2)评估,生成和搜索的步骤数量以某种方式(3)进行控制。我们调查的上下文推理方法遵循一个一般的三阶段流程 [Madaan et al. 2023]:
-
生成:模型生成步骤,
-
评估:评估者对预测步骤进行评估,
-
控制:控制生成的步骤数量以及推理过程将看得多远。
这一三阶段流程将是我们分类法的基础。但首先,我们将查看基准测试。
3 基准测试
人工智能的进步通过基准测试来衡量。基准测试定义了研究人员在实验中旨在实现的目标。在自然语言处理领域,存在大量基准测试来衡量进展,例如在问答(例如,CommonsenseQA [Talmor et al. 2018])、单词预测(例如,LAMBADA [Paperno et al. 2016])、翻译(例如,WMT’22 [Kocmi et al., 2022])、语言理解(例如,GLUE [Wang et al., 2018, 2019])和文本摘要(例如,Xsum [Narayan et al. 2018])等方面。Transformer架构最初是通过诸如BERT [Devlin et al. 2018]的编码器模型在命名实体识别和分类任务中得以普及。随后,解码器模型如GPT 2-4 [Radford et al. 2019, Brown et al., 2020, Achiam et al., 2023] 在自然语言基准测试上表现出色。
大语言模型(LLMs)领域相当活跃。存在许多不同的基准测试,列出所有相关基准的全面概述超出了本调查的范围。我们将提到针对测试LLMs推理能力的相关基准。根据Wei et al. [2022b],这些都是数学文字问题的基准。与LLMs推理最频繁关联的基准是一个小学数学文字问题的数据集GSM8K [Cobbe et al. 2021]。GSM8K是由人类创建的,旨在达到高质量、高多样性、中等难度,并且解决方案以自然语言形式给出。其他基准包括结构多样的SVAMP基准 [Patel et al. 2021]、多样化数学问题的ASDiv数据集 [Miao et al. 2021]、代数文字问题的AQuA数据集 [Ling et al. 2017],以及MAWPS基准 [Koncel-Kedziorski et al., 2016]。
我们现在将简要讨论这些基准;我们引用的基线性能来自Wei et al. [2022b]。
GSM8K 为了测试推理能力,开发了小学数学问题数据集(GSM8K)以测试LLMs [Cobbe et al. 2021]。它包含8500个人工编写的数学问题。语言模型在该数据集上表现不佳(在链式思维之前)。一个数学文字任务的例子是:
问题:Beth在一周内烘焙4个两打的饼干批。如果这些饼干在16人之间平均分配,每人消耗多少饼干?
答案: 4 × 2 × 12 / 16 = 6 4 \times 2 \times {12}/{16} = 6 4×2×12/16=6 。
GPT-3 175B的基线性能为 15.6 % {15.6}\% 15.6% 的准确率。而链式思维的表现为 46.9 % {46.9}\% 46.9% 的准确率。
ASDiv Academia Sinica多样化MWP数据集(ASDiv) [Miao et al., 2021]专门设计用于在问题类型、格式和难度级别上实现高多样性。它包含2305个问题。一个示例问题是:问题:一个三明治的价格是 0.75 。一杯布丁的价格是 0.25 。Tim 买了 2 个三明治和 4 杯布丁。Tim 应该支付多少钱?
答案: 0.75 × 2 + 0.25 × 4 = 2.5 {0.75} \times 2 + {0.25} \times 4 = {2.5} 0.75×2+0.25×4=2.5 。
GPT-3 175B 的基线性能为 70.3 % {70.3}\% 70.3% 的准确率。Chain-of-thought 的性能为 71.3 % {71.3}\% 71.3% 的准确率。
MAWPS 数学文字问题库 (MAWPS) [Koncel-Kedziorski 等人 2016] 允许通过选择不同类别的问题来构建具有特定特征的数据集。该数据集包含 3320 个问题。一个例子是:
问题:Rachel 买了两本涂色书。一书有 23 幅画,另一书有 32 幅画。一周之后她已经涂完 44 幅画。她还有多少幅画没有涂?
答案: 55 − 44 = 11 {55} - {44} = {11} 55−44=11 。
GPT-3 175B 的基线性能为 72.7 % {72.7}\% 72.7% 的准确率。Chain-of-thought 的性能为 87.1 % {87.1}\% 87.1% 的准确率。
SVAMP 简单算术数学文字问题数据集 (SVAMP) 是由 Patel 等人 [2021] 设计的。它包含 1000 个问题,基于 ASDiv-a [Miao 等人,2021] 和 MAWPS [Koncel-Kedziorski 等人,2016] 的变体。一个例子问题是:
问题:Jack 有 8 支钢笔,Mary 有 5 支钢笔。Jack 给了 Mary 3 支钢笔。Jack 现在有多少支钢笔?答案: 8 − 3 = 5 8 - 3 = 5 8−3=5 。
GPT-3 175B 的基线性能为 65.7% 的准确率。相比之下,Chain-of-thought 的性能为 68.9 % {68.9}\% 68.9% 的准确率。
AQuA 代数问题解答数据集 [Ling 等人 2017] 是一个大型数据集,包含 100,949 个问题、答案和理由。该数据集是基于较小的种子数据集和众包的组合。一个例子问题是:
问题:两列火车在相反的方向上分别在 27 秒和 17 秒内穿过站台上的一个人,它们在 23 秒内相遇。它们速度的比例是:选项:A) 3/7 B) 3/2 C) 3/88 D) 3/8 E) 2/2
答案:B。
GPT-3 175B 的基线性能为 24.8 % {24.8}\% 24.8% 的准确率。Chain-of-thought 的性能为 35.8 % {35.8}\% 35.8% 的准确率。
基准测试种类繁多,基准测试中的表现也各不相同。有些问题当前的 LLM 可以轻松解决,而有些则难度显著更大。基准设计是 LLM 领域推理的重要组成部分。目前 GSM8K 基准测试很受欢迎;基线模型性能较弱,推理提示可以显著提高性能。随着 GSM8K 上表现的改善,其他(更困难的)基准将变得流行。
4 论文选择
本次调查中所选论文如下。基线 LLM 在解决数学文字问题上存在困难,特别是在前一部分列出的基准上。我们将解决这些基准的能力视为推理能力的代理。我们最初进行了文献搜索,以查找使用这些基准的论文,并且在其标题或摘要中包含推理和大型语言模型的搜索词。我们还搜索了参考 Chain-of-thought 论文的论文。结果论文根据时效性、相关性、实质性和新颖性进行了整理。
我们倾向于选择近期的论文(写作调查两年前),与通过生成中间推理步骤的 Chain-of-thought 方法相关,能够解决如数学文字问题之类的任务,并通过基于提示的上下文学习工作。我们还包含了一些通过微调或监督学习工作、与 Chain-of-thought 方法相关或启发其思路的论文。此外,我们还包括了一些在数学文字问题之外的有趣推理方法展示,如在编码和自主代理中的应用,因为它们在基础上的方法。
5 提示生成、评估与控制
本次调查探讨了如何促使擅长系统 1 任务的架构解决系统 2 任务。Chain-of-thought 论文展示了如何通过简单的命令促使 LLM 执行推理步骤,从而在数学文字问题中取得更好的表现。从那时起,许多研究进一步探索了这种方法,试图构建针对系统 1 和系统 2 问题的终极通用问题求解器。
遵循第 2.3 节的流程,提示必须 (1) 生成推理步骤,(2) 评估步骤的答案,(3) 控制生成的步骤数量,推理过程的形态(或复杂性)也必须被控制。我们将简要讨论这三个阶段。有关不同方法生成、评估和控制推理步骤的示意图,请参见图 1,以及表 1 2 {1}^{2} 12 。
步骤生成的提示 首要任务是创建一个提示,指示 LLM 生成推理步骤。问题必须分解为子步骤。这可以通过包含问题元素的特定提示来实现,例如:“首先计算 Mary 最初有多少个弹珠,然后计算她的朋友有多少个,最后计算他们一共有多少个。”
通常,可以提示 LLM 以逐步填补空白。在我们将讨论的论文中,有三种主要方法用于生成逐步提示。提示可以(1)由研究人员为该问题手工制作(手写提示),或(2)提示或提示来源于模型外部的来源,例如另一个模型或数据集(使用外部知识的提示),或(3)模型本身可以被提示以生成(系列)提示来分析问题(模型生成提示)。正如我们将看到的,这三种方法各有优缺点。
生成子问题步骤是上下文学习进行推理所需的第一阶段。本次调查中的每篇论文至少执行了推理流程的这一阶段。在一些早期的论文中(大约 2022 年),这是执行的唯一阶段。
结果评估的提示 在生成提示并且模型回答之后,推理流程的下一步是评估答案。同样,我们看到三种主要方法用于子步骤评估。首先,步骤可以由(1)模型本身进行评估(自我评估)。其次,可以使用(2)外部程序来评估步骤。例如,当步骤表达为计算机代码时,可以使用外部解释器或编译器来检查有效性和结果(基于工具的评估)。最后,还可以使用(3)外部模型,无论是 LLM 还是其他。例如,在机器人技术中,外部物理模型可以确定某些行动是否在物理上可行(外部模型验证)。
— 2 {}^{2} 2 我们在图中仅展示其主要类别的方法。一些方法在两个类别中展示了创新,因此被显示了两次。(由于所有方法都具有生成、评估和控制方面,因此原则上所有方法都可以出现三次——所有三列均可在表 1 中找到。)—
图1:LLM推理方法的分类:提示生成、评估和控制
进行推理步骤的控制 一个由多个步骤组成的推理过程是一个顺序决策过程[Littman, 1996]。当生成一个单一的推理步骤链时,推理过程的控制流程是简单的:贪婪地评估第一个步骤,然后是下一个步骤(如果有)。推理过程的控制流程也可能更加复杂。一些推理问题可以被分为多个子问题。为了执行、评估并结合所有子步骤的结果,可能需要一个单独的控制器。这个控制器可以是一个提示或一个外部算法。
再次,我们区分三种方法。大多数论文使用(1)一种贪婪选择方法:生成一个单一的提示和一条单一的步骤链,这些步骤被直接执行并遵循。第二种方法(2)是生成推理步骤的集成策略,评估它们,结合单个结果,并将它们作为集成的结果呈现。最后,(3)可以使用完整的树搜索或强化学习(RL)算法作为支架。在这种情况下,当遵循并评估一个步骤时,LLM可以回滚并尝试不同的推理步骤。这是一种广度优先搜索方法[Plaat, 2020]。更进一步,可以使用完整的强化学习方法[Sutton和Barto, 2018,Plaat, 2022]来寻找顺序决策过程的最优策略。完整的马尔可夫决策过程状态、动作、转移和奖励函数被指定,步骤控制可以变成一个动态生成提示的过程。
领域 许多论文应用于数学文字问题(数学问题的自然语言描述)。数学问题是LLMs中推理实验的最初灵感。其他应用领域包括自主智能体、机器人运动、生成计算机程序和玩计算机游戏。我们将更详细地讨论这些具体的方法。
分类表 表1列出了本调查的论文。它们按所涉及的领域、提示生成的类型、结果的评估和控制方法进行分类。表中方法的分类是通过水平线进行分组的。
第一组,从Scratchpad到Self-ask,专注于创建生成推理步骤的提示。这一列中的条目以粗体显示,突出方法的重点。这个组中的方法可以被视为LLM推理领域的起点。链式思维方法尤其是许多工作的灵感来源。提示通常由研究人员“手动”编写,步骤编码在一个提示中,步骤控制是贪婪的。除了与基准比较结果外,没有对步骤进行特定的评估。Scratchpad方法特别之处在于它使用监督学习,而非提示学习;这项工作表明,通过监督学习可以使LLM生成内部推理步骤,为后来的基于提示的论文铺平了道路。
第二组,从Self-verification到Self-taught-reasoner,专注于对提示中推理步骤的评估。该列在表中以粗体显示。这个组中的方法旨在通过减少在推理链中进行多个步骤时发生的错误累积来改善链式思维结果。这些方法使用了多种步骤控制方法,稍后将详细讨论。请注意,并非所有方法都使用自然语言问题(通常是数学文字问题)。例如,Codex到Program-aided-language的子组专注于形式语言。它们生成代码或数学方程,通常是Python语言,用以形式化推理问题的步骤或作为任务的结果。LLM在代码生成方面相当出色,这些方法通常实现了良好的性能。使用代码还允许这些方法调用外部程序,如解释器和调试器,以评估生成的推理步骤的正确性。
表1:方法的分类:生成、评估与控制
还有一个特殊的子组,从精细化器到自我提升,不使用提示学习,而是使用微调。在这里,基于推理示例生成新数据,然后用于进一步训练模型。额外数据通常作为一个单独的数据集生成,有时称为评估者或修正者。
有两种方法,Say-can 和内心独白,其应用领域是控制机器人运动。机器人的运动受到物理法则的约束(无论是在机器人的身体内部还是在其环境的各个方面)。物理法则被学习并用于将推理步骤与现实相结合(以减少幻觉)。
第三组,最少到最多到探险者,解决步骤控制(本列以粗体显示的方法)。在先前的方法中,推理步骤在单一的静态提示中书写,而这些方法在多个动态提示中生成步骤。这允许控制推理步骤的空间。使用各种搜索控制方法,以外部算法的形式执行对 LLM 的不同提示调用。控制方法从简单的贪心和深度优先搜索到复杂的束搜索和强化学习方案不等。
总之,我们看到各种各样的方法,通常在推理各自领域方面表现出色。为了更好地理解这些方法,让我们更详细地讨论一下技术,从步骤生成开始。
5.1 步骤生成
最初,LLMs 在数学文字问题上的表现较差(GSM8K [Cobbe 等,2021])。尝试了一些不同的方法,例如扩大 LLM 的规模 [Rae 等 2021]。基于变换器的 LLM 架构旨在生成单个令牌。当我们提示这样的架构生成答案时,它确实会这样做。我们应该做的是提示它遵循中间步骤,回答这些问题,从而朝最终答案的方向努力,就像学生被教导将复杂问题分解成更小的步骤一样。我们应该牵着模型的手,教它写下中间步骤,并结合中间结果 [Nye 等 2021]。这个想法被 Nye 等人 [2021] 用于 Scratchpads,这是一种变换器模型,通过要求其将中间计算步骤输出到一个临时记事本中来执行多步骤计算。他们通过监督学习训练模型(而非基于提示的上下文学习)。图 2 展示了一个示例。在加法、多项式评估和 Python 代码执行的实验中,输出中间步骤到临时记事本的版本的表现显著优于没有的版本。
图 2:关于两个数字相加的长加法问题的监督学习输入和目标示例。进位记录在 C: 数字中。评论(在 # 后)并不是学习目标的一部分 [Nye 等人 2021]
如果监督学习可以产生中间步骤,那么提示学习是否也能够做到呢?
5.1.1 手写提示
这个问题由 Wei 等人 [2022b] 研究过。通过提示学习指导大型语言模型生成步骤的基本方法是手动编写一个提示,以便大型语言模型遵循推理步骤。他们在《思维链》论文中展示了通过这样的提示,大型语言模型能够遵循这些中间步骤。当大型语言模型被提示将问题中的信息重新表述为其答案中的中间推理步骤时,它的表现要远好于被提示直接回答数学问题时,而不在其答案中重现问题中的信息。《思维链》论文中的示例显示在图 3 Wei 等人 [2022b]。性能数据在第 3 节的基准中给出。
《思维链》的显著性能提升引起了极大的兴奋,并开启了关于使用大型语言模型进行推理的进一步研究。在原始的《思维链》论文中,提示是由研究人员为不同类型的问题手写的,并且使用五个不同的基准进行评估(并非通过大型语言模型) 1 在后来的工作中,提示是由大型语言模型自动生成的 [Zhang 等人,2022]。
Kojima 等人 [2022] 更进一步。他们展示了在提示中添加一段简单文本(让我们一步一步思考)显著提高了性能。由于这段文本不包含与问题相关的元素,这可以视为一种零样本学习的形式。图 4 比较了这些方法。实验进一步表明,添加此文本到提示后,在一系列推理基准上取得了显著的性能提升,包括算术、符号和逻辑推理。
图 3:思维链提示。在顶部的蓝色为提示底部的绿色为答案。当显示较长的示例提示时,大型语言模型在回答问题时遵循了较长的示例 [Wei 等人 2022b]。
图 4:零样本思维链:让我们一步一步思考 [Kojima 等人,2022]
图 5:自我提问提出后续问题,并使用外部搜索引擎 [Press 等人,2022]
《思维链》思想本身受到早期工作的启发,其中为算术推理生成自然语言步骤 [Ling et al., 2017, Cobbe et al., 2021],并使用正式语言进行推理 [Roy and Roth, 2016, Chiang and Chen, 2018, Amini et al., 2019, Chen et al., 2019]。
5.1.2 使用外部知识的提示
《思维链》表明,当大型语言模型被引导采取单独的步骤时,它对复杂问题给出的答案更好。提示是由研究人员从头手动编写的。
我们可以利用关于问题的外部信息来改进提示。Press 等人 [2022] 研究了子问题与主要问题之间的关系,他们称之为组合推理。他们研究了模型能够回答子问题的频率,但不能回答整体问题。这种差异被称为组合性差距。他们发现,在 GPT-3 中,随着模型规模的增加,组合性差距并没有减少:单跳问答性能的提升速度快于多跳性能的提升。这表明,尽管更强大的模型记忆和回忆更多的事实知识,但它们在执行组合推理的能力上并没有改善。他们发现推理能力与模型规模无关。随后,提出了一种名为Self-ask的方法,该方法询问引导性后续问题(如Chain-of-thought,但带有后续提示),见图5。模型随后用于回答这些后续问题。Self-ask还可以使用外部搜索引擎来回答中间提示,而不是使用模型。模型将一个组合问题作为输入进行分解。初始子问题被输入到搜索引擎中,答案由模型处理,模型生成另一个子问题,依此类推,直到生成最终答案。
该方法在三个专门为多跳问题设计的基准测试中,比基础的Chain-of-thought提高了几个百分点的表现。
5.1.3 模型生成提示
除了手动编写提示或使用外部信息之外,我们还可以尝试让LLM自己研究问题,以编写最佳推理提示,这是自我改进的一种形式。这种方法的一个例子是Auto-chain-of-thought [Zhang et al. 2022]。这种方法基于Kojima等人[2022]的观察,即大型语言模型是零样本推理者。首先,Auto-chain 为给定数据集生成具体问题,并将其划分为多个集群。然后,外部算法使用模型生成经过多样性抽样的示例。构造的演示增强了上下文提示。自动生成的提示在使用GPT-3的十个基准上报告其表现与手动编写的Chain-of-thought提示相当或更好。
Fu等人[2022]引入了基于复杂度的提示。受到Chain-of-thought和Self-consistency的启发,这项工作研究了哪些提示在数学文字和其他推理问题上取得最佳结果。他们的工作特别研究了推理链的复杂度的影响,并引入了一种相关的推理方法(基于复杂度的提示)。他们发现复杂度最大的提示(推理步骤最多)表现最佳。此外,他们发现复杂度最高的输出(答案)是最好的。基于复杂度的提示在三个数学推理基准上取得了高性能。
另一个使用模型生成提示的方法是“思想缓冲区”(Buffer-of-thought)。我们将在5.3.3节中讨论这种方法。
5.2 步骤评估
在讨论了生成推理步骤的提示后,推理管道中的下一个阶段(第2.3节)是评估步骤的结果,以减少多步骤推理链的错误。
我们将首先讨论同一模型执行步骤生成和步骤评估的方法。
5.2.1 自我评估
当LLMs被提示执行推理步骤时,它们执行一系列步骤并预测多个标记。执行一系列步骤使它们对错误敏感,并容易导致错误积累 [Weng et al., 2022, Xiao et al., 2023a]。开发了几种方法来防止错误积累。一种方法是创建一个新模型单独评估结果。Shen等人2021和Li等人[2022b]训练了一个外部验证器来检查结果。
图6:自我一致性 [Wang et al., 2022b]
相对而言,Weng等人[2022]提出了一种使用相同LLM进行评估的自动化方法,称为自我验证。他们指出,人类推理也存在错误积累的问题,而在推理过程中,我们经常会重新审视我们的思维过程,以验证推理步骤的准确性。因此,他们提议应用这种向后的自我验证方法。LLM被提示使用Chain-of-thought推理链的结论作为解决原始问题的条件,并随后将答案与原始问题进行比较。LLM会获得其自身结论的变体,并被指示选择与原始问题最相似的一个。(请注意,使用LLM对自己进行评估时可能存在反馈问题,相关讨论请见Zheng et al. [2024]。)在GPT-3 [Chen et al., 2021]和Instruct-GPT [Ouyang et al., 2022]上进行了实验。Chain-of-thought在算术和一般推理任务上的表现提高了几个百分点。
一个相关的流行方法称为自我一致性 [Wang et al. 2022b]。自我一致性是一种简单的集成方法。贪婪的单路径解码被替换为抽样多个推理路径,对它们进行评估,并选择最一致的答案。自我一致性要求LLM简单地多次执行相同的查询,并采用答案的多数票。自我一致性有效,因为复杂的推理问题通常允许不同的推理路径通向正确的答案。图6总结了该方法。
自我一致性在算术推理、常识推理和符号推理等多种LLM上进行了评估,涵盖了GPT-3 [Tay et al. 2022, Brown et al. 2020, Thoppilan et al., 2022, Chowdhery et al., 2023]。自我一致性通常提高了Chain-of-thought的表现10-20个百分点,并在本调查中的许多其他方法中被用作基准。(自我验证还报告说,当与自我一致性 [Wang et al. 2022b] 和程序辅助语言 [Gao et al. 2023] 结合使用时,性能也有所提高。)
5.2.2 基于工具的验证
提高推理步骤评估准确性的另一种可能性是从自然语言切换到正式语言。正式语言的优点是比自然语言更不模糊。例子包括编程语言,如Python,或数学方程式。使用正式语言进行推理是一种流行的方法,我们讨论七篇论文。许多方法在Python中生成步骤,然后可以通过正式评估器(如编译器、调试器或解释器)进行评估。
LLMs在从自然语言提示生成计算机代码方面取得了相当的成功。Chen等人[2021]引入了Codex,这是一个基于公开可用代码(在GitHub存储库中)训练的GPT模型。这项工作的生产版本以GitHub Copilot的名义推出。Codex能够从自然语言描述(例如注释字符串)生成正确的程序。图7显示了Codex生成的示例。
Codex的工作成果被用作进一步研究LLM推理的基础。
人工程序员在编写代码时,通常遵循编写一些代码、执行代码以查找错误,然后利用反馈改进代码的循环。这一相同的方法在自我调试工作中也得到了应用 [Chen et al. 2023]。自我调试教会大型语言模型通过少量示例对其生成的程序代码进行调试。它遵循(1)代码生成,(2)代码执行,以及(3)代码解释的相同步骤(见图8)。
自我调试能够在没有对代码正确性或错误消息的人工反馈的情况下,通过调查执行结果识别其自身生成的代码中的错误。自我调试还可以提供生成代码的自然语言解释。它在文本到SQL生成、 C + + \mathrm{C} + + C++ 到Python转码和文本到Python生成等任务中表现出色。
若干研究利用自我调试自动生成针对特定问题优化的可执行代码,且无需人工反馈。Romera-Paredes等人[2024]引入了FunSearch,这是一种将形式方法和LLMs结合的方式,以增强数学推理和代码生成。FunSearch能够生成符合规定要求的功能正确的程序。它使用多种候选解决方案(程序)种群的遗传算法方法,候选方案会根据问题规范使用工具进行自动评估。除了问题规范以评估函数的形式提出外,LLM在初始提示中还会给出一个初始程序。在从初始提示生成的程序中进行评估后,将以迭代的方式创建一个使用“最佳拍摄提示”的新提示,结合一组 k k k 采样程序的排序列表(按其评估得分升序排列),并请求LLM生成程序 k + 1 k + 1 k+1 。另一项研究利用进化计算方法生成和优化进化算法 [van Stein and Bäck, 2024]。该方法LLaMEA(大型语言模型进化算法)利用LLMs设计和优化进化算法。
图 7: Codex [Chen et al. 2021] 结构,它们通过变异和选择进行细化。这提高了算法设计的效率,特别是在需要创新和适应性解决方案的领域。FunSearch 和 LLaMEA 之间的一个主要区别在于,LLaMEA 采用了一种样本高效的精英策略,通过迭代改进现有的最佳解决方案,所需的提示评估显著少于 FunSearch 中提出的大规模策略。
图 8: 自我调试 [Chen et al., 2023]
图 9: 程序辅助语言 [Gao et al. 2023]为了提高基于提示的推理,Codex在一个名为MathPrompter的集成方法中使用[Imani et al. 2023]。该方法生成多个代数表达式或Python函数,然后解决同一个数学问题。结果进行比较,就像在自一致性和自验证中一样,提高了结果的置信度。MathPrompter在MultiArith数据集上取得了最先进的结果 ( 78.7 % → 92.5 % ) \left( {{78.7}\% \rightarrow {92.5}\% }\right) (78.7%→92.5%) ,在GPT- 3175 B {3175}\mathrm{\;B} 3175B 上进行评估。
其他两个使用形式语言的方法是Program-of-thought (PoT) [Chen et al. 2022]和Program-aided-language (PAL) [Gao et al., 2023]。这两种方法都使用LLM生成Python,然后使用Python解释器评估结果。PoT和PAL是类似的方法。PoT使用基准特定的提示;PAL使用通用提示,并且已在更多基准上进行测试并用于其他方法。图9展示了PAL方法。
当对推理步骤的评估被卸载到Python解释器时,将自然语言问题分解为可执行代码步骤仍然是LLM的唯一任务。(早期在数学应用题中的工作,例如Ling et al. [2017],展示了如何分解问题并得出答案。)Gao et al.
图10:Refiner [Paul et al., 2023]
2023年提供了关于神经LLM和符号解释器之间协同作用的广泛实验证据。实验在13个数学、符号和算法推理任务上进行,获得的结果比更大规模的模型更准确。
5.2.3 外部模型验证
我们已经看到许多成功的基于提示的上下文推理和评估实例。现在我们将关注遵循更传统参数学习方法的相关推理方法。我们描述三种遵循此途径的自然语言方法。这些方法都评估模型的输出并生成纠正数据。这些数据随后被添加到训练管道中,模型随后进行微调。
微调Refiner方法[Paul et al. 2023]使用生成器模型和批评者模型提供对推理错误的细致反馈。生成器生成多个推理假设,批评者通过随机选择一个假设进行反馈来评估结果。生成器模型基于其推理错误进行微调。使用一个小的监督模型来克服冷启动问题。图10展示了批评者如何向生成器提供反馈的示例。这种方法在数学应用题和合成自然语言推理上效果良好。
问:可以用什么来携带一只小狗? (a) 游泳池 (b) 篮子 (d) 后院 (e) 自己的家 用来携带小东西的东西。因此,答案
图11:自我教学推理器[Zelikman et al. 2022]
Welleck et al. [2022]在其自我修正方法中遵循类似的方法。纠正者是一个独立的模型,专门用于细化生成器的输出。与Refiner不同,生成器是基于批评者反馈进行微调的,自我修正则是微调纠正者以纠正生成器生成的假设中的错误。
第三种微调方法是自我改进,由Huang等人提出[2022a]。此处基础模型数据通过LLM生成的推理进行增强,然后进行微调。三种微调方法中的一个显著特点是,LLM能够通过在自己的生成输出上进行训练来自我改进,且克服调回路中固有的稳定性问题。
数据集增强我们讨论的最后一种微调方法使用数据集增强。显式的中间推理称为推理基础。推理基础的生成被证明对不同任务的LLM都是有价值的,例如数学和常识推理、代码评估、社会偏见推断和自然语言推断[Zelikman et al. 2022]。Zelikman et al. [2022]描述了如何使用推理步骤创建推理基础,然后用于增强微调模型的数据集。该方法被称为自我教学推理器。图11展示了该方法。在自我教学推理器中,通过在每次迭代中使用当前模型的推理生成能力尝试解决原始数据集来创建增强数据集。接下来,使用推理基础增强数据集,使用模型没有解决的问题的真实答案。最后,使用组合数据集对大型语言模型进行微调。
关于机器人行为的推理除了数学应用题,基于提示的推理还被用来推理机器人行为。语言模型包含大量有关真实世界的信息[Ahn et al. 2022]。理论上,这应允许模型展示关于机器人行为的现实推理。然而,模型对特定机器人特定体现方面的知识有限。如果我们能够将类似Scratchpad的中间推理步骤列表与机器人在其环境中的可能运动列表进行比较,我们就可以防止模型建议不可能的关节运动和行动,从而避免事故。
图12:Say-Can与其他语言模型的比较[Ahn et al. 2022]
这种方法在Say-can论文中得到了尝试[Ahn et al. 2022]。Say-can使用时序差分强化学习[Kaelbling et al. 1996]学习机器人在环境中的行为的值函数[1988]。这个值函数然后与语言模型的基于提示推理结合,以限制其建议不可能或有害的行为。
Say-can的目标是将语言与机器人能力相结合。与使用监督学习的Scratchpad相比,能力模型通过强化学习互动学习,然后使用基于提示的学习进行应用。机器人可以作为语言模型的手和眼,而语言模型对任务具有高级语义知识。LLM(Say)提供任务基础以找到实现高级目标的行动。学习到的能力函数(Can)提供世界基础以确定可能的行为。Say-can在101个现实世界的机器人任务上进行评估,例如如何在厨房环境中解决任务(见图12)。
Say-can将能力学习作为一个单独的函数,而另一种方法Inner-monologue [Huang et al. 2022b]将机器人规划直接构思为语言提示的一部分。这种方法将环境信息作为内心独白以语言方式纳入提示中。与Say-can一样,这些信息来自不同来源的反馈。与Say-can不同,物理和世界的信息直接插入到提示中。
Inner-monologue由许多元素组成:它使用InstructGPT [Brown et al. 2020]进行多步骤规划,使用脚本模块进行物体识别、成功检测、任务进展场景描述,以及语言条件的抓取和放置原语,类似于CLIPort [Shridhar et al., 2022]。这些元素生成的文本描述被用于基于提示的学习。图13给出了Inner-monologue的工作示例。
因此生成的语言反馈显著提高了三个领域的性能,例如模拟和真实的桌面重组任务以及厨房环境中的操作任务。关于机器人行为的研究很多。与Inner-monologue相关的最新方法是Chain-of-tools,它提出了一个计划-执行-观察的管道来基于工具行为进行推理[Shi et al., 2024a b]。
图13:内心独白[Huang et al., 2022b]
这结束了我们关于推理管道第二阶段的讨论,推理步骤的评估。
5.3 步骤控制
推理管道第三阶段在第2.3节中是推理控制。该阶段控制生成多少个子步骤,以及推理链生成多深的未来。有三种主要的方法:(1)贪婪选择,生成一个步骤然后跟随它,(2)集成策略,生成一组可能的下一步,以及(3)完整的树形搜索,生成多个步骤的选项,并在未来的多个步骤中跟随它们,遍历一个带回溯的搜索树,控制指数级的搜索空间。我们包括了强化学习方法,可以交互式地学习这样的推理空间的最优策略。
5.3.1 贪婪选择
早期关于基于提示的推理的作品大多遵循贪婪方法:生成一个包含一系列步骤的单一提示并跟随这些步骤。在贪婪推理者中有链式思维(Chain-of-thought)、自动链式思维(Auto-CoT)和零样本链式思维(Zero-shot CoT)。内心独白(Inner Monologue)和Say-Can也使用贪婪推理。
在最简到最复杂提示(Least-to-most prompting)[Zhou et al. 2022] 中,关键思想是将复杂问题分解为更简单的子问题,然后按顺序解决这些子问题,明确地将它们编码在提示中。它与基于复杂度的提示相关。在最简到最复杂中,通过先前解决的子问题的答案来促进每个子问题的答案发现,就像在课程中一样[Bengio et al. 2009]。作者发现,在符号操作、组合泛化和数学推理方面,最简到最复杂提示能够推广到比给定提示更困难的问题。图14说明了这一想法。
图14:最简到最复杂提示 [Zhou et al., 2022]
5.3.2 集成策略
第二种推理控制基于(序列的)推理步骤的集成。集成方法是机器学习中一种著名的技术,将多个较弱的学习者组合成一个强学习者[Sagi and Rokach, 2018, Breiman, 2001]。对于大多数问题,存在多个不同的下一步选项。当这些选项中的所有或某些被生成和评估时,可以报告最好的结果或共识结果作为步骤集成的结果。已经提出了各种方法。
我们已经在5.2.1节提到了自我一致性(Self-consistency)[Wang et al., 2022b]和自我验证(Self-verification)[Weng et al. 2022]。它们是流行的集成方法,用于评估提示学习中推理步骤的结果。链式思维提示中使用的贪婪单路径解码被替换为对多条推理路径的多样采样,评估它们,并选择最一致的答案。
在另一个领域,专家链(Chain-of-experts)构建于链式思维之上,使用专家集成来解决复杂的组合优化研究问题[Xiao et al. 2023b]。PAL和MathPrompter也采用集成方法。它们生成多个步骤,这些步骤被评估并结合答案,或选择最佳一步。
集成方法在LLM推理中是一种流行的方法。
5.3.3 强化学习
在贪婪方法中,生成并遍历单一推理路径。在推理过程中,通常可能存在多个有效的推理步骤,但在多个推理步骤中追求所有可能性可能会导致不可行的可能性数量。
第三种推理控制方法是使用一个完整的控制器,可以遍历树,甚至进行强化学习[Sutton and Barto, 2018, Kaelbling et al., 1996, Plaat, 2022]。这组控制方法实现了对推理过程的最详细控制,并被许多作品使用,正如我们将看到的。在分解问题时,生成多个可供未来多个步骤搜索的替代步骤。然后,可以执行回溯,允许尝试替代步骤。
在贪婪和集成过程中,可以通过LLM用提示进行控制,而这第三组方法更复杂,并且使用外部算法来控制推理过程。外部算法调用LLM作为子例程,提示其执行任务。这允许更复杂的推理控制,但我们不再进行基于提示的自我推理;控制权被交给一个外部于LLM和提示学习的算法。
我们从深度优先搜索和广度优先搜索开始讨论控制策略,然后转向束搜索,最后到全面的强化学习。
广度优先搜索 一个复杂的推理空间可以通过搜索算法遍历。思维树(Tree-of-thoughts)包括一个搜索算法,以动态跟随不同的推理步骤[Yao et al. 2024]。当一个推理路径被遍历后,搜索算法可以回溯并尝试替代路径。论文描述了广度优先搜索和深度优先搜索控制器。
思维树中的评估部分由LLM通过提示执行。生成、评估和控制三者结合,允许系统地探索推理步骤的空间,并进行前瞻性搜索和回溯。作者将他们的方法与链式思维和自我一致性进行了比较。链式思维从思维路径中构建推理,自我一致性创建思维的集成,而思维树构建树结构。图15展示了不同的推理结构。
另一种方法,思维缓冲区(Buffer-of-thoughts)[Yang et al. 2024],在元推理方面更进一步。它引入了一个元缓冲区,用于存储高层次的思维模板。这些通用思维模板来源于各种任务。图16比较了思维缓冲区方法与其他方法,如链式思维和思维树。思维缓冲区在例如24点和将军等难题中超越了其他方法。思维模板与元认知(关于思维的思考)相关,进一步讨论见6.2.3节。
束搜索 一种相关的搜索方法是束搜索。义务搜索推理(Beam-search-for-reasoning)[Xie et al. 2024] 关注可能推理路径空间的控制。在某些推理问题中,这个空间可能非常大。束搜索通过仅搜索这一空间的有前途部分来解决这一挑战。它使用自我评估来控制探索并评估(解码)推理步骤。图17展示了束搜索中如何使用自我评估进行多步骤推理。束搜索使用程序辅助的语言模型解决数学文字问题[Gao et al. 2023]。利用Codex框架[Chen et al. 2021],它在GSM8K、AQuA和StrategyQA基准上分别超越了少量样本基线6.34%、9.56%和5.46%。
图15:链式思维、自我一致性和思维树的推理结构 [Yao et al., 2024]
图16:链式思维、自我一致性和思维缓冲区 [Yang et al. 2024]
图18:强化学习 [Sutton and Barto, 2018]
强化学习强化学习(RL)方法是优化算法复杂性的又一步发展。RL通过交互采样学习,根据环境中的奖励来改善其策略 [Sutton and Barto, 2018]。要使用强化学习,推理问题必须被表述为马尔可夫决策过程:代理算法创建一个提示(一个动作),以采样一个步骤(t),并从环境模型中获取答案(状态,奖励)(见图18)。然后可以利用答案来改善提示(下一个动作),就像强化学习利用奖励来改善其针对每个状态的最佳动作策略一样。使用强化学习的方法都是通过外部算法实现的。目前尚未创建能够独立执行RL的提示。
渐进提示增强(PHP)利用强化学习交互性地改善提示 [Zheng et al. 2023]。图19说明了这种方法。PHP是一个外部算法,它使用先前生成的答案作为线索,动态调用LLM以逐步提示LLM朝向正确答案。其工作方式如下:(1)给定一个问题(提示),LLM提供一个基本答案,(2)通过组合问题和答案,查询LLM并获得后续答案。我们(3)重复操作(2),直到答案变得稳定,像常规的策略优化增强学习算法一样。作者将PHP与思维链和自一致性结合使用。通过使用GPT-4,达到了学龄前数学问题(95%)、简单数学文字问题(91%)和代数问答(79%)的先进表现。
图19:渐进提示增强 [Zheng et al. 2023]
另一种旨在通过反馈改善答案的方法是自我完善 [Madaan et al. 2023]。在此方法中,LLM的初始输出通过迭代反馈和改进来提升。与PHP类似,LLM生成初始输出,并为其答案提供反馈,利用反馈进行自我迭代改进。图20和图21展示了这一方法。
自我完善通过三种方式提示LLM:(1)进行初始生成,(2)进行反馈,以及(3)进行改进。请注意,自我完善遵循贪婪推理链,从反馈中学习。自我完善已在GPT-3.5和GPT-4上应用,并在对话响应生成 [Askari et al. 2024]、代码优化、代码可读性改善、数学推理、情感反转、缩略语生成和受限生成方面进行了基准测试,显示出相对于基础模型的显著改善。
另一种结合了强化学习和LLM的方法是ReAct [Yao et al. 2022]。迄今为止,大多数工作集中在LLM的推理上,而非代理的动作。强化学习的一个关键要素是它为环境学习策略。
图21:自我完善 [Madaan et al. 2023]的环境。ReAct的目标是将推理进展与行动计划生成相结合。(或者换句话说,大多数方法使用RL来改善LLM推理,而ReAct使用LLM来改善RL代理策略。)ReAct在一个RL框架中使用思维链提示学习,同时利用外部知识来源(维基百科)和微调,以减少错误、基础和不同的提示策略。 在两个交互式决策制定基准(ALF-World和WebShop)上,ReAct在成功率上优于模仿和强化学习方法,分别为34%和10%,同时其提示包含一个或两个上下文示例。
ReAct的工作得到了进一步发展。反思 [Shinn et al., 2024] 基于ReAct构建。目标是创建通过反思失败和增强自身结果来学习的AI代理,类似于人类的学习方式。反思使用三个语言模型:行动者、评估者和反思者。其工作原理如下:(1)行动者生成文本和动作,(2)评估者模型对行动者产生的输出进行评分,以及(3)自我反思模型生成口头强化提示,辅助行动者自我改善(见图23)。对于行动者,可以使用思维链 [Wei et al., 2022b] 和ReAct [Yao et al. 2022]。反思在决策、推理和编码任务上进行评估。报告显示10-20个百分点的改善。图24展示了三种不同的提示应用。
为了总结本章关于强化学习方法的概述,我们讨论一个在游戏领域的应用。Voyager [Wang et al. 2023]是一个用于Minecraft游戏的代理,它使用一种迭代提示机制生成用于体态控制的代码。该机制包括自我验证 [Shinn et al. 2024]。代理具有技能库和自动课程,以最大化探索。Voyager通过提示与GPT-4进行交互。Voyager的提示旨在尽可能多地发现Minecraft中的多样化物品,这是一种新颖搜索的形式 [Eysenbach et al. 2018]。Voyager表现良好,显示出上下文中的终身学习能力,并通过获取许多工具获得高分(见图25)。
图22:四种提示策略的比较:标准、思维链(推理)、仅动作和ReAct [Yao et al. 2022]
图23:反思的架构 [Shinn et al. 2024]
图24:三个应用领域的比较 [Shinn et al. 2024]
图25:在Minecraft中的旅行者表现 [Wang et al. 2023]
6 讨论
我们回顾了基于提示的推理方法,强调了在推理性能上取得突破的技术。是时候反思这些方法的局限性,并提出未来工作的有希望领域。首先,我们讨论有关幻觉、可靠推理和扩展性的问题。然后,我们讨论LLM可以做什么和不能做什么。接着,我们强调与顺序决策过程和元认知的关联,最后以研究议程结束。
6.1 幻觉、可靠性和扩展性
关于LLM推理的大部分研究具有实验性。上下文学习和思维链推理的成功吸引了对语言模型推理过程深入洞察的研究。
Saparov和He [2022] 引入了一个合成问答数据集,旨在评估LLM的推理能力。这项工作表明,LLM在一定程度上能够推理,但思维链在具有广泛分支因子的证明树中表现不佳。在另一项研究中,Wang et al. [2022a] 也旨在增加我们对思维链工作方式的理解。作者发现,即使在推理链中有无效步骤,思维链仍然能够工作。他们还发现推理步骤的顺序对于良好结果至关重要。提示应与问题相关,并且连贯(步骤应按正确的顺序排列)。Jin et al. [2024] 研究了推理步骤长度对LLM的影响,发现提示的长度与推理能力之间存在强正相关关系。
这些研究突显了LLM推理如何看到不存在的事物。接下来,我们讨论思维链方法的故障模式研究,探讨LLM的推理是否可靠,或者是否因错误原因给出了正确答案。
6.1.1 可靠性
思维链和其他方法提示语言模型采取某些步骤来解决提示所指定的问题。可以问这个问题,这些步骤是否确实是模型所遵循的步骤(可靠推理),还是它走了另一条路来得到正确答案(不可靠推理)。一些研究测量LLM推理的可靠性。Lanham等人 [2023] 指出,正如有机推理者一样,模型的推理可能是事后构建的,可能是在找到某个结论之后构建的。通过故意在思维链中添加错误,作者测量了模型的可靠性。他们发现事后推理的变化很大,较大模型的可靠性往往较低。像正常的LLM一样,当没有正确基础时,(思维链)推理容易受到幻觉的影响。
另一项研究在提示中故意添加偏见。例如,在多项选择设置中,他们始终使答案(a)成为正确答案 [Turpin et al., 2024]。他们发现,对错误答案的偏见会导致准确性显著下降,并且模型经常生成思维链解释来合理化错误答案。作者进一步指出,鉴于语言模型是基于人类编写的解释进行训练的,这些解释可能不完整或错误。人类的解释可能遗漏因果链中的关键步骤,提供不可靠的人类推理过程描述,或可能旨在说服他人,而不是提供决策的真实原因。
为了解决可靠性问题,Lyu等人 [2023] 提出了可靠的思维链。这种方法涉及两个阶段。首先,将自然语言查询翻译成形式符号语言。其次,问题解决阶段处理符号语言,并可以解释它所采取的推理步骤。对于符号语言,建议使用Python、Datalog或PDDL。可靠性研究进一步使我们了解模型如何推理。这一主题的进一步调查包括Mondorf和Plank [2024]、Chuang等人 [2024]、Luo等人 [2023]、Paul等人 [2024]。
6.1.2 扩展性
LLM的突现能力促使研究LLM的扩展性及推理的性质,特别是如何将推理能力转移到较小的语言模型。LLM的扩展法则是一个活跃的研究领域,例如,见Kaplan等人 [2020]、Henighan等人 [2020]、Hoffmann等人 [2022]。鉴于LLM的计算成本,转移知识到小型语言模型引起了极大兴趣。关于知识蒸馏的综合调查包括Xu et al. [2024]、Gu et al. [2023]。具体到推理,Magister等人 [2022] 研究了小型语言模型中的推理,使用经过微调的学生模型从教师模型学习。与自教推理者 [Li et al., 2022a] 相关的另一项研究关注小型语言模型中的解释,并取得了类似的结果。
其他研究集中在提示蒸馏以进行检索Dai等人 [2022]、推荐Li等人 [2023]、蒸馏到具身的思维链推理代理 [Choi et al.] 和LLM图推理的蒸馏 [Zhang et al. 2024]。将推理蒸馏到较小模型在具有更明确指令的情况下表现相当良好。还建议将系统2推理的结果带入系统1 Yu et al. [2024],这引出了元认知的话题(见第6.2.3节)。
6.2 局限性:LLM能做什么和不能做什么
LLM的能力令人印象深刻。LLM可以被视为基于文本的大型世界替代模型(或者是我们在互联网上描述的世界),因此使我们能够以可理解的方式推理关于各种各样的上下文和问题的内容。推理任务,例如数学应用题,曾经是LLM无法完成的能力之一,直到最近。让我们更仔细地看看语言模型可以做什么和不能做什么。
6.2.1 LLM能做什么?
在正确的提示下,LLM能够解决许多推理的基础学校数学基准问题。基于提示的学习能够在推理时执行推理任务,如数学应用题、机器人运动和Python代码生成,而无需昂贵的参数训练。我们注意到,一个简单的生成-评估-控制分类能够很好地描述当前LLM推理文献的结构。此外,通过集成方法或自我验证可以提高推理链的准确性。通过将模型与外部模型(例如机器人功能和从搜索引擎和维基百科检索信息)结合,可以减少虚构现象。更进一步地,使用外部控制算法(如搜索或强化学习)作为支架,动态提示可以利用LLM执行复杂和互动的推理模式。
请注意,推理控制现在离核心LLM有两个层次:一个外部控制算法,在上下文学习的基础上,为LLM动态生成提示。这是在与提示一起进行推理,而不是单独进行推理。
此时,值得注意的是经典人工智能(AI)两大流派——符号主义和连接主义的融合。搜索和强化学习根植于符号AI传统,而LLM则根植于连接主义传统。本次调查的文献结合了这两种传统。高性能推理是在(连接主义)LLM之上创建的(符号)搜索器/学习者。在其他领域也能看到类似的组合(例如,AlphaFold Bryant等人[2022],Jumper等人[2021]和分子逆合成Segler等人[2018])。LLM帮助将符号推理方法扎根于语言;符号方法帮助创建提示,让LLM进行推理。我们将看到这两种传统如何继续相互改善,这将在进一步的研究中展现。
我们注意到,像GSM8K这样的基准在该领域的进步中占据了核心地位,尽管推理始于数学解题,但该领域已扩展至机器人、自主代理、游戏,尤其是计算机代码。形式语言在中间的多步骤推理链中扮演着重要角色。
推理工作的一个副作用是新的用于顺序决策过程(SDP)的少量学习方法的出现。传统上,这些过程是通过强化学习(如DQN Mnih等人[2015],PPO [Schulman等人2017]和SAC Haarnoja等人[2018])解决的,取得了良好的结果,但在更大问题上存在高样本复杂度。为解决SDP而出现的少量上下文学习为寻找少量提示学习能够解决的SDP问题开辟了研究途径。
6.2.2 LLM无法完成什么?
现在小学数学应用题大多可解,更具挑战性的推理基准在其他领域也出现了。另一条研究线索认为LLM无法推理,提供了LLM失败的实例,并讨论潜在原因。Berglund等人[2023]展示了LLM在惊人的方式上无法进行泛化的情况。他们提供的例子是,如果一个模型被训练报告“瓦莲京娜·捷列什科娃是第一位进入太空的女性”,它并不能自动回答“谁是第一位进入太空的女性?”这一问题,指向LLM的语义理解缺失。其他工作表明,结果的可泛化性和可转移性不如人们常常假设的那样,展示了十进制算术技能并不能转移到九进制算术问题上。LLM能够解决和无法解决哪些问题的问题将继续激励研究人员。
其他研究则研究LLM大小所带来的风险。Bender等人[2021]提到了与大型计算训练需求相关的环境风险,以及理解训练数据的困难,例如在偏见的背景下。此外,关于LLM训练数据的伦理、法律和版权问题也引发关注。最后,为了防止对LLM结果过于信任,我们应更好地理解其失败模式,例如广为人知的虚构问题(虚构看似正确但不真实的事实)。
推理和规划自人工智能诞生之初就受到研究,最早开始于逻辑和推理[Newell和Simon 1961]、棋盘游戏和谜题中的搜索算法[Korf 1999][Plaat 2020]、机器人规划[Fikes和Nilsson 1971]、传统机器学习如决策树和支持向量机[Flach 2012][Breiman 2001][Cortes和Vapnik 1995],再到知识表示和语义网[Van Harmelen等人2008]。自从连接主义方法成功以来[LeCun等人2015][Goodfellow等人2016](深度学习,包括LLM),研究人员一直尝试将这两种方法结合。
LLM所展现的大部分推理能力归功于变压器架构的巨大表现能力,以及上下文学习如何利用它们。提示工程和提示控制在我们在文献中看到的推理种类中起着至关重要的作用。模型可以被指示编写自己的推理提示;然而,这些Auto-GPT或Auto-CoT提示需要评价、验证和在现实世界中的扎根,以防止退化为虚构的世界。模型还可以被指示与世界互动,成为评估、控制和改进提示的外部支架工具。我们所体验到的LLM的“推理”,在某种程度上是由提示或支架算法控制的。尚不清楚提示学习是否能够使LLM创造一个提示,以展现非平凡的推理。
来自符号规划领域的批评观点也关注LLM的推理和规划能力,提供了规划失败的例子。他们认为可以使用LLM来改善传统规划者的启发式元素,例如PDDL,以增强传统符号规划方法。
本论文中调查的一些方法名称暗示了自我意识和自反能力。真正的自我反思或元认知在当前LLM的能力之外。LLM可以被提示进行推理、采取小步骤、自我评估,并且其搜索过程可以通过外部算法控制。自反性“智能”类型是由提示工程师或交互算法写进提示中的。我们不知道任何LLM能够反思或控制其推理过程,控制其应该采取多少推理步骤,或在答案足够好之后限制其推理。真正的自我反思仍然是未来的工作,尽管已经采取了一些步骤,接下来我们将讨论这些步骤。
6.2.3 朝向元认知的推理
人类思维表现出关于自我的推理能力,我们能够思考自己的思维过程。元认知研究这些主题。受到链式推理成功和我们调查的工作的启发,元认知也在LLM的背景下受到研究。
许多推理方法在名称和工作机制中突出了自反性方面。提示模型进行推理的提示正在根据推理过程的结果不断改善;在“思维缓冲区”中使用的思维模板源自其他推理过程。Wang和Zhao [2023]研究元认知提示。受链式推理和自我一致性的启发,他们创建了手动设计的提示,以增加语言模型的理解。如图26所示,元认知的人类思维过程与元认知LLM提示之间存在关系。另一个工作,依然受到链式推理和自我一致性的启发,连接了心理学和LLM。Didolkar等人[2024]研究了LLM在数学问题解决中的元认知能力,涉及GSM8K和更难的MATH问题。首先,模型被提示为数据集中每个问题实例找到一个技能名称。在7000个GSM8K实例中,模型找到了500个技能名称。接着,这500个名称被聚类为22个技能。他们发现,使用这22个技能名称的链式推理类似的提示解决的问题比标准的链式推理/自我一致性/PAL提示更多。22个技能名称的示例包括乘法与加法、基础算术、减法和代数。有趣的是,作者发现,经过强模型(GPT-4)训练的技能示例库,也能在弱模型(GPT-3)上得到较好的转化。弱模型的表现从增强技能名称的提示中受益。
图26:元认知提示与人类元认知过程的联系 [Wang和Zhao,2023]
LLM中的推理与完整的元认知推理之间的联系仍处于初期阶段。令人兴奋的未来研究可能会出现。## 6.3 研究议程
在本讨论结束时,我们提出了未来工作的有前景的主题。与大语言模型(LLMs)进行推理是一个活跃的研究领域。它结合了符号推理、连接主义、自然语言、自主代理和情感推理等元素 Broekens et al. 2023,并承诺人工通用智能。
对于未来,所调查的工作指向以下方向。首先,我们讨论LLM推理领域本身的主题,然后讨论对LLM推理进展重要的更一般的机器学习主题,最后讨论更长期的基础主题。
与LLMs推理相关的具体研究主题包括:
-
控制与提示学习——除了贪婪搜索之外,搜索控制作为外部算法实施。是否可以将推理管道的所有阶段纳入一个交互式提示中?我们能否制作一个执行动态搜索式步骤控制的提示,而不需要外部框架?
-
代码——使用形式语言和计算机代码的推理进展相当可喜。GitHub Copilot 已获得成功。将LLM推理进一步整合到软件工程工具中是一个有前景的研究领域,可能对软件编写方式产生重大实用影响。
-
归根结底——LLMs中的推理已成功应用于自主代理、机器人技术和游戏。一个挑战是将推理过程与环境结合起来。我们如何帮助LLMs在推理结果不确定时主动寻找新信息?检索增强生成是未来吗?推理LLM的未来是一台搜索引擎吗 [Verberne, 2024]?
在机器学习中也会影响基于提示的推理研究的一些通用主题包括:
-
基准——LLMs的进展受限于合适基准的可用性。目前最受欢迎的是GSM8K,适用于小学数学。随着该领域的进展,其他基准将变得流行:具有更困难任务的基准,以及用于自主代理和机器人技术等其他应用的基准。
-
可靠性——我们对LLMs基于提示推理的理论理解尚不完整。关于可靠性的研究突显了我们理解的不足的一个例子。总体而言,需要进一步深入了解LLMs中多步骤上下文学习的运作。
-
小型语言模型——效率是语言模型广泛采用的重要元素。重要话题包括将推理缩小到小型语言模型,以及对规模法则的理解。
-
少量样本强化学习——小型推理问题可以通过少量样本上下文学习解决。我们能否解决更大的序列决策过程,降低强化学习中的样本复杂性?
对于未来的长期工作,以下更基础的问题至关重要:
-
符号与连接主义计算——我们如何进一步改善LLM推理:LLMs如何从符号推理提示中受益,以及LLMs如何帮助将符号推理扎根于语言中?
-
自我认知——对推理的许多研究指导模型如何解决问题。引入不同类型推理的命名概念是否有帮助?模型能否自主找到这些概念?让LLM逐步“思考”是影响模型自身“思维”过程的第一步。关于LLM自我认知的初步研究已经出现,人工通用智能将对此进一步探索。
7 结论
基于提示的上下文学习是一种高效的机器学习方法,无需对LLM进行参数更新。在语言任务(系统1)上能够达到良好的表现,但在推理任务(系统2)上则表现不足。推理任务,如数学文字题,通常以逐步方式解决。最近开发的提示能够引导LLM“逐步思考”(链式思维),并评估和验证每一步的结果。与LLMs的推理性能大大提高。总的来说,所调查的方法使LLM能够遵循高质量的多步骤推理链。成功地使用Python代码或其他形式语言来减少推理步骤中的错误。此外,在自主代理和机器人行动领域,通过将在环境和机器人的运动物理约束中扎根的推理答案,取得了良好的表现。
对于复杂的推理任务,可能会生成大量推理步骤。为了交互式控制推理空间的大小,可以使用外部框架算法。通常,使用搜索算法或强化学习的变体。符号与连接主义人工智能传统在推理提示和搜索算法中结合,这些算法帮助LLM神经网络解决自然语言数学文字题及相关问题。
在本次调查中,最受欢迎的推理基准之一是GSM8K,其中包含8500个小学数学文字题。使用GPT-3等LLMs,推理方法的表现相较于标准提示方法提升了 20 − 50 % {20} - {50}\% 20−50% 点。为了在该领域进一步进展,开发其他具有挑战性的基准至关重要。
与LLMs进行推理的领域非常新,并且在一些重要领域缺乏理论理解,例如可靠推理(模型有时可能会因错误原因找到正确答案)。尽管基于提示的学习允许少样本学习,但LLMs的预训练和微调的计算需求仍然很高,因此对小型语言模型的兴趣日益增加。在大型模型中有效的推理技能通常可以转移到小型模型中。
人类思维具备自我认知能力,我们可以思考自己的思维过程。本次调查中很多方法名称暗示了与自我认知的关联(反思、自我优化、自我提升、内心独白)。已有初步实验表明,语言模型能够推理其推理技能。
LLM推理是一个活跃的研究领域,与人工通用智能有关。该领域已经取得了重大进展。基于当前的局限性和未解的问题,我们提供了一份研究议程,强调在更困难推理问题、自我认知和小型语言模型等方面进一步发展的机会。
更多推荐
所有评论(0)