思维链推理的综述:进展、前沿和未来
摘要:思维链推理,作为人类智能的基本认知过程,在人工智能和自然语言处理领域引起了极大的关注。然而,这一领域仍然缺乏全面的综述。为此,我们迈出了第一步,全面而广泛地呈现了这一研究领域的深入调查。我们使用X-of-Thought(思维X)来广泛地指代思维链推理。具体来说,我们根据方法的分类系统地组织了当前的研究,包括XoT构建、XoT结构变体和增强的XoT。此外,我们描述了XoT在前沿应用中的使用,涵盖了规划、工具使用和蒸馏。此外,我们讨论了挑战并探讨了一些未来的发展方向,包括忠实度、多模态和理论。我们希望这份综述能够成为寻求在思维链推理领域创新的研究者的宝贵资源。
1 引言
预训练语言模型(PLMs)能够自动从无标签文本中学习通用表示,并通过在下游任务上的微调实现出色的性能(Devlin等人,2019年;Raffel等人,2020年;Radford和Narasimhan,2018年)。最近,扩大语言模型的规模显著提高了性能,并带来了许多惊喜,例如突现能力(Wei等人,2022a;Schaeffer等人,2023年)。因此,自然语言处理的范式正从预训练加微调转变为预训练加上下文学习。然而,到目前为止,大规模语言模型(LLMs)在复杂推理任务上,如数学推理(Cobbe等人,2021年;Patel等人,2021年)、常识推理(Talmor等人,2021年;Mihaylov等人,2018年)等,仍有相当大的改进空间。
为了利用LLMs解决复杂推理任务,Wei等人(2022b)通过逐步推理过程扩展了上下文学习,首先引入了思维链(CoT)提示的概念。Kojima等人(2022年)发现,简单地在提示中添加一个魔法短语“让我们一步步来”就能使LLMs在没有任何人类注释的情况下执行零样本思维链推理。这些研究突出了思维链在增强模型复杂推理能力以及提高其推理和规划能力方面的重要性。
随后,关于X-of-thought(XoT)的大量工作像雨后的蘑菇一样在NLP社区迅速涌现,例如自动XoT构建(Kojima等人,2022年;Zhang等人,2023f;Xu等人,2023年),XoT结构变体(Chen等人,2022a;Ning等人,2023年;Lei等人,2023a;Yao等人,2023b)等。请注意,为了与原始的CoT区分开来,我们使用XoT来广泛地指代CoT,这是一个集体术语,用于指代逐步推理方法的使用。
然而,这些方法和数据集尚未经过系统性的回顾和分析。为了填补这一空白,我们提出这项工作来进行对XoT家族的全面和详细分析。尽管已经有一些综述讨论了思维链,但它们仅限于特定方面,例如使用提示的LLM推理(Qiao等人,2023年)和思维链提示策略(Yu等人,2023c)。相比之下,我们的综述不仅提供了对他们已经涵盖的主题的更全面和全面的讨论,还包括了额外的主题和讨论,如XoT构建、XoT结构变体和前沿应用等。具体来说,在本文中,我们首先介绍了相关背景和初步知识(第2节)。此外,我们从多个角度仔细分类了XoT系列工作,并完成了深入分析(第4节),包括XoT构建方法(4.1节)、XoT结构变体(4.2节)和XoT增强方法(4.3节)。然后,我们提供了XoT在前沿领域的实际应用(第5节)。为了激发XoT后续工作的灵感,我们提供了对这一领域未来研究潜在途径的见解(第6节)。最后,我们比较并讨论了现有的方法(第7节)。
2 背景和初步
2.1 背景
近年来,随着计算能力的不断扩展,大规模语言模型如雨后春笋般涌现(Brown等人,2020年;OpenAI,2023年;Touvron等人,2023a;Scao等人,2022年;Touvron等人,2023b;Zhao等人,2023b),随着模型规模的持续增长,许多新能力已经出现,例如上下文学习和思维链推理(Brown等人,2020年;Wei等人,2022b,a;Schaeffer等人,2023年)。
Brown等人(2020年)发现,大规模语言模型具有出色的上下文学习(ICL)能力。ICL将输入-输出演示融入到提示文本中。通过ICL,现成的LLMs可以在不进行额外微调的情况下使用,同时实现可比的性能。然而,这种端到端的方法在面对复杂推理任务时往往会表现不佳。
Wei等人(2022b)发现,通过在演示中添加逐步推理过程,可以提高LLMs的推理能力,这被称为思维链提示。CoT提示使模型能够更精确地理解问题的复杂性和推理过程。此外,模型生成了一系列推理步骤,这为我们提供了对模型认知过程的透明视图,进一步提高了可解释性。
2.2 基础
在本节中,我们介绍了使用LLMs进行思维链推理的初步知识,并引用了(Qiao等人,2023年)中的公式定义。假设有一个问题Q,一个提示T和一个概率语言模型PLM。模型将问题和提示作为输入,给出理由R和答案A。我们首先考虑上下文场景,其中演示不包含推理链。我们需要最大化答案A的可能性,如公式(1,2)所示。
在思维链推理场景中,演示包含推理过程,我们需要最大化答案A和理由R的可能性,如公式(3,4,5,6)所示。
3 基准测试
3.1 数学推理
数学推理通常用来衡量模型的推理能力。早期的基准测试包含简单的算术运算(Hosseini等人,2014年;Koncel-Kedziorski等人,2015年;Roy和Roth,2015年;Koncel-Kedziorski等人,2016年)。Ling等人(2017年)以自然语言形式标记了推理过程,而Amini等人(2019年)在AQUA的基础上,通过以程序形式标记推理过程进行了构建。后来的基准测试(Miao等人,2020年;Patel等人,2021年;Cobbe等人,2021年;Gao等人,2023年)包含了更复杂和多样化的问题。(Zhu等人,2021年;Chen等人,2021年,2022b年)需要基于表格内容进行推理。还有一些通用基准测试(Hendrycks等人,2021年;Mishra等人,2022a,b年)和阅读理解形式的基准测试(Dua等人,2019年;Chen等人,2023年)。最近,(Yu等人,2021a年)通过使用层次推理和知识,赋予了预训练模型数学推理的能力。
3.2 常识推理
常识推理是基于通常在日常生活世界中普遍知晓和普遍感知的知识进行推断、判断和理解的过程。如何获取和理解常识知识是模型面对常识推理时面临的主要障碍。许多基准测试和任务都集中在常识理解上(Talmor等人,2019年,2021年;Bhakthavatsalam等人,2021年;Mihaylov等人,2018年;Geva等人,2021年;Huang等人,2019年;Bisk等人,2020年),事件时间常识推理(Rashkin等人,2018年;Zhou等人,2019年)和常识验证(Wang等人,2019年)。
3.3 符号推理
这里的符号推理特指模拟一些对人类来说简单但对LLMs来说具有挑战性的简单操作。最后一个字母串联、抛硬币和反转列表(Wei等人,2022b年)是最常用的符号推理任务。此外,协作基准测试BigBench(Srivastava等人,2022年)和BigBench-Hard(Suzgun等人,2023年)也包含了几个符号推理数据集,如状态跟踪和对象计数。
3.4 逻辑推理
逻辑推理分为演绎推理、归纳推理和溯因推理(Yu等人,2023a年)。演绎推理从一般前提中推导出结论(Liu等人,2020年;Yu等人,2020年;Tafjord等人,2021年;Han等人,2022年)。归纳推理从特殊案例中推导出一般结论(Yang等人,2022年)。溯因推理为观察到的现象提供合理的解释(Saparov和He,2023年)。
3.5 多模态推理
在现实世界中,推理还涉及除文本之外的其他模态信息,其中视觉模态最为普遍。为此,提出了许多视觉多模态推理的基准测试(Zellers等人,2019年;Park等人,2020年;Dong等人,2022年;Lu等人,2022年),其中ScienceQA(Lu等人,2022年)注释了推理过程,是使用最广泛的视觉多模态推理基准测试。视频多模态推理(Lei等人,2020年;Yi等人,2020年;Wu等人,2021年;Xiao等人,2021年;Li等人,2022a年;Gupta和Gupta,2022年)更具挑战性,因为它与视觉多模态推理相比引入了额外的时间信息。
3.6 指标
准确率 准确率用于评估模型在分类任务上的能力,通常用于多项选择(Ling等人,2017年;Mihaylov等人,2018年;Liu等人,2020年;Lu等人,2022年)和是非(Talmor等人,2021年;Geva等人,2021年;Han等人,2022年)任务。
EM和F1 EM和F1是用于评估自由形式(Mishra等人,2022a年;Wang等人,2019年;Yi等人,2020年)和跨度提取(Dua等人,2019年;Zhu等人,2021年;Mishra等人,2022b年)任务的指标。两者都在词符级别上计算。
其中P和R分别代表精确度和召回率,EM计算预测和答案完全相同的比例。
4 方法
在本节中,我们通过三种不同的分类探讨X-of-thought(思维X)推理:X-of-thought的构建(4.1节)、X-of-thought的结构变体(4.2节)以及X-of-thought的增强方法(4.3节)。
4.1 构建方法
经过深入分析,我们将X-of-thought的构建分为三类:1)手动XoT,2)自动XoT,3)半自动XoT,具体描述如下。
4.1.1 手动XoT
尽管大型语言模型通过提示进行少量样本的上下文学习,但在推理任务中仍有限制。为了探索大型语言模型的潜在推理能力,一种标准方法是在示例中提供不同形式的思考。
Wei等人(2022b)首次提出思维链提示(Few-shot CoT),通过手动提供自然语言形式的理由来演示。为了进一步确保推理过程中的确定性并减少推理路径和答案之间的不一致性,PAL(Gao等人,2023)、PoT(Chen等人,2022a)和NLEP(Zhang等人,2023e)利用编程语言作为注释理由,将问题解决转化为可执行的Python程序。同时,为了同时利用自然语言和编程语言的优势并提高推理输出的置信度,MathPrompter(Imani等人,2023)使用零样本思维链提示生成多个代数表达式或Python函数,这些可以相互验证并提高结果的可靠性。此外,由于示例中的推理复杂性,如包含更多推理步骤的链,会导致性能提升,Fu等人(2023a)提出了基于复杂度的提示,其中在高复杂度理由之间进行投票以得出最终答案。
手动构建的X-of-thought方法通过向示例中添加不同类型的逐步中间推理过程来扩展上下文学习。它们允许LLMs模仿并生成推理路径。尽管手动XoT方法为人类理解和复杂任务(如数学推理、常识推理、符号推理等)提供了更大的可解释性和可靠性,但手动注释理由需要显著的成本,并存在诸如示范选择困难和任务泛化等缺点。具体来说,不同的任务需要不同方式的示范。因此,其他工作尝试自动构建推理路径,如在§4.1.2中讨论的。
4.1.2 自动XoT
思维链提示(Wei等人,2022b)通过在少量样本设置中使用特定任务示例激发了LLMs的复杂推理能力,这限制了可扩展性和泛化能力。为了减少手工制作的少量样本示例的成本,Kojima等人(2022)提出了零样本CoT,通过在问题后引入一个魔法短语“让我们一步步来”,使LLMs能够以零样本的方式生成推理链。然而,零样本CoT存在推理路径质量差、错误多的问题。由于示范的多样性在推理链生成中起着至关重要的作用,Auto-CoT(Zhang等人,2023f)通过聚类和代表性示例选择自动生成示范,提高了多样性并一致性地匹配或超过了Few-shot CoT的性能。COSP(Wan等人,2023)引入了问题的输出熵来辅助示范选择。Xu等人(2023)提出了Reprompting,通过迭代使用Gibbs采样来找到有效的CoT提示。同时,推理链中的一些错误来自遗漏步骤的错误,Wang等人(2023f)将零样本CoT扩展到计划和解决(PS)提示,通过设计一个计划将整个任务划分为更小的子任务,并根据计划执行子任务,带有更详细的指令。LogiCoT(Zhao等人,2023c)使用符号逻辑来验证零样本推理过程,从而减少推理中的错误。此外,PoT(Chen等人,2022a)也探索了语言模型,如Codex,通过添加“让我们一步步编写Python程序…”,在零样本设置中生成可执行的Python程序来解决数学问题,这减少了中间推理步骤中的错误。一些工作引入了代理来解决推理问题。例如,Agent Instruct(Crispino等人,2023a)利用代理生成与任务相关的、有信息量的指令,指导LLMs执行零样本推理。
与手动XoT不同,自动XoT使用零样本提示工程或采样,是可扩展的,并且可以在没有人类干预的情况下在领域之间泛化。然而,由于缺乏人类对齐,自动生成的思维链面临质量差、幻觉和事实不一致等挑战。因此,以半自动方式构建XoT是必要的,这在§4.1.3中介绍。
4.1.3 半自动XoT
半自动XoT方法结合了手动和自动构建方法的优点。Shao等人(2023)提出了合成提示,利用少数人工注释的示例来提示模型通过交替的前向-后向过程生成更多示例,并选择有效的示范以激发更好的推理,缓解了AutoCoT中缺乏人类对齐的问题。尽管之前的工作解决了手动注释的问题,示范选择也可以显著影响性能。Automate-CoT(Shum等人,2023)采用强化学习与方差降低的策略梯度策略来估计黑盒语言模型中每个示例的重要性,激发更好的示范选择。同样,Lu等人(2023b)提出了PromptPG,它利用策略梯度来学习在表格推理中选择示范。Ye和Durrett(2023)最初使用两个代理指标来评估每个示例,然后在示例中搜索以找到在银标开发集中产生最佳性能的示范。同时,Pitis等人(2023)提出了Boosted Prompting,这是一种提示集成方法来提高性能,它在遇到当前示范难以处理的问题时,通过迭代扩展示例。Zou等人(2023)引入了Meta-CoT,它根据问题类别自动选择示范,消除了特定任务提示设计的需求。
半自动XoT方法减少了手动标记的工作量,同时引入了人类对齐信号和示范选择策略,增强了推理的能力和稳定性。此外,它还实现了成本效益高的领域泛化。然而,示范选择问题尚未完全解决,需要更多的努力和研究。
4.2 XoT结构变体
最原始的思维链是一个链式结构,用自然语言描述中间推理步骤。在本节中,我们介绍修改原始链式结构的结构变体,包括链式结构变体、树状结构变体和图状结构变体。
图2展示了推理的发展过程,从直接的输入/输出,到链式结构,再到树和图结构。
链式结构 PAL(Gao等人,2023年)和 PoT(Chen等人,2022a)引入编程语言来描述推理过程,从而将推理问题转化为可执行程序的实现,以获得最终答案。由于程序执行是确定性的并且能够准确执行算术计算,这种方法在数学推理中表现出色。此外,符号序列是另一种思维表示类型。符号链(Chain-of-Symbol,Hu等人,2023a)在规划期间用简化的符号链表示表示复杂环境,这减少了模拟环境的复杂性。链式结构变体如图2(c,d)所示。思维算法(Algorithm of Thought,Sel等人,2023)将算法能力注入模型,通过添加基于算法的示例使模型的推理更加逻辑化。它没有树搜索(Long,2023;Yao等人,2023b)的巨大搜索空间,节省了计算资源并取得了出色的性能。
树状结构 原始的链式结构本质上限制了探索范围。通过结合树状结构和树搜索算法,模型获得了在推理过程中有效探索和回溯的能力(Long,2023;Yao等人,2023b),如图2(e)所示。结合对中间思维的自我评估,模型可以实现全局最优解。ToT(思维链)的推理过程涉及不确定性,这可能导致级联错误。TouT(Mo和Xin,2023)在推理中引入了蒙特卡洛dropout,考虑了不确定性。Yu等人(2023b)深入研究了类似的问题,利用它们的解决方案提升LLMs复杂的推理能力。这些类似的问题呈现出树状结构,最终汇聚解决主要问题。然而,当前的思维树在选择任务上有很大的局限性,需要为每个任务设计特定的提示,这阻碍了它的广泛应用。SoT(Ning等人,2023)是树状结构的另一种变体,它将问题分解为可以并行处理并同时解决的子问题,以加快推理速度。然而,它的实用性仅限于可并行分解的问题,不适用于复杂推理任务。
图状结构 与树相比,图引入了循环和环,带来了更复杂的拓扑关系,并允许建模更复杂的推理,如图2(f)所示。GoT(Besta等人,2023;Lei等人,2023a)将中间思维视为图中的节点,结合探索和回溯操作,并与思维树相比额外引入了聚合和细化操作。额外的操作,聚合和细化,在复杂任务中激发了更好的推理。然而,它面临着与思维树相同的困境,即任务限制和较差的泛化能力。此外,它的推理成本增加了。与明确构建思维图的GoT不同,ResPrompt(Jiang等人,2023a)在提示文本中引入了思维之间的残差连接,允许不同步骤的推理相互交互。
随着模型从线性链过渡到层次化的树和复杂的图,思维的相互作用逐渐变得更加复杂,从而逐步增强了解决复杂问题的能力。然而,随着拓扑复杂性的增加,相关方法对任务选择施加了更多限制,导致它们的泛化能力显著降低,使其应用变得困难。将基于复杂拓扑结构的方法扩展到通用领域是未来研究面临的一个主要挑战。
4.3 XoT增强方法
在本节中,我们将介绍XoT增强方法。总共,我们将提供五个类别的概述,分别是添加验证和细化(4.3.1节)、问题分解(4.3.2节)、利用外部知识(4.3.3节)、投票和排名(4.3.4节)以及提高效率(4.3.5节)。
4.3.1 验证和****改进
思维链推理往往倾向于产生幻觉,产生错误的推理步骤。中间推理步骤中的错误又可能触发一系列错误。引入验证以获得反馈,随后根据这些反馈细化推理过程,可以有效地减轻这种现象,类似于人类反思的过程。图3描述了验证和细化的概述。
图3:验证和改进减少推理中的级联错误。
VerifyCoT(Ling等人,2023年)设计了一种自然程序,这是一种演绎推理形式,允许模型产生准确的推理步骤,每个后续步骤严格基于前一步。DIVERSE(Li等人,2022c)使用投票机制来排除错误答案,然后对每个推理步骤进行细粒度的验证。SCREWS(Shridhar等人,2023)认为后修改的结果并不一定优于原始结果,因此它引入了一个选择模块来在原始和修改之间选择更好的结果。为了便于知识密集型任务,Verify-and-Edit(Zhao等人,2023a)引入外部知识来重新推理不确定的示例,减少推理中的事实错误。一些研究努力尝试挖掘模型的内部知识。为了解决事实错误,一些研究尝试挖掘LLMs的内在知识。他们在回答问题之前从模型中获取知识(Dhuliawala等人,2023年;Zheng等人,2023年)。Ji等人(2023年)进一步验证了内在知识的正确性,Liu等人(2023b)通过强化学习提高了内在知识获取的准确性。
不一致性是推理中的另一个主要挑战,Dua等人(2022年)迭代地使用先前的推理结果作为提示,直到模型给出一致的答案。Paul等人(2023年)训练一个批评模型来提供关于推理过程的结构化反馈。Self-Refine(Madaan等人,2023)执行迭代自我反馈和细化以减轻推理中的错误。与Self-Refine相比,Reflexion(Shinn等人,2023)引入了强化学习进行反思,这也带来了决策能力。同时,一些工作引入了反向推理(Yu等人,2023a)进行验证。
RCoT(Xue等人,2023)根据推理链重构问题,其与原始问题的不一致性暴露了推理过程中的错误。FOBAR(Jiang等人,2023b)和Self Verification(Weng等人,2022)通过从答案中推断问题中的条件进行验证。FOBAR推断问题中的变量,而Self Verification推断问题中的条件。然而,Huang等人(2023a)发现LLMs在没有外部反馈的情况下难以自我纠正,甚至可能导致性能下降。
LLM推理是一个无监督过程,在中间推理步骤中来自反馈信号的指导在提高推理中起着至关重要的作用。来自反馈信号的指导可以有效地减少推理中的幻觉现象。在获取适当的反馈并根据该反馈进行准确纠正方面仍有很大的研究空间。
4.3.2 问题分解
X-of-thought推理的本质在于其逐步解决问题。然而,原始的思维链推理方法并没有明确地剥离出逐步推理过程,仍然使用一次性生成。在本节中,我们将讨论问题分解方法,该方法明确地逐步解决问题。概述如图4所示。
图 4:问题分解通过逐步解决简单的子问题来解决复杂问题。
Wang等人(2022a)迭代地从模型中获取知识,在多跳QA中取得进展。Zhou等人(2023b)提出了Least-to-Most提示,最初以自顶向下的方式将问题分解为子问题,随后,它一次解决一个子问题,并利用它们的解决方案来促进后续子问题。Successive Prompting(Dua等人,2022)采取了与Least-to-Most提示类似的方法,不同之处在于它采用了交错的子问题和答案的分解,而不是两阶段分解。上述方法没有为各种子问题制定定制解决方案。Decomposed Prompting(Khot等人,2023)设计了一个模块化共享库,每个库专门针对一类子问题,可以为不同类别的子问题定制更有效的解决方案。除了一般任务,一些工作专注于表格推理中的问题分解。BINDER(Cheng等人,2023)以神经符号方式将推理映射到程序,并通过程序执行器(如Python或SQL)获得最终答案。Ye等人(2023)引入了DATER,它将大型表格分解为较小的表格,将复杂问题分解为简单问题。前者减少了不相关信息,后者减少了推理的复杂性。
直接回答复杂问题可能是具有挑战性的。通过将问题分解为简单的子问题并逐步解决它们,难度降低了。此外,每个子问题都可以追溯到特定的推理步骤,使推理过程更加透明和可解释。当前的工作大多使用自顶向下的分解策略,而基于反向推理的自底向上分解策略仍有待在未来的工作中探索。
4.3.3 利用外部知识
模型内参数化的知识是有限的且过时的。因此,在面对知识密集型任务时,经常发生事实错误。引入外部知识可以减轻这种现象,如图5所示。
图5:引入外部知识可以减少推理中的事实错误。
Lu等人(2023a)在提示中引入多语言词典以增强机器翻译。Li等人(2023d)提出了知识链(CoK-Li),通过查询生成器从知识库中获取结构化知识以执行知识引导推理。Wang等人(2023b)(CoK-Wang)也从知识库中检索结构化知识。此外,它估计了推理链的事实性和忠实度,并提示模型重新思考不可靠的推理,这减轻了CoK-Li中的知识检索错误。KD-CoT(Wang等人,2023c)通过多轮QA方法解决事实推理问题。他们设计了一个反馈增强的检索器,在每轮QA中检索相关外部知识以校准推理过程。其他研究使用模型自己的记忆作为外部知识。例如,Memory-of-Thought(Li和Qiu,2023)首先进行预思考,将高置信度的思维保存到外部记忆,在推理期间,它让LLM回忆相关记忆以辅助推理。
模型中的参数化知识在预训练结束时固定,这导致其在知识容量和知识更新方面的不足。虽然引入外部知识可以在一定程度上缓解这一点,但它仍然是一个不完美的解决方案。要从根本上解决这个问题,持续学习(Lange等人,2022年;Wang等人,2023g)是未来研究工作的一个有希望的途径。
4.3.4 投票和排名
由于生成过程中固有的随机性,LLM推理表现出随机性和不确定性。通过多种抽样策略,可以有效减轻这个问题,如图6所示。
图 6:投票和排序通过从多个采样中选择最终答案来减少不一致性。
一些方法采用排名,如(Cobbe等人,2021年),它训练一个验证器通过排名选择高置信度的推理链。同时,其他方法通过投票机制选择推理链。Self-consistency(Wang等人,2023j)通过基于最终答案的采样推理链的多数投票选择最一致的答案。此外,(Fu等人,2023a)提出了Complex CoT,它利用基于复杂度的投票策略,倾向于选择由更复杂的推理链生成的答案。然而,基于答案的投票机制没有考虑推理链的正确性。
Miao等人(2023年)在投票时考虑了推理步骤,这可以同时获得一致的答案和可信赖的推理过程。此外,为了考虑跨链中间步骤之间的关系,Yoran等人(2023年)在推理链之间混合信息,并选择最相关的事实对多个推理链进行元推理。GRACE(Khalifa等人,2023年)通过对比学习训练一个鉴别器,并使用这个鉴别器对每个中间推理步骤进行排名。以前的方法基于概率分布进行抽样,而Diversity-of-Thought(Naik等人,2023年)通过使用不同的指令提示获得多个推理路径。
从集成学习中汲取灵感,随后进行投票和排名的多重抽样做法有助于减少不确定性。此外,与单样本方法相比,它展示了显著的性能提升。多重抽样与投票已成为当前X-of-thought研究中的常用技术。将推理链整合到投票中仍然是未来研究的一个重要领域。
4.3.5 效率
LLM推理和手动注释的推理链带来了昂贵的开销。Aggarwal等人(2023年)通过动态调整样本数量提高自一致性,这可以在边际性能下降的情况下显著降低推理成本。Ning等人(2023年)并行地分解问题并同时处理它们,减少了推理时间开销。但它无法处理复杂问题。Zhang等人(2023b)通过选择性跳过一些中间层并随后在另一个前向传递中验证草稿来加速推理。Diao等人(2023年)借鉴了主动学习的思想,对具有高不确定性的示例进行注释,减少了人工注释成本。大规模语言模型展示了巨大的能力,但它们也带来了巨大的开销。在未来的研究工作中,平衡性能和开销之间的权衡可能需要大量的关注。
5 前沿应用
5.1 工具使用
尽管大型语言模型(LLMs)展示了广泛的知识,但也伴随着一些挑战。这些挑战包括无法访问最新新闻、在回答涉及领域外知识的查询时倾向于产生幻觉,以及缺乏复杂的推理能力,如数学计算或符号推理。通过赋予LLMs使用外部工具的能力,可以增强模型的推理能力并整合外部知识,使其能够进行信息检索和环境交互。
MRKL(Karpas等,2022年)引入了一种包含可扩展模块(称为专家)和路由器的新框架。这些专家可以是神经网络或符号形式。然而,这项研究主要集中在概念化和专门针对数学计算训练LLM,而没有深入实现其他模块内容。TALM(Parisi等,2022年a)和Toolformer(Schick等,2023年)将文本为中心的方法与辅助工具结合,以增强语言模型的能力。他们采用自监督机制启动性能增强,从一组有限的工具提示开始。类似地,HuggingGPT(Shen等,2023年)利用视觉和语音模型处理来自不同模态的信息,从而赋予LLMs多模态理解和生成的能力。另一个问题是如何选择适当的工具。LATM(Cai等,2023年)使LLMs能够在不同任务中生成通用的API,而GEAR(Lu等,2023年c)则通过使用较小的模型来委派工具的基础和执行,从而考虑工具使用的效率。
然而,将用户请求转换为API格式通常并不容易。上述现有方法在促进多次工具调用和纠正查询错误方面存在局限性。为了解决这个问题,ReAct(Yao等,2023年c)整合了推理和行动的优势,相互增强和补充,提高了问题解决能力。ART(Paranjape等,2023年)使用任务库选择相关的工具使用和推理链。MM-REACT(Yang等,2023年)进一步利用视觉专家实现多模态推理和行动。
上述研究工作集中在设计工具(或API)以增强LLMs在各个领域的能力。将XoT与工具结合有效应对了LLMs面临的挑战。X-of-thought推理使模型能够有效地引出、跟踪和更新行动计划,同时管理异常情况。同时,行动操作促进模型与外部资源(如知识库和环境)的交互,使其能够收集额外信息。为了评估工具的能力,API-Bank(Li等,2023年c)和MetaTool(Huang等,2023年c)引入了综合基准,提供了评估工具增强型LLMs性能和有效性的坚实基础。
5.2 规划
LLMs在直接提供复杂问题的准确答案方面面临挑战,需要将其分解为连续的步骤和子任务。虽然思维链(CoT)提供了一种简单的规划方法,但在解决高度复杂的问题时却显得不足,且缺乏通过回溯评估和纠正错误的能力。
许多研究将思维链的框架扩展到各种形式,以进一步增强规划能力。树形思维(Tree-of-Thought,Yao等,2023b)使LLMs能够在树中考虑多种推理路径并自我评估以确定下一步行动。在需要全局决策的情况下,ToT允许通过深度优先搜索或广度优先搜索等技术进行前向或后向探索。通过规划进行推理(Reasoning via Planning,RAP,Hao等,2023年)也将问题划分为树,并通过蒙特卡洛树搜索算法进行探索,使用LLMs作为世界模型和推理代理。另一种方法,图形思维(Graph of Thought,GoT,Yao等,2023d),使用图节点表示各个思维并利用外部图神经网络进行组织。LLM+P(Liu等,2023年a)和LLM+DP(Dagan等,2023年)促进LLMs生成规划域定义语言(PDDL)(Gerevini,2020)。PDDL有助于分解复杂问题并利用专业模型进行规划,然后将结果转换为自然语言供LLM处理。然而,需要注意的是,这些方法使用树/图/PDDL节点来表示思维,这在表示形式上有局限性,只能处理特定的规划问题。
另一种技术是提高模型纠正错误和总结历史经验的能力。自我改进(Self-Refine,Madaan等,2023年)采用了一种独特的方法,即使用同一模型评估并反馈模型生成的输出。反思(Reflexion,Shinn等,2023年)使模型能够反思并纠正之前行动中的错误,类似于文本格式的强化学习,并将记忆划分为长期和短期成分。然而,当出现计划外错误时,Reflexion无法更新计划。AdaPlanner(Sun等,2023年)引入了自适应闭环计划改进,根据环境反馈迭代细化任务计划。ISR-LLM(Zhou等,2023年c)将自我改进与PDDL结合,在长时间顺序任务中取得了更高的成功率。同时,LATS(Zhou等,2023年a)利用基于语言模型的蒙特卡洛树搜索进行更灵活的规划过程。
规划可以灵活地与工具(Ruan等,2023年)或代理(Crispino等,2023年b)结合,以丰富推理能力。ToRA(Gou等,2023年)设计了带有外部工具的数学专业代理,AutoUI(Zhang和Zhang,2023年)直接与多模态环境交互,而不是将视觉输入转换为文本,从而提高推理效率并减少错误传播。
规划增强方法通过引入基于搜索、基于图形和基于定义语言的方法,推动了传统顺序规划的发展。另一方面,一些方法结合了行动、规划、反思或工具,旨在增强LLMs的长期规划和抗错误能力。
5.3 思维链蒸馏
通过蒸馏推理步骤,大型语言模型(LLM)可以自我改进以解决复杂问题。Huang等(2022年)采用了一种自一致性LLM,从未标记数据生成思维链。随后利用这些链条微调模型,增强其广泛的推理能力。Zelikman等(2022年)提出了STaR,一种使用自循环引导策略改进语言模型推理能力的小样本学习方法。SECToR(Zhang和Parkes,2023年)使用思维链获取算术答案,然后微调模型以直接生成答案而无需思维链。
思维链是一种主要在大型语言模型中观察到的新兴能力,在小型模型中进展有限。然而,通过蒸馏等技术提升小型模型的思维链能力是可行的。Magister等(2023年)展示了通过使用较大教师模型生成的推理链微调T5,并使用外部计算器解决答案,可以显著提高各种数据集上的任务性能。Ho等(2023年)生成和筛选多条推理路径以丰富多样性。
许多努力旨在通过使用未标注(或很少标注)数据和自一致性(Wang等,2023j)来减少人工成本。Hsieh等(2023年)使用提示从少量标注/未标注数据生成答案,然后生成理由,提示语言模型为给定答案提供推理。SCoTD(Li等,2023年)发现,从教师模型中为每个实例采样多条推理链对于提高学生模型的能力至关重要。SCOTT(Wang等,2023h)在生成教师模型的理由时使用对比解码(Li等,2022b;O’Brien和Lewis,2023年)。此外,为了解决快捷方式问题,它在训练学生模型时采用反事实推理目标。DialCoT(Han等,2023年)将推理步骤分解为多轮对话,并使用PPO算法选择正确路径。Jie等(2023年);Wang等(2023i)为数学问题添加了特殊标记。这种高层次信息提高了推理步骤的一致性。
上述研究采用了共享范式,通过具有更高推理能力的LLMs生成思维链,然后将这些思维链蒸馏到较小的模型中。通过增强较大模型的采样策略,例如利用多条采样路径、一致性或对比解码,蒸馏过程的有效性得以提高,这带来了生成推理链的多样性和准确性,最终有利于向较小模型的蒸馏过程。值得注意的是,语言模型在多维能力上存在复杂的权衡和平衡。Fu等(2023年b)强调,通过蒸馏增加任务特定的思维链能力可能会对模型解决广泛问题的性能产生不利影响。
6 未来方向
虽然思维链推理在许多任务中表现出了显著的性能,但仍有一些挑战需要进一步探索。在本节中,我们简要概述了未来研究的三个有前途的方向:多模态思维链推理(§6.1)、真实的思维链推理(§6.2)和思维链推理理论(§6.3)。
6.1 多模态思维链
从单一模态的文本到视觉-文本的多模态转换引入了更丰富的信息,同时也带来了更多的挑战。一些研究尝试通过微调多模态模型在多模态场景中生成高质量的思维链来探索思维链推理。Multimodal-CoT(Zhang等,2023年g)首先微调多模态模型生成思维链,然后在这些理由上进行推理以获得最终答案。然而,它受到推理过程线性限制的影响,并且在不同模态之间的交互方面存在困难。为了解决Multimodal-CoT遇到的挑战,Yao等(2023年d)提出了思维图(Graph-of-Thought,GoT),将思维过程建模为图。它将推理链解析为思维图,通过捕捉非顺序的信息交互,使思维过程的表示更加真实。这一措施通过图形结构打破了线性结构的限制,并进一步提高了性能。此外,Yao等(2023年a)提出了超图思维(Hypergraph-of-Thought,HoT),用超图取代思维图,使模型具有更好的高阶多跳推理和多模态比较判断能力。同时,一些工作采用了基于知识蒸馏的方法。T-SciQ(Wang等,2023年d)从LLM生成高质量的思维链理由作为微调信号,并引入了一种新颖的数据混合策略,以生成适用于不同问题的有效样本。
上述研究在小模型和微调场景中探索了多模态推理,这被视为多模态思维链推理领域的初步尝试。我们认为,结合上下文学习的视频多模态推理应该成为未来研究的重点。一方面,与图像相比,视频引入了额外的时间信息,具有内在的链条关系。通过思维链推理,可以自然地连接不同帧中的信息,显式建模时间关系,这非常适合视频多模态推理。另一方面,小模型在能力上有限,需要微调才能获得思维链能力。更糟糕的是,多模态推理链难以获取,这进一步加剧了挑战。相比之下,当前的视觉-语言基础模型(VLMs)(Alayrac等,2022年;Li等,2023年a;Wang等,2022年b;Huang等,2023年b;Peng等,2023年;Yu等,2021年b)具有强大的视觉-语言理解能力,已经能够在文本和图像交错的上下文中进行学习。它们为结合上下文学习的思维链推理提供了坚实基础。利用思维链进行视频推理仍然是一个未被充分探索的领域,只有少数研究涉及。CoMT(Hu等,2023年b)在视频推理中结合了快思维和慢思维,并引入了规划的树搜索策略,首次在视频多模态推理中应用了思维链。
尽管一些研究已经开始利用思维链推理解决多模态推理任务,但之前的工作仅关注于如何构建高质量的微调数据,仍有若干挑战需要解决:
- 如何统一视觉和语言特征以引出更好的多模态理解。
- 如何在不进行微调的情况下使用VLMs进行思维链推理。
- 如何将图像多模态推理适应到视频多模态推理。
6.2 真实度
大量研究表明,思维链推理可能导致幻觉现象,如事实错误和上下文不一致。考虑到语言模型本质上属于统计模型,并且由于数据噪声和知识遗忘等因素,幻觉现象是不可避免的。
一些工作专注于减轻事实错误。He等(2023年a)引入外部知识来评估推理链,并通过投票过滤掉包含事实错误的链条,但不进行纠正。Wang等(2023年b)采用了类似的方法,不同之处在于额外引入了反思机制以纠正低评分的推理。Zhao等(2023年a)通过一致性过滤掉低置信度的推理,并指导模型基于相关外部知识重新推理。虽然上述方法在知识密集型任务中表现良好,但在解决上下文不一致性挑战方面却有所不足。Zhang等(2023年d)探索了推理过程中幻觉滚雪球现象。其他一些研究旨在解决不一致性问题。Radhakrishnan等(2023年)观察到,模型在处理简单问题时更为真实。因此,通过问题分解来提高真实度。Faithful CoT(Lyu等,2023年)最初生成符号推理链,然后确定性地执行符号函数,以减轻推理不一致性。Lanham等(2023年)探讨了影响真实度的因素,提供了经验性视角。研究发现,不同任务的真实度不同,随着模型规模的增加,真实度下降。CoNLI(Lei等,2023年b)提出了一种后编辑策略以减少幻觉。SynTra(Jones等,2023年)在易引发幻觉的合成数据集上进行前缀调优,然后将此能力转移到实际任务中。
尽管在解决大型语言模型幻觉问题上做出了许多努力,这些工作仅在某种程度上缓解了问题。要完全提高大型语言模型的真实度还有很长的路要走。我们总结了未来的研究方向如下:
- 提高识别推理过程中的幻觉现象的能力。
- 提高外部知识检索和利用的准确性,以减少事实错误。
- 提高识别和纠正上下文不一致和逻辑错误的能力,这更具挑战性。
- 如何从根本上消除幻觉现象,例如通过特定的预训练方法。
6.3 思维链理论
尽管思维链推理表现出了令人印象深刻的能力,但仍然缺乏关于按照指令生成思维链的全面解释。
一些研究从经验角度入手,可作为实际指导。Madaan和Yazdanbakhsh(2022年)将提示分解为三个部分:符号、模式和文本,通过反事实提示探索思维链的影响。Wang等(2023年a)分析了示范选择的影响。他们发现,推理链的正确性影响很小,而与问题的相关性和正确的推理顺序很重要。Tang等(2023年)探索了语义的作用。研究发现,思维链推理在很大程度上依赖于预训练期间引入的语义知识,在符号推理方面表现不佳。
其他一些研究从理论上分析,探索潜在的原理和内部机制。Li等(2023年e)将思维链推理解构为一个多步骤组合函数。他们表明,思维链减少了上下文学习处理复杂问题的复杂性。Feng等(2023年)理论证明了一个固定大小的Transformer足以完成计算任务和动态规划任务,并支持思维链。Merrill和Sabharwal(2023年)观察到,思维链可以增强推理能力,随着中间推理步骤数量的增加,改进幅度也增加。Wu等(2023年)利用基于梯度的特征归因方法探索思维链对输出的影响。结果表明,思维链对问题中的扰动和变化表现出鲁棒性。此外,有一些观点认为,思维链能力源自预训练阶段的代码数据(Madaan等,2022年;Zhang等,2023年c),但目前没有系统的工作来证实这一观点。
当前对思维链理论的研究仍处于初步探索阶段。我们总结了未来的研究方向如下:
- 探索思维链能力的来源,以实现思维链推理的有针对性改进。
- 从理论上分析思维链相对于上下文学习的优势,并探索其能力边界。
7 讨论
7.1 思维链构建比较
现有方法构建思维链主要有三种方式:(1) 手动标注推理链。 (2) 模型自动生成推理链。 (3) 半自动生成,利用少量手动标注的推理链进行自动扩展。
我们观察到,手动构建方法(Wei等,2022b;Gao等,2023年)面临与上下文学习类似的挑战,即示范选择、指令格式化等(Dong等,2023年)。这导致其应用困难重重,并且阻碍了跨不同任务的转移能力。自动构建方法(Zhang等,2023年f;Chen等,2022年a;Xu等,2023年)缺乏高质量标注的指导,导致性能不足。得益于手动标注带来的信号,半自动方法(Shum等,2023年;Shao等,2023年)可以通过自引导和类似技术生成高质量的推理链,有效解决了以往方法面临的挑战。在取得优异性能的同时,还能轻松实现跨不同任务的转移。
7.2 验证/改进与规划的比较
规划方法与基于验证/改进的方法之间存在许多相似之处,因为两者都依赖于中间过程的反馈来调整和改进行为。区别在于规划方法包括决策过程,而基于验证/改进的方法仅解决中间错误,而不涉及更高层次的认知过程。
LLM的推理过程通常存在幻觉,导致事实和逻辑错误。基于验证和编辑的方法(Ling等,2023年;Zhao等,2023年a;Madaan等,2023年;Shinn等,2023年)验证推理过程的正确性并改进可能导致幻觉的推理步骤。通过验证和改进,大大减少了推理过程中的连锁错误和幻觉现象。
规划方法(Long,2023年;Yao等,2023年b,c;Liu等,2023年a;Shinn等,2023年)在推理中引入了决策过程。他们评估中间推理步骤以获取反馈,并基于反馈进行探索和回溯,以在全局层面上获得更优的解决方案。其专业化在于处理复杂问题,特别是在面对复杂的多跳推理和规划任务时,能够取得显著的性能。
7.3 弥补固有缺陷
LLM在推理方面存在许多固有的局限性,例如无法访问外部信息、算术错误和不一致的推理。这些问题可以通过将特定职责委托给专用模块或模型来巧妙地规避。
针对模型在访问外部信息方面的局限性,(Li等,2023年d;Wang等,2023年b;Lu等,2023年a;Schick等,2023年;Karpas等,2022年;Yoran等,2023年)利用知识库、搜索引擎和开放域问答系统等外部知识资源。一些工作引入了计算器来解决算术错误(Schick等,2023年;Karpas等,2022年;Parisi等,2022年b)。代码执行是确定性的,一些工作通过引入代码执行器提高推理过程的一致性(Gao等,2023年;Chen等,2022年a;Bi等,2023年;Imani等,2023年)。我们认为,将LLM用作中央规划和推理的代理,将特定子任务委托给专用子模型,是未来在复杂场景中应用大模型的潜在途径(Wang等,2023年e;Xi等,2023年)。
7.4 其他工作
在本章中,我们将列出其他代表早期尝试思维链推理或专为特定领域设计的工作。Katz等(2022年);Zhang等(2022年)提供了基准和资源。一些工作经验性地证明了思维链提示的有效性(Lampinen等,2022年;Ye和Durrett,2022年;Arora等,2023年),Shi等(2023年)探索了多语言思维链推理。其他工作专注于特定领域,如机器翻译(He等,2023年b)、情感分析(Fei等,2023年)、句子嵌入(Zhang等,2023年a)、摘要(Wang等,2023年k)、算术(Lee和Kim,2023年)和表格推理(Chen,2023年;Jin和Lu,2023年)等。此外,一些研究利用特定的预训练来增强某些能力,如数学推理(Lewkowycz等,2022年;Zhao等,2022年)。
8 结论
本文对现有的思维链推理研究进行了广泛的调查,提供了对该领域的全面回顾。我们介绍了广义思维链(X-of-Thought)的概念,并从多个角度审视了X-of-Thought推理的进展。此外,我们还探讨了X-of-Thought在前沿领域的应用。我们还强调了目前这一研究面临的挑战,并展望了未来的前景。据我们所知,这项调查是对思维链推理的首次系统性探索。我们的目标是为对思维链推理感兴趣的研究人员提供全面的概述,希望这项调查能促进该领域的进一步研究。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。