
大语言模型在知识增强复杂问题求解中的综述 原创 精华
摘要:问题求解一直是人类在众多领域取得进步的根本驱动力。随着人工智能的发展,大语言模型(LLMs)已成为能够解决跨多个领域复杂问题的强大工具。与传统计算系统不同,大语言模型将原始计算能力与近似人类推理能力相结合,使其能够生成解决方案、进行推理,甚至利用外部计算工具。然而,将大语言模型应用于实际问题求解面临重大挑战,包括多步推理、领域知识整合和结果验证。本综述探讨了大语言模型在复杂问题求解中的能力和局限性,研究了思维链(CoT)推理、知识增强,以及各种基于大语言模型和工具的验证技术。此外,我们还强调了在软件工程、数学推理与证明、数据分析与建模和科学研究等不同领域中特定领域的挑战。本文进一步从多步推理、领域知识整合和结果验证的角度,讨论了当前大语言模型解决方案的基本局限性,以及基于大语言模型的复杂问题求解的未来发展方向。
1 引言
人类文明的历史是由解决问题的能力塑造的,从古代建造住所到解开宇宙的奥秘。例如,古代天文学家计算地球的大小,而现代科学家使用计算模型预测天气。随着技术的进步,人类逐渐从单纯依靠个人或集体智慧,转向利用计算机等强大工具来应对日益复杂的挑战。这种转变标志着问题求解的范式转变,从纯粹以人类为中心的方法,演变为人类创造力与计算能力的协同作用。
如今,基于大语言模型的人工智能系统代表了一项突破性进展。与擅长精确计算的传统计算机不同,大语言模型模拟人类推理的各个方面,如生成创造性解决方案和进行上下文推理。这使得大语言模型成为将计算能力与近似人类思维相结合的工具,能够解决那些对人类来说具有挑战性的复杂问题。与人类解决问题类似,大语言模型可以直接解决问题并生成最终结果;大语言模型还可以通过编写和执行代码来利用计算机解决问题并获得结果。
复杂问题求解的范围涵盖广泛的领域,几乎涉及人类社会的各个方面(图 1)。例如,设计强大的软件系统架构需要平衡可扩展性、可靠性和用户需求,而证明数学定理则需要严谨的逻辑推理和抽象能力。在数据科学领域,构建准确的模型来解释大量数据集对于明智的决策至关重要。同样,药物发现需要探索复杂的分子相互作用以确定有效的治疗方法,而构建物理模型则使我们能够模拟和理解自然现象。这些例子凸显了人类努力解决的复杂问题的多样性,每个问题都需要领域专业知识、推理和创造力的结合。
图 1. 一些复杂问题求解的场景
解决这些现实世界中的复杂问题需要利用领域知识或经验,并经过多个推理步骤才能得出最终解决方案。在研究领域,数学推理通常被视为复杂问题求解的一种代表性形式,目前的研究主要集中在具有明确最终答案的数学推理问题上。相比之下,数学定理证明任务 —— 在高等教育和研究中更具代表性 —— 却常常被忽视,因为它们通常没有单一的最终答案可供验证。在实践中,许多现实世界的复杂问题比数学推理任务更具挑战性。首先,这些问题本质上难以验证。例如,在数据科学中,许多建模技术可以应用于同一数据集,但它们的性能可能差异很大。此外,模型的有效性高度依赖于上下文,因问题和数据集而异。这种可变性使得为任何给定的建模任务确定最佳解决方案变得困难。其次,解决这类现实世界问题需要大量的领域专业知识。再以数据建模为例,人们不仅必须了解数据的细微差别,还必须精通各种建模技术才能获得良好的性能。
解决现实世界的复杂问题需要三个关键要素:多步推理、领域知识和结果验证。当大语言模型应用于现实世界问题时,这个问题求解过程会面临多重挑战。
•多步推理:解决一个复杂问题需要采取多个步骤才能达到最终结果。搜索空间的大小在很大程度上取决于解决复杂问题所需的步骤数,并且随着推理步骤数的增加,搜索空间可能呈指数增长。这使得确定通向最终结果的正确路径变得具有挑战性。此外,搜索过程中出现的任何错误都可能传播并导致错误的结果。
•领域知识:知识在引导问题解决者在搜索空间中前进方面起着至关重要的作用,帮助确定下一步或识别何时找到了解决方案。特定领域的应用,如机器学习任务和数学定理证明任务,通常需要利用长尾领域知识,而众所周知,大语言模型无法很好地掌握长尾知识。这就要求基于大语言模型的系统格外注意掌握领域知识,并可靠地检索和应用所需知识来解决问题。
•结果验证:必须仔细评估每一步,以判断它是否有助于得出正确的解决方案,或者整个解决方案是否能够解决给定的问题。在许多缺乏标准结果或预定义解决程序的应用中,这种评估可能特别具有挑战性。对于目标不明确的开放式问题,例如在科学研究和数据挖掘中发现的问题,难度甚至更大。
大语言模型的最新发展展示了它们在一些目标明确且结果易于验证的复杂问题上的强大推理能力,这使得它们非常适合数学推理和竞技编程挑战等任务。思维链推理是解决多步推理的主要技术。思维链推理中存在一种推理缩放定律,即随着思维链路径数量的增加,找到正确解决方案的可能性会显著提高,并且对于许多具有挑战性的问题,通常只要有足够数量的思维链路径,就有可能生成正确的解决方案。由于目标应用,如数学推理和竞技编程,很容易验证,许多研究工作正在使用强化学习来训练大语言模型,以提高它们在这些应用中的推理能力。OpenAI 发布的 GPT-o1 和 DeepSeek-R1 展示了这种思维链推理方法的潜力。
虽然思维链推理是解决复杂问题的重要技术,但有必要采用一种智能体方法,使大语言模型能够访问外部知识库并使用验证工具,以进一步提高大语言模型解决现实世界复杂问题的能力。先前的研究表明,大语言模型在保留长尾知识方面存在困难,而特定领域的知识通常属于这一类别。对于科学发现、数学定理证明和数据科学等知识密集型任务,外部知识整合至关重要,在这些任务中,领域专业知识对于准确和明智的决策至关重要。知识可以通过 RAG 和 GraphRAG 等技术从文档中检索,或者通过利用从文档集合构建的知识图谱来获取。此外,智能体可以与人类互动,直接获取领域知识。在训练和推理过程中,结果验证对于确保大语言模型的有效解决方案也至关重要。专注于推理的大语言模型通常使用合成数据进行训练,这就需要一个验证器来选择高质量的数据用于模型训练。在推理过程中,推理缩放定律强调了验证器在多个候选解决方案中识别正确解决方案的必要性。为此,可以采用各种类型的验证器,包括基于大语言模型评判的方法、符号推理工具,甚至实验验证系统。
尽管大语言模型在复杂问题求解方面取得了显著进展,但在将大语言模型应用于实际应用时,每个领域都有其独特的挑战。以图 1 中的一些领域为例。在软件工程中,大语言模型的任务是在大型代码库中生成或修改代码,以修复错误和实现新功能。这不仅要求它们对代码生成进行推理,还要求它们全面了解整个代码库和项目需求。此外,软件开发不仅要求代码正确,还要求在计算效率和内存使用方面进行优化,这给评估过程增加了额外的复杂性。数学包含两种主要类型的任务:计算和证明。虽然基础算术和计算任务有大量数据可用,但在高等数学中,尤其是在高等教育和研究中,数据稀缺仍然是一个重大挑战。为了解决这一限制,必须更有效地利用领域知识进行数据合成,以减轻数据稀缺的影响,并利用现有的数学知识,如定理,来改进数学证明。此外,数学定理证明通常缺乏有效的方法来验证证明解决方案,这使得训练大语言模型生成严格正确的数学推理解决方案变得困难。数据科学涉及处理大量数据集,但任务描述往往缺乏关于输入数据分布的足够细节,这使得大语言模型难以生成最合适的解决方案来很好地对大型数据集进行建模。这也使评估大语言模型生成的输出变得复杂,需要进行多层次评估。此外,利用全面的数据建模技术知识库对于开发更有效的方法来解决复杂的数据科学问题至关重要。科学研究通常涉及开放式问题,这使得我们无法直接训练大语言模型来解决科学问题。一种潜在的解决方案是让人类参与这个过程(人类 - 大语言模型协作),允许人类和大语言模型之间进行迭代协作,以探索现有的科学文献和人类知识,产生新的想法,并实现整个研究流程的自动化。这些挑战凸显了对复杂问题求解进行进一步研究的必要性,这需要超越当前的推理大语言模型。
本文对当前大语言模型在解决复杂问题方面的进展进行了全面概述,并超越了推理大语言模型的文献范围。我们的目标是回顾为大语言模型开发的关键技术,以及这些方法如何应用于应对不同领域的挑战。本文分为四个部分来讨论当前大语言模型的研究:
•复杂问题求解的定义:我们首先从认知科学和计算理论的角度正式定义复杂问题求解(第 2 节)。
•方法:我们研究大语言模型研究中解决复杂问题的关键方法,包括多步推理、知识增强和结果验证(第 3 节)。
•领域:我们探索在软件工程、数据科学、数学和科学研究这四个领域中的复杂问题求解,突出每个领域的独特挑战以及为解决这些挑战而开发的解决方案(第 4 节)。
•当前的局限性和未来方向:我们讨论当前研究的局限性,并提出未来研究的潜在方向(第 5 节)。
图 2. 人类和人工智能解决问题的两种范式
2 复杂问题求解的定义
我们可以从认知科学和计算理论两个角度定义复杂问题求解。认知科学研究人类如何利用其内在能力解决问题。相比之下,计算理论探索如何利用机器解决问题,强调设计算法以实现复杂计算的自动化。当考虑大语言模型在解决复杂问题中的作用时,出现了两种潜在的范式:(1)直接问题求解:大语言模型自主生成类似于人类专家的解决方案;(2)利用计算系统解决复杂问题:大语言模型提取并定义问题的计算组件,利用传统计算机执行密集计算,同时专注于设计解决方案和协调流程。基于这些范式,本节将更深入地探讨在认知科学和计算理论框架中如何定义复杂问题求解。
2.1 定义
定义 1(问题):一个问题\Pi(X, Y, P)由以下两部分描述:(1)其参数x的描述;(2)一个陈述(即谓词逻辑)P(Y; X),它刻画了解决方案必须满足的属性。形式上,目标集定义为G = \{Y \in Y | P(Y; X)\},其中y是最终结果的空间,P是一个谓词逻辑,意味着当X = X时,P(Y; X)表示最终结果Y应满足的属性。问题的一个实例\pi是通过为所有问题参数指定特定值获得的,即\pi := \Pi(X = X)。
一个问题可以看作是一项任务,即从一组可能的候选解决方案中找到一个解决方案。谓词P(Y; X)规定了一个答案被认为有效的条件。在不同的问题中,谓词P(Y; X)可能是明确定义的,也可能不是。例如,在最短路径问题中,答案空间y由所有可能的路径组成,谓词P(Y; X)是明确定义的,规定最终结果Y(一条路径)必须满足总权重最小的属性。相比之下,在数据挖掘任务中,目标是发现数据中有洞察力的模式。然而,什么构成 “有洞察力的” 模式并没有明确定义,这使得谓词P(Y; X)更具主观性和上下文依赖性。
基于问题的定义,我们现在可以正式将问题求解定义为确定一系列从初始状态到目标状态的转换过程。
定义 2(问题求解):问题求解是为问题实例\pi找到一个解决方案轨迹T(\pi) \in T_{feasible } \subseteq T的过程,其中T_{feasible }是所有可能的解决方案轨迹的集合,正式定义为:
\mathcal{T}_{feasible } := \{X \to O_1 \to ... \to O_{\kappa} \to Y | X \in X, Y \in \mathcal{G}, \kappa \in \mathbb{N}^{+}, \forall_{1 \leq i \leq \kappa} O_{i} \in O\}
T是所有可能轨迹的集合:
\mathcal{T} := \{X \to O_1 \to ... \to O_{\kappa} \to Y | X \in X, Y \in \mathcal{Y}, \kappa \in \mathbb{N}^{+}, O_{i} \in O\}
O是问题求解过程中所有可能的中间状态的集合。
这个定义强调了问题求解的迭代性和状态依赖性,其中中间状态O_i捕捉了导致最终结果Y的不断演变的理解或部分解决方案。然而,驱动状态转换的机制和可行解决方案轨迹的约束因问题解决者的性质而异。
从以人类为中心的角度来看,问题求解本质上受到个人认知能力的限制。从一个状态到另一个状态的转换不仅受逻辑推理的影响,还受领域知识、先前经验和实时反馈的影响。因此,不同的人可能会根据他们可用的认知资源在T_{feasible }中遵循不同的路径。正式定义如下:
定义 3(以人类为中心的问题求解):以人类为中心的问题求解是具有认知能力c(包括领域知识、逻辑推理、利用实时反馈和其他认知资源)的人,为问题实例\pi找到解决方案轨迹T(\pi)的过程。从中间状态O_i到下一个状态O_{i + 1}的转换由认知引导的转换函数控制:
其中\mathcal{P}(O)是O的幂集,表示所有可能的下一个状态,转换函数\Gamma(O_i, C)根据问题解决者的认知能力确定可行的下一个状态集。
相反,从计算机辅助的角度来看,问题求解是从计算理论的角度进行的。在这里,状态转换由形式算法而不是认知能力控制。
定义 4(计算机辅助问题求解):问题求解是设计算法A来解决问题\Pi(X, Y, P)的过程。算法是计算机可执行的有限指令序列,用于产生解决方案。形式上,算法被定义为一个五元组:
其中X是输入空间,描述问题的所有可能参数;Y是输出空间,代表所有潜在的解决方案;O是状态空间,包含算法执行过程中的所有可能状态;\delta: X × O \to O是状态转换函数,指定算法如何根据输入从一个状态转换到下一个状态;\sigma_0 \in O是初始状态,代表算法的起始条件。如果对于问题\Pi的任何实例\pi,算法都能保证产生一个满足谓词P(Y; X)的解决方案Y \in G,则称该算法解决了问题\Pi。
通过比较这两个定义,我们观察到它们有一个基本的相似之处:都专注于找到解决问题的步骤。然而,它们的重点有所不同。以人类为中心的问题求解主要关注解决特定问题实例\pi的过程,而计算机辅助问题求解则强调设计相对通用的算法来解决一类问题\Pi。
2.2 示例
让我们以机器学习任务为例(图 3)。开发一个高质量的机器学习模型可以被构建为一个问题求解过程,在这个过程中,我们寻求一个可行的解决方案轨迹T(\pi) \in T_{feasible }。这个过程中的每一步都对应于一个状态转换 (O_i \to O_{i + 1}),由推理、领域知识和迭代评估驱动。最初,我们通过确定任务并将其构建为机器学习公式来定义问题。然后,我们通过分析数据、应用预处理技术和进行特征工程来过渡到中间状态。一旦数据处理完毕,我们选择合适的建模技术并开发模型进行训练。为了优化这些转换,领域知识起着至关重要的作用,它指导着合适模型和训练策略的选择。知识可能来自历史方法、理论研究或专家直觉,塑造了可行的状态空间 T_{feasible }。开发有效的机器学习模型需要对每种方法进行多轮评估,包括人工评估和实验评估。由于机器学习模型依赖于从训练数据中学习数据分布来进行预测,仅通过检查来评估解决方案的质量是具有挑战性的。相反,通过人工评估和实验测试进行的实证验证,在收敛到最优解决方案 Y 之前确定模型的有效性。
图 3. 案例研究:机器学习领域的示例
3 方法论
图 4 展示了基于大语言模型的复杂问题求解技术。当前的思维链大语言模型通过数据合成进行训练。这个过程始于生成思维链数据,接着使用验证器选择正确的思维链样本用于模型训练。在推理过程中,大语言模型生成多个思维链解决方案,然后使用验证器为给定任务识别正确的解决方案。数据合成有多种方法。一种方法是让大语言模型自主生成思维链数据,这要求基础模型训练良好。对于训练数据有限的应用,可以对现有数据集进行知识挖掘来合成数据,同时也可以融入人类专业知识。此外,挖掘出的知识可以在推理过程中注入大语言模型,而不仅仅用于训练。某些应用产生的结果难以验证,比如机器学习任务。在这种情况下,可以采用多种验证方法。除了使用基于大语言模型的验证器,还可以进行符号验证和实验评估。此外,人类专家也可以参与验证过程。
图 4. 复杂问题求解的循环
3.1 多步推理
大语言模型的思维链推理已被证明对解决复杂问题是有效的。这一研究方向始于 [136],该研究表明,通过提供一些推理路径示例的思维链提示,可以增强大语言模型的推理能力。[64] 随后证明,通过简单地使用 “让我们一步一步思考” 这样的提示,鼓励大语言模型生成中间推理步骤,思维链推理可以在零样本设置中提高性能。[132] 表明,对多个推理路径进行采样并使用多数投票法,可以进一步提高大语言模型在推理任务中的性能。[155] 引入了思维树(ToT),它允许大语言模型在思维上探索多个推理路径,以提高大语言模型的推理能力。
我们可以利用图 4 所示的架构来改进思维链推理,以解决复杂问题。当提出一个问题时,由大语言模型驱动的生成器会生成多个推理路径。然后,验证器评估这些路径的准确性。如果一些推理路径被验证为正确,它们将被用于形成问题的答案。然而,如果没有一条路径被认为是正确的,就会使用校正器,通过修改不正确的路径并结合验证器提供的额外反馈来创建新的推理路径。在这种方法中,提高任何给定问题获得正确解决方案的可能性,需要改进两个关键指标:
•覆盖率:至少可以使用生成的一条推理路径解决的问题的百分比。
•精度:从所有生成的路径中选择正确推理路径的概率。
为了提高覆盖率,我们需要对生成器和校正器进行微调,以增加产生有效推理路径的机会。为了提高精度,必须对验证器进行微调,以更准确地识别正确路径。
•生成器:为了优化生成器,我们不能仅仅依赖人类生成的数据,而应该合成带有推理路径的数据。[159] 提出了一种迭代过程,生成多个推理路径,选择正确的路径,并使用它们进一步微调大语言模型,逐步提高其产生准确推理的能力。此外,他们引入了一种 “合理化” 技术,利用问题的答案作为提示,来增强推理路径的生成。[113] 采用了类似的迭代方法,生成推理路径来微调大语言模型,并使用微调后的大语言模型生成更多推理路径。主要的区别在于,这项工作通过温度采样生成多个路径,并使用二元奖励函数对它们进行评分,而 [159] 使用贪婪解码来生成推理路径。两项研究都表明,大语言模型会很快对生成的数据产生过拟合。[7] 表明,使用较弱的大语言模型生成高质量的合成数据也是可行的,并且在由较弱大语言模型生成的数据上进行微调的模型,其性能通常优于在由较强大语言模型生成的数据上训练的模型。
•自校正:我们可以利用前一次尝试中不正确的推理路径和验证器的反馈,来增加下一次迭代中生成正确路径的概率。这个过程被视为自校正。[52] 表明,现有的大语言模型,如 GPT-4 和 Llama-2,在用于自校正时,无法增加生成正确路径的概率。与标准提示方法相比,它们往往会降低获得正确解决方案的概率。这表明我们需要一个经过专门微调的大语言模型用于自校正。Pair-SFT [139] 训练了一个独立的校正器模型,来优化生成器模型的输出。他们创建了一个由响应对((y, y'),其中y是对问题的初始响应,y'是校正后的版本)组成的数据集,来训练校正器。SCoRe [65] 采用强化学习方法,训练一个单一的大语言模型,使其既能生成初始响应,又能进行自校正。他们发现,以前的方法由于分布转移或基础模型偏差的放大而无效。通过使用单个大语言模型进行响应生成和校正,SCoRe 避免了单独的生成器和校正器模型之间出现的分布不匹配问题。
•推理缩放定律:生成许多推理路径并选择正确的路径成本很高。问题越难,我们可能需要采样的推理路径就越多。这里一个关键的研究问题是,如何明智地使用计算资源,为任何给定的问题找到正确的路径。[10] 阐述了推理时计算的缩放定律。他们观察到,覆盖率随着从大语言模型生成的样本数量几乎呈对数线性增长,如果生成许多推理路径,覆盖率可能会达到 100%。他们进一步发现,在解决一些较简单的问题时,使用较弱的模型生成更多样本可能比使用更大的大语言模型更具成本效益;然而,在解决更困难的问题时,更强的大语言模型更受青睐。[114] 从多个方面研究了在生成正确推理路径时,缩放推理时计算的 “计算最优” 策略。当使用奖励模型搜索良好的推理路径时,他们评估了不同的搜索策略,包括最佳 N 搜索、束搜索和前瞻搜索,并得出结论,束搜索对于更难的问题和较低的计算预算更合适,而最佳 N 搜索对于较容易的问题和较高的预算更有效。另一个方面是更新生成器模型的提议分布,以增加生成良好推理路径的概率。一种选择是并行生成多个推理路径,另一种选择是使用经过微调的大语言模型迭代地修改自己的答案,这会导致顺序测试时推理。他们表明,较容易的问题受益于顺序推理,而较难的问题则需要一定比例的顺序与并行推理。计算资源也可以分配给预训练。为了解决难题,应该将一些计算资源用于预训练,而对于较容易的问题,我们只需要将计算资源用于推理。
3.2 知识
解决复杂问题需要有效地利用知识。一方面,许多复杂问题求解任务本质上是特定领域的,如果没有专业知识,有效地解决这些问题就会成为一个挑战。另一方面,处理这些任务的过程涉及多方面的程序,而现有的大语言模型往往缺乏所需的可靠性和稳健性。因此,获取和增强这类专业知识,是有效解决复杂问题的关键问题。
为了获取这类知识,最简单和最直接的方法是特定领域的预训练 [115]。虽然大语言模型在训练过程中获取了世界知识,但研究表明,它们在记忆和将这些知识应用于实际任务(特别是长尾信息)方面并不可靠 [121],并且多项研究 [38, 106] 表明,在预训练后,它们无法通过监督微调(SFT)获取新的事实性知识。与这些方法不同,基于提示的增强技术,如 RAG [36]、GraphRAG [30, 48] 和 KAG [78],可以将领域知识直接嵌入到特定任务的上下文中。在此基础上,许多研究通过信息提取 [141, 167, 168]、构建特定领域的知识图谱 [24, 169, 181] 或过程提取 [158] 等方法来探索获取这类知识,同时也可以使用大语言模型直接生成特定任务的工作流程 [104, 165],并通过人类交互反馈对其进行优化 [9]。以下部分将根据所处理知识的类型,介绍各种相关研究。
•领域知识:领域知识旨在为复杂任务提供先验信息,提供全面的介绍、详细的描述和相关背景 [18, 42, 102]。[80] 提出了一种计算框架,通过集成目标导向的动态知识生成机制,增强智能体的问题解决能力。[126] 引入了知识驱动的思维链(KD-CoT),这是一个利用外部知识来验证和完善推理轨迹的框架,从而减少幻觉并降低错误传播。[73] 引入了知识链(CoK),这是一个创新的框架,通过动态集成来自不同来源的基础信息来增强大语言模型。[101] 提出了 Physics Reasoner,这是一个知识增强框架,利用大语言模型来解决物理问题。
•过程知识:过程知识是指为解决复杂问题而设计的工作流程或认知模式,通常用于规范和指导大型模型的推理过程。像 MoT [72] 这样的技术,利用合成和提取的高质量思维过程作为外部记忆,为模型提供卓越的问题解决示例。此外,BoT [150] 范式引入了元缓冲区,存储跨任务的认知模板,这些模板包含通用的推理模式和知识结构,可以在各种特定问题中重复使用和实例化,从而实现高效推理。此外,像 Expel [177] 这样的方法,还包括通过环境交互收集经验池,模型可以从类似的经验中学习,对比成功和不成功的轨迹,以获得新的见解并提高任务推理能力。[182] 引入了 KnowAgent,这是一种通过集成显式动作知识来提升大语言模型规划能力的方法。[135, 165] 的其他研究使用工作流程,有选择地引导智能体解决复杂问题。
•人机交互:即使有外部知识库,大语言模型在处理细微或特定领域的信息时仍然可能遇到困难,它们往往缺乏人类专家所拥有的深入上下文理解。为了解决这个问题,大语言模型可以与人类合作,通过让人类提供关键见解来弥合这一差距,确保大语言模型专注于相关信息,并根据专业知识完善其解释。例如,在法律或医学研究等任务中,人类可以引导大语言模型优先考虑某些模型可能忽略的参考文献或细微差别 [4, 55, 117, 140]。为了实现这种人机大语言模型协作,我们需要设计直观、用户友好的界面,促进人类和大语言模型之间的有效沟通和交互 [26, 174]。这些界面应该能够实现有效的双向通信,用户可以提供反馈、澄清模糊的输入,并实时跟踪大语言模型的推理过程。一个设计良好的界面可以促进信任、增强协作,并确保大语言模型能够被专家和非专家有效地使用。
3.3 评估
在处理复杂问题时,评估解决方案的有效性,对于提高基于大语言模型系统的可靠性和确定更好的方法至关重要。先前的研究 [97, 110] 表明,大语言模型在数学推理中很容易被无关信息干扰。这表明大语言模型可能并没有真正掌握数学概念,而是依赖模式匹配来生成响应。此外,[93] 强调,大语言模型在罕见任务上的表现比在更常见的任务上更差,即使这些任务具有相同的复杂程度。而且,大语言模型对其训练数据(互联网文本)中输入和输出的概率分布很敏感,即使是确定性任务也是如此。当大语言模型应用于在线上不太常见的特定领域问题时,这些挑战会更加明显。为了全面评估解决方案,可能需要考虑多个评估标准,如正确性和效率。确保解决方案满足实际需求,需要开发和集成多种评估技术,以有效地分析大语言模型生成的解决方案。
为了改进思维链推理,我们需要一个验证器模型来选择正确的推理路径。[20] 在解决 GSM8K 中的数学问题时首次证明了这一点。这项工作表明,训练一个验证器模型,在多个解决方案中选择正确的解决方案,与仅仅微调大语言模型相比,可以显著提高测试解决率。因此,这里的一个关键问题是,如何训练一个可靠的验证器模型来确定正确的推理路径。[81] 展示了使用过程监督来训练过程奖励模型(PRM)的有效性。这种方法首先为一个问题生成多个推理路径,然后让人类标注员为推理路径的每个步骤标注标签。这种方法需要大量的人力资源来准备训练数据。[81] 采用主动学习来减少人类标注的工作量。[127] 提出了一种在训练 PRM 时无需人类标注的方法。为了评估推理路径中中间步骤的正确性,他们使用一个经过微调的大语言模型,从给定的步骤生成多个后续推理路径。然后,该步骤的正确性得分由成功通向正确答案的路径数量决定。[166] 训练了一个生成模型作为验证器,并表明生成模型的性能优于判别式验证器。此外,他们还表明,训练一个单一的大语言模型同时用于生成和验证,其性能优于分别使用大语言模型进行生成和验证。
除了基于大语言模型的验证,还可以使用工具来验证模型输出,减少幻觉并提高准确性。这些验证方法大致可以分为符号验证和实验验证。
•符号验证:符号验证使用形式化方法来确保大语言模型输出的正确性。这包括生成可执行代码,并通过编译验证其语法和语义 [14, 34]。此外,还会将输出与知识库或知识图谱进行比较,以验证事实准确性。这些方法对于需要逻辑一致性的任务特别有效,如数学证明或特定领域的事实验证 [19]。PAL [34] 使用符号推理来解释自然语言问题,并生成程序作为中间步骤。这些程序在运行时环境(如 Python 解释器)中进行验证,确保生成代码的逻辑和结构有效且可执行。在数学推理中,像 [162] 中的工具,为数值计算、方程求解和表达式转换提供了专门的接口。这些接口允许模型验证和纠正每个步骤,确保推理过程的正确性,就像符号定理证明一样。Factool [19] 提供了一个灵活的、与领域无关的框架,用于识别事实错误。它通过使用多个验证工具,包括搜索引擎、学术数据库和代码解释器,来增强跨领域的事实验证。
•实验验证:相比之下,实验验证通过实际测试和实证实验来验证模型 [12, 40, 76]。当形式验证不切实际,或者目标是性能优化时,这种方法很有用。模型在实际环境或模拟中进行测试,性能通过与基准或竞争解决方案进行比较来衡量。在自动化数据科学中,像 AutoKaggle 这样的框架,通过迭代进行实际测试、模型调整和比较分析,自主参与 Kaggle 竞赛,优化数据分析管道并取得顶级性能,就是实验验证的例证。Grosnit 等人 [40] 精心安排结构化推理,以自动分析和优化解决方案,而 Li 等人 [76] 使用多智能体框架来生成、测试和改进模型。
对于关键应用,在高风险或不可预测的环境中应用大语言模型时,确保安全性和稳健性至关重要,因为错误的输出可能会导致严重后果。大语言模型虽然强大,但由于幻觉、错误解释或意外输入,可能会生成不可靠或不安全的响应。在这种情况下,我们应该引入人工监督来验证和纠正输出,确保更安全、更可靠的决策。例如,在医学诊断中,人类专家可以验证人工智能生成的治疗建议,以避免误诊或不安全的处方。
4 领域
本文研究了四个现实世界应用领域,在这些领域中,大语言模型可用于解决复杂问题:软件工程、数学、数据科学和科学研究。我们将从多步推理、知识整合和结果验证的角度,讨论这些应用中的挑战。
4.1 软件工程
这涉及让大语言模型在最少人工干预的情况下,执行复杂的软件工程任务。该领域的核心任务通常分为两个主要方面:代码生成和代码理解。代码生成包括程序合成 [58, 69, 71, 124, 173]、代码翻译 [16, 100, 145]、自动程序修复 [53, 59, 107] 和代码优化 [28, 144],在这些任务中,大语言模型必须生成功能正确且高效的代码,并满足各种规范。另一方面,代码理解侧重于分析和解释现有代码,涉及源代码摘要 [70, 133, 163]、代码审查 [154] 和代码搜索 [27, 122] 等任务。尽管这些任务的目标不同,但它们都要求大语言模型深入理解代码库的语法、语义和结构,并在多个抽象层次上进行推理。
使用大语言模型解决复杂的软件工程任务存在一些独特的挑战。首先,这些任务需要多步推理,因为软件开发通常涉及分解问题、在文件或函数之间保持上下文一致性,以及迭代优化代码。其次,知识整合至关重要 —— 大语言模型必须具备基础编程知识(如语法、算法)、特定领域的实践(如工具使用、设计模式)以及大型代码库的知识。第三,结果验证并非易事:生成语法正确的代码是不够的,它还必须能够编译、正确执行并满足性能目标。与自然语言任务不同,软件的正确性可以进行形式化测试,这为有效利用执行反馈既带来了机遇也带来了挑战。
为应对这些挑战,人们提出了多种模型和框架。在程序合成方面,诸如 Code Evol-Instruct [90] 和 OSS-INSTRUCT [137] 等方法通过合成数据生成和微调来增强大语言模型的能力,而 GraphCoder [84] 和 GALLa [176] 等方法则注入结构表示(如代码图)以改进语法和语义理解。基于反馈的机制,如 Self-Debugging [15]、LDB [180] 和 RLTF [82],利用运行时输出、编译器错误或测试用例来迭代地指导模型优化。在代码库理解方面,像 StarCoder2、RepoCoder [164]、CoCoMIC [25]、DeepSeek-Coder [43]、SWE-GPT [91] 等工具利用代码库级别的信息、依赖图和检索增强生成(RAG),帮助模型在庞大且相互依赖的代码库中导航。对于代码优化,PIE-Problem [157] 和 SBLLM [35] 等框架引入多程序员解决方案集和进化搜索策略,帮助大语言模型从各种优化技术中学习,并根据执行指标优化代码。
未来软件工程自动化的工作可能会集中在三个方向。第一,构建更强的具有推理意识的模型,这些模型能够通过中间抽象(如伪代码或符号计划)生成和修改代码。第二,增强长上下文和记忆机制,以处理复杂的代码库和跨文件推理。第三,纳入闭环反馈系统,将自动测试生成、运行时分析和形式验证集成到代码生成过程中。通过结合这些方法,我们可以期待基于大语言模型的智能体从基本的代码助手演变为有能力的自主软件工程师。
4.2 数学
数学推理已成为评估大语言模型能力的关键基准,因为它不仅需要自然语言理解,还需要精确的逻辑推理、符号操作和深厚的领域知识 [108, 120]。该领域的主要任务包括算术计算问题 [45, 56, 83, 151]、数学应用题(MWPs)[37, 49, 63, 116] 和自动定理证明(ATP)[2, 152]。这些任务测试计算准确性、演绎推理、将现实世界场景数学建模的能力以及形式数学知识的应用等核心能力。它们共同构成了一个严格的框架,用于评估大语言模型是否能够超越表面的语言生成,进行结构化、基于规则的问题解决。
然而,解决数学问题存在一些使其有别于其他复杂领域的独特挑战。一个主要挑战是多步推理,因为许多数学任务需要顺序且逻辑相关的操作,其中任何一个错误步骤都可能导致整个解决方案出错。另一个关键挑战是知识整合 —— 大语言模型不仅必须理解抽象原理(如归纳法),还必须理解特定领域的概念和定理,并识别何时以及如何应用它们,尤其是在研究生阶段和研究中。这需要检索和处理对大语言模型来说通常属于长尾知识的特定领域知识。第三个挑战是结果验证,特别是在定理证明等场景中,结果的正确性只能通过人工评估或严格的形式检查来确认。最近的研究 [92] 表明,当前最先进的大语言模型在数学竞赛中能生成正确的最终结果,但解决方案却是错误的。这些挑战不仅要求流畅的文本生成,还要求模型进行精确推理、整合外部工具或知识库,并验证多步解决方案的正确性。
为应对这些挑战,近期的研究引入了一系列专门的策略和系统。在计算能力方面,像 MathGLM [153] 这样的模型通过课程学习在逐渐复杂的数学问题上进行预训练,即使与更大的通用模型相比,也能实现卓越的准确性。基于提示的方法,如 MathPrompter [56],通过生成和交叉验证多个解决方案路径来提高算术运算的准确性。在推理任务中,与 Prolog 的符号集成或像 Lean 这样的证明助手(如 LeanDojo [148]、AlphaProof [22])有助于弥合非正式推理和形式逻辑之间的差距,以验证大语言模型生成的数学推理。在建模和抽象方面,针对数学应用题的符号求解器和自动形式化基准(如 LeanEuclid)[98] 等工作,展示了大语言模型如何将现实世界问题或几何推理映射到形式数学表示中。此外,检索增强系统和基于知识的工具包,如 DOCMATH-EVAL [179] 和 LeanDojo [148] 表明,整合结构化数学知识可以显著提高在需要先验定理或特定领域推理策略的任务中的性能。
展望未来,基于大语言模型的数学推理的未来工作可能会集中在深化模型在外部反馈和过程监督下进行形式推理的能力。开发将大语言模型与定理证明器、符号执行引擎甚至形式验证编译器相结合的混合框架,可以进一步提高结果的正确性和逻辑的可靠性。此外,用结构化数学知识库丰富大语言模型,提高它们检索相关先验知识的能力,并在细粒度的证明步骤上进行训练,可以增强它们进行高级数学推理的能力。最终,实现可泛化、可验证和具有领域感知的数学推理,将是推动大语言模型更接近人类数学理解水平的关键。
4.3 数据科学
这是一个对大量数据进行数据分析和数据建模的领域 [172]。数据科学的主要任务围绕一个复杂的多阶段流程展开,包括任务理解、数据探索与分析、特征工程、模型选择、模型训练和评估。这些阶段相互关联,不仅需要技术执行,还需要根据输入数据进行仔细推理和调整。与问题定义明确且固定的领域不同,数据科学需要不断调整以探索输入数据。
该领域的独特挑战源于其动态性和数据依赖性。首先,多步推理至关重要,因为早期阶段(如特征提取)做出的决策会显著影响后期阶段(如模型性能)。其次,有效的解决方案通常需要特定领域的知识,而通用大语言模型不容易捕捉到这些知识;整合此类知识对于处理现实世界的复杂性至关重要。第三,验证解决方案的质量特别困难,因为性能在很大程度上取决于输入数据,而不仅仅是问题描述。这使得评估建模策略具有挑战性。
当前的研究工作通过开发基于智能体的系统,在应对这些挑战方面取得了显著进展。Data Interpreter [50] 引入了一种基于图的智能体,该智能体对流程阶段之间的依赖关系进行建模,并相应地自动化代码生成和优化。AutoKaggle [76] 采用多智能体框架,配备诸如规划器、开发者和评审者等专门智能体,为表格数据任务提供端到端的解决方案,包括迭代调试和测试。Agent K [40] 通过学习记忆机制优化性能,利用强化信号为未来任务保留有用的策略。同时,DS-Agent [44] 采用基于知识的方法,构建一个从 Kaggle 竞赛中获得的专家见解知识库,并应用基于案例的推理来生成更好的解决方案。这些系统使用 DS-Bench [61]、MLE-Bench [12] 和 MLAgentBench [54] 等平台进行基准测试,这些平台提供基于现实世界机器学习挑战的结构化任务,以评估整个建模流程的性能。
展望未来,该领域的未来研究应集中在增强大语言模型从数据驱动的实验中进行推理、适应和学习的能力。一个关键方向是开发知识丰富的建模智能体,这些智能体能够纳入常用库之外的先进特定领域技术。另一个有前景的领域是整合实验驱动的推理,使智能体能够根据实际性能指标迭代地测试、评估和优化他们的建模策略。最后,使用包含实验结果反馈循环和特定领域线索的思维链(CoT)机制训练大语言模型,可能为实现更智能、更自适应的数据科学智能体提供一条途径。
4.4 科学研究
人工智能(AI)在科学研究中发挥着越来越具有变革性的作用,支持数据分析、模拟、文献综述和创意生成等任务。其应用涵盖众多领域,例如在生物学中,AlphaFold [62] 和 RoseTTAFold [6] 等工具彻底改变了蛋白质结构预测;在物理学中,人工智能有助于加速粒子模拟 [66];在天文学中,它们协助系外行星探测 [94]。在这些背景下,大语言模型在科学研究中主要有两种用途:作为增强人类研究能力的工具,以及作为提出新颖科学假设或想法的共同创造者。
尽管取得了这些进展,但在科学发现中使用大语言模型仍存在一些显著挑战。首先,科学研究通常涉及目标不明确的开放式问题,这使得以保证准确或可验证解决方案的方式应用大语言模型变得困难。此外,科学研究需要深入的特定领域知识,大语言模型必须有效地利用这些专业知识才能做出可靠的预测。这些挑战使得大语言模型难以自主完成整个研究周期,尤其是当任务涉及开放式推理、抽象综合或跨学科知识时。
由于科学研究的这些挑战,大语言模型主要用作辅助科学任务的工具。例如,大语言模型已被用于加速生物医学和环境科学等领域的数据解释,在这些领域中,BioBERT 和 SciBERT 等预训练模型有助于对特定领域的数据进行情境化理解 [8, 57, 68, 85]。在模拟和预测建模方面,大语言模型已应用于气候预测和分子建模,利用它们的世界知识支持传统模拟可能有限的场景 [11]。在文献综述和综合方面,大语言模型通过总结大量文本语料库,帮助研究人员揭示趋势并识别知识差距 [8, 60, 85, 88, 109, 123]。更多的实验工作使用大语言模型进行研究创意生成 —— 一些研究表明大语言模型可以生成新颖的科学想法,但也凸显了评估和选择高质量想法的困难,尤其是因为大语言模型本身并不是可靠的评估者 [5, 112, 128, 131]。此外,像 AI Scientist [87] 和 HEADS [118] 等基于智能体的系统展示了实现从创意生成到模拟同行评审的整个研究流程自动化的可行性,尽管它们在验证这些流程以解决真正困难的现实世界科学问题方面仍有不足。
未来的研究可能会集中在通过整合更严格的评估机制和实现更深入的特定领域推理,来提高大语言模型在科学发现中的可靠性和影响力。一个关键方向是构建模仿科学团队动态的多智能体协作框架,以使生成的想法更加多样化和完善。另一个方向是将大语言模型与外部工具(如实验数据库、模拟引擎或形式验证系统)相结合,以支持结果验证并减少幻觉。最后,改善大语言模型生成的输出与人工或实验验证之间的反馈循环,对于实现大语言模型成为科学过程中值得信赖的合作者至关重要。这些发展将有助于从推测性生成转向对科学研究可验证、有影响力的贡献。
5 讨论与未来方向
尽管在大语言模型解决复杂问题的研究方面已经取得了显著进展,但仍然存在重大挑战。为了进一步增强大语言模型处理复杂问题的能力,我们应从多步推理、知识和验证这三个关键角度着眼对其进行改进。
多步推理
在训练用于多步推理的大语言模型时,存在两个主要问题:数据稀缺和高计算成本。
基于思维链的大语言模型通常在大量互联网数据上进行预训练,并通过大语言模型生成的合成数据进一步提升能力。然而,在许多专业领域,数据稀缺仍然是一个挑战。例如,虽然像 Python 这样广泛使用的编程语言在网上有大量代码语料库,但像 Lean [21] 这样不太知名的语言数据有限。尽管通过大语言模型生成合成数据可以提升大语言模型的能力,但这依赖于基础大语言模型在特定领域得到良好的预训练。因此,利用数据合成来提升大语言模型生成类似 Lean 语言代码的能力,仍然是一个重大挑战。类似的问题也出现在包括数学和科学在内的其他领域。解决数据稀缺问题的一种方法是开发将大语言模型与针对目标应用专门训练的定制模型相结合的智能体。例如,在形式定理证明中,由于数据有限,定制模型可以帮助确定数学策略(策略)的适用性,并评估每一步之后证明是否朝着目标前进 [152]。这些模型通过强化学习 [103, 125, 134] 引导大语言模型做出明智的决策,即使在数据稀疏的领域也能增强其推理能力。
另一个问题是高计算成本。推理缩放定律已被视为增强大语言模型处理复杂问题能力的一种方式 [17, 32, 119, 129]。通过生成大量推理路径,大语言模型更有可能为高度复杂的问题找到通向解决方案的路径,但这是以增加计算量为代价的。例如,GPT-o1 及其后续版本 GPT-o3 与 GPT-4 相比,推理成本显著更高。因此,降低推理成本至关重要。我们可以从几个角度应对计算挑战。首先,我们可以训练更好的用于生成和自校正的大语言模型,以减少生成推理路径 / 标记的尝试次数。其次,我们应该探索各种搜索算法,以更有效地生成推理路径。除了最佳 N 搜索,我们还应该探索束搜索和蒙特卡洛树搜索。第三,我们可以减小大语言模型的规模以加快推理速度,这包括将大语言模型蒸馏成更小的模型,以及将知识从大语言模型中解耦以创建更紧凑版本等技术,从而降低计算需求。
知识
知识是解决复杂问题的基础。目前,大语言模型在预训练过程中通过对大量数据进行下一个标记预测来获取世界知识,这带来了一些挑战。大语言模型可能无法可靠地记忆世界知识,尤其是长尾知识 [121]。因此,当前的大语言模型在训练数据稀缺的领域中表现不佳。即使大语言模型保留了知识,它们在解决复杂问题时可能难以回忆起相关信息,或者可能缺乏正确应用知识来解决复杂问题的能力。
为了在解决复杂问题时有效地利用知识,一种方法是构建超越传统基于三元组结构(仅包含实体和关系)的综合知识图谱。在机器学习的背景下,一个专业的知识图谱不仅应包括技术的文字描述,还应包括其数学公式和相应的实现代码。此外,它应该捕捉不同技术之间的关系,以促进对各种方法的探索,并在问题解决中促进创新。这样的知识图谱可以通过从学术论文、技术报告和教科书等来源提取信息,并经过仔细的验证和核实来系统地构建 [89]。一旦构建完成,这个知识图谱可以通过两种关键方式加以利用。第一,它可以用于合成数据以进行模型训练,从而应对数据稀缺的挑战。第二,它可以在推理过程中通过检索增强生成(RAG)方法支持问题解决,使模型能够实时访问和应用相关知识 [46]。
然而,大语言模型在表示和发现知识方面仍然面临挑战。它们在复杂任务中对思维链推理的依赖受到当前序列化技术的限制,这些技术难以从结构上捕捉特定领域的知识和逻辑(工作流程),同时对人类干预的支持有限 [95]。此外,大语言模型在平衡创新知识发现与逻辑可信度方面遇到困难,这往往导致产生幻觉性输出。更复杂的是,大语言模型的动态适应能力不足以跟上快速变化的环境,因为知识更新延迟可能使决策策略失效。这些相互关联的挑战凸显了进一步研究改进思维过程建模、增强特定领域知识发现与更新(编辑)[29, 130, 156, 170],以及为复杂问题解决开发更强大适应机制 [33, 143] 的必要性。
评估
当前的大语言模型研究,如 OpenAI o1,主要集中在最终结果易于验证的复杂问题上,如竞技编程和数学推理。然而,实际应用有着更为复杂的要求,这使得最终结果的验证变得复杂。首先,一些应用不仅要求解决方案正确,还要求实现效率或更高的准确性。例如,在机器学习任务中,虽然像随机预测或多层感知器这样的基线方法可以被视为 “正确” 的解决方案,但它们可能无法满足期望的性能,人们更倾向于更有效的解决方案。此外,许多应用中的问题难以全面定义。还是以机器学习任务为例,任务描述和输入数据的分布对于设计有效的解决方案都至关重要。然而,将输入数据的分布传达给大语言模型具有挑战性。另外,在某些科学领域,如药物发现、气候建模或社会科学中,结果的验证通常需要广泛的实验测试、重复实验或进一步的理论分析,以确认其准确性和可靠性。
这些挑战强调了需要强大的评估框架以及整合特定领域专业知识,以确保大语言模型生成输出的可靠性。为了提高大语言模型输出的可信度,采用多种评估方法至关重要。以机器学习任务为例,有几种方法可以评估机器学习算法的有效性:第一,可以通过与先前发表的结果(如学术论文和技术报告)进行比较来评估算法的性能。第二,可以利用基于大语言模型的评估器来评估解决方案的质量。为了提高其准确性,应进行数据分析,从输入数据中提取全面的见解,并将其提供给大语言模型。第三,实现机器学习算法并进行实验,为其有效性提供实证评估。第四,对于某些机器学习算法,我们可以对算法进行一些理论分析,并通过像 Lean 这样的符号验证工具进一步验证,确保对算法的正确性和有效性进行严格验证。通过结合所有这些不同的评估方法,我们有可能对机器学习算法进行全面评估。我们相信类似的评估原则(基于大语言模型的评估、实证实验、理论评估的组合)也可以应用于其他领域。
6 相关工作
已有几篇综述论文探讨了基于大语言模型的推理。早期的工作,如 Qiao 等人 [105] 和 Huang 与 Chang [51],对基于大语言模型的推理进行了概述,这对复杂问题解决至关重要。然而,这些综述主要关注该领域的初期发展。随着 GPT-o1 [99] 的发布,基于大语言模型推理的有效性得到了显著展示。此后,众多研究探索了 GPT-o1 背后的潜在机制。例如,Zeng 等人 [160] 和 Xu 等人 [142] 深入研究了能够实现类似 o1 推理的技术,特别是通过强化学习。相比之下,本文从更广泛的视角出发,探讨了复杂问题解决所需的各种能力,而不仅仅聚焦于推理。
众多综述论文聚焦于基于大语言模型推理的特定领域。例如,Yang 等人 [147] 研究了形式数学推理的进展、挑战和未来方向。Eger 等人 [31] 探索了使用大语言模型支持科学研究的最新进展,涵盖了文献搜索、创意生成、文本和多模态内容(如科学图表和图形)生成以及基于人工智能的同行评审等应用。Ahn 等人 [3] 对使用大语言模型进行的各类数学推理进行了概述。然而,这些工作并未涉及类似 o1 的技术。同时,Li 等人 [75] 专注于数学推理中的定理证明。该综述并非仅依赖大语言模型,而是将定理证明分解为多个组件,并讨论了各种深度学习技术在每个方面的应用。
7 结论
在这篇综述论文中,我们从认知科学和计算理论的角度定义了复杂问题解决,并分析了不同复杂问题的特征。然后,我们研究了大语言模型(LLMs)的重大进展,重点关注复杂问题解决背景下的思维链推理和基于智能体的方法。我们讨论了数据合成和强化学习如何增强大语言模型的多步推理能力。此外,我们还探讨了基于智能体的方法如何使人工智能系统利用外部知识、执行工具和结果验证。然而,我们也研究了这些方法在应用于不同类型复杂问题时的局限性。
本文转载自AIRoobt ,作者:DA ZHENG等
