OpenAI推理模型o1出现似乎让大模型学会了推理,而这篇文章作者认为它仍然无法真正学会推理,他深入分析了大语言模型在推理能力上的根本局限性,尽管LLM在某些任务中表现出色,但它们的随机性本质和非图灵完备的计算架构决定了它们无法进行真正的开放式推理。笔者认为该文章很有洞见,为我们从根本上如何看待LLM具有启发意义,特翻译给大家阅读。不过,随着AI技术的快速发展,未来可能会出现新的突破,所以我们不必说死,也要保持开放的态度来看待。
作者:Alejandro Piad Morffis
原文:Why Large Language Models Cannot (Still) Actually Reason[1]
大语言模型(LLM)常常给人一种能够有效推理的错觉。它们生成的回应往往连贯且切合语境,酷似人类的推理过程。然而,这种表面上的能力可能具有误导性。
事实上,在面对需要长链推理的复杂问题时,LLM经常出错。它们的回答乍看合乎逻辑,但往往缺乏深度和准确性,难以支撑可靠的推理。这一点在多步骤或复杂逻辑推理任务中尤为明显,模型可能会迷失方向,得出错误结论。本文将深入探讨大语言模型在推理方面的根本局限。我们将剖析这些模型的随机性本质、计算约束以及计算能力的不完备性,揭示它们在复杂推理任务中失败的原因。同时,我们还将探讨当前提升LLM推理能力的策略,如思维链提示和自我批评机制,并客观评估这些方法的有效性和潜在挑战。通过本文,我们希望读者能更深入地理解LLM的能与不能,在面对这些模型看似智能的回应时保持理性和谨慎。为什么LLM无法真正推理?
语言模型推理能力的一个重要制约因素是其随机性。这些模型基于概率预测而非确定性逻辑规则生成输出。这意味着即便面对结构完善的提示,模型也可能因决策过程中的随机性而在不同场合给出不同的回答。因此,LLM可能纯属偶然得出错误结论,导致推理结果前后矛盾。例如,当被要求解决数学问题或进行逻辑推理时,模型的回答可能会因生成过程中使用的随机种子不同而大相径庭,这无疑削弱了我们对其推理能力的信心。诚然,将温度设置为零可以强制模型为给定输入生成固定输出。但这个输出本质上仍是概率性的,你只是在采样最可能的结果。输入和输出之间的映射取决于一个概率分布,这个分布编码了输入中的元素和输出中相应元素之间的相关性。这一事实本身就令人生疑。虽然不是完全不可能,但如果我们碰巧收敛到了正确的概率分布,为每个输入都产生符合逻辑推理规则的正确输出,那未免也太过巧合了。根据设计,大语言模型处理每个词元(token)时都会消耗固定数量的计算资源。这意味着LLM在产生第一个输出词元之前所做的计算量仅仅取决于两个因素:输入大小和模型大小。因此,如果你要求LLM对一个逻辑谜题给出"是"或"否"的回答,模型能做的所有"思考"就是一些固定数量的矩阵乘法,这个数量只取决于输入大小。你明白我的意思了吗?现在,设想你有两个不同的逻辑谜题,输入大小相同,即包含相同数量的词元。但一个是简单的谜题,只需几步推理就能解决,而另一个需要更多步骤。关键在于:任何LLM在这两个问题上花费的计算量都是完全相同的。这听起来不太对劲,是吗?计算复杂性理论的一个基本结论是,一些输入非常小的问题似乎需要指数级的计算成本才能正确解决。这些被称为NP完全问题,大多数计算机科学家认为没有高效的算法来解决它们。关键是,大量的推理问题都属于这一类,包括最基本的逻辑谜题——判断给定的逻辑公式是否可满足。面对NP完全问题时,LLM会在仅由输入大小决定的固定计算量之后给出答案。诚然,由于规模庞大,一些更大的模型可能刚好能覆盖许多较小的NP完全问题实例。事实上,对于较小的输入,一个巨大的常数函数可能会超过指数函数。但关键是,我们总能找到NP完全问题的实例,即使原则上也需要超过任何LLM计算能力的计算量,无论它有多大。这意味着更深层次的问题。归根结底,LLM不是图灵完备的系统,本质上只是非常大的有限状态自动机。虽然它们可以处理广泛的任务并产生看似复杂的输出,但它们的底层架构限制了它们能解决的问题类型。图灵完备性是指计算系统在给定足够时间和资源的情况下执行任何计算的能力。现代计算机和许多看似简单的系统,如元胞自动机,都是图灵完备的。但讽刺的是,LLM不是。原因很简单。我们从计算理论中知道,任何图灵完备系统都必须能够无限循环。有些问题——包括一些推理任务——唯一可能的解决方案就是不断计算,直到某个条件成立,而且所需的计算量无法提前预知。要达到图灵完备,你需要潜在无界的计算能力。这是压倒骆驼的最后一根稻草。LLM在定义上是计算有界的。无论它们的规模有多大,总会有一些问题实例——我们可能无法事先识别——需要比LLM内部庞大的矩阵乘法链所能提供的更多计算。因此,当LLM看似能够处理复杂的推理问题时,它们往往只是在解决这些问题的特定实例,而不是展示通用的问题解决能力。这对于实际应用可能已经足够——我们可能永远不需要处理更大的实例——但原则上,LLM无法进行真正的开放式计算,这意味着它们无法进行真正的推理。改进LLM的推理技能
尽管如此,我们也不必就此放弃。研究人员和实践者已经探索了几种创新策略,包括思维链提示、自我批评机制以及集成外部工具,以提升大语言模型的推理能力。思维链(CoT)提示鼓励LLM阐述其思维过程,让它们将复杂问题分解为可管理的步骤,从而提高推理任务的准确性。自我批评则旨在通过内部评估过程来完善输出,但在有效纠正错误方面效果不一。此外,结合外部工具(如推理引擎和代码生成系统)可以通过提供结构化逻辑和形式验证来显著增强LLM的能力。然而,每种方法都面临着自己的一系列挑战,它们在培养LLM真正推理能力方面的潜力和局限性需要仔细权衡。思维链(Chain of Thought)
思维链提示已成为增强大语言模型推理能力的一种有前途的技术。通过引导模型在得出最终答案之前阐述中间推理步骤,CoT提示有助于将复杂问题分解为可管理的部分。这种方法在多种推理任务中(如算术和常识推理)显著提高了模型表现。CoT提示指导LLM将复杂问题分解为一系列更简单的步骤,然后独立处理每个步骤。这种结构化方法使模型能够逐一处理每个组成部分,提高回答的准确性和精确度。研究表明,这种技术可以显著提升推理任务的表现,特别是当模型拥有足够多的参数(约1000亿)来有效利用CoT提示的优势时。通过鼓励模型阐述其思维过程,CoT提示充分利用了LLM在训练期间获得的广泛知识库。这种机制帮助模型更有效地应用相关信息,克服它们在逻辑推理和问题解决方面的固有困难。此外,CoT使LLM能够"深入思考",因为它迫使模型生成我们可以视为"内部思考"的词元。因此,我们可以将其视为在决定回应之前对输入进行额外计算的一种方式。然而,尽管有这些优点,CoT提示仍然存在一些不足之处。首先,CoT提示的有效性高度依赖于所使用的提示的质量和多样性。如果提供的示例不具代表性或不够多样化,模型可能难以生成连贯的推理链,导致表现欠佳。这种对有效提示工程的依赖可能限制了该技术的可扩展性和通用性。其次,LLM的随机性意味着即使使用CoT提示,由于生成过程中的随机性,输出在不同运行之间也可能存在显著差异。这种可变性可能导致推理结果不一致,削弱了对模型回答的可靠性。最后,CoT仅仅是通过有限的数量扩展了计算预算。除非我们尝试某种循环方案,让LLM被提示继续思考,可能无限期地直到达到满意结果,否则它们在图灵不完备性上的根本限制仍然存在。自我批评(Self-critique)
改善推理的另一种直观方法是自我批评,这涉及使用相同的模型评估和完善LLM的回答,通过指示模型阅读其先前输出、指出潜在错误并尝试纠正它们的提示来实现。这可以看作是一种事后的思维链。然而,最近的研究突显了这种自我批评能力在有效性方面的重大局限。虽然LLM可以生成多个想法并尝试批评其初始输出,但研究表明它们通常无法进行有意义的自我纠正。计算复杂性理论中的一个基本观点——正确性验证应该比生成更容易——对LLM来说似乎并不普遍适用。这在推理任务中尤其成问题,模型难以充分评估其输出的准确性。例如,如果LLM生成了一个有缺陷的答案,它试图批评和修改的尝试可能导致进一步的错误,而非改进。研究表明,LLM的自我纠正技术在很大程度上取决于外部反馈的可用性。在许多情况下,LLM在有权访问外部验证器或额外上下文时表现更好,而不是仅仅依赖其内部推理能力。例如,在解决复杂问题(如图着色或规划任务)时,LLM常常无法在没有外部指导的情况下产生可靠的解决方案。有趣的是,自我批评的尝试有时反而会降低性能而非提高。研究表明,当LLM在没有外部验证的情况下进行自我批评时,它们可能会产生假阳性或错误的结论。如果你继续推进这个过程,很容易陷入无效或错误论点的自我强化循环,使LLM越来越确信,尽管实际上它的表现越来越差。外部工具
将外部工具(如推理引擎或代码生成系统)集成到大语言模型中,代表了增强其推理能力的一种有前途的——在我看来,是唯一真正可行的——方法。将LLM连接到外部推理引擎或逻辑推理工具,可以显著增强它们的推理能力。这些工具可以处理复杂的逻辑推理、数学计算,甚至是LLM可能本身不具备的特定领域知识。这种集成允许更准确和可靠的输出,因为外部工具可以应用LLM通常难以处理的形式逻辑和结构化推理。同样,外部代码生成系统使LLM能够为特定任务生成可执行代码。这种能力可以简化软件开发过程,提高生成功能代码片段的效率。外部系统可以提供严格的检查和平衡,帮助确保生成代码的正确性。通过利用这些外部资源,LLM可能克服其在逻辑推理和问题解决方面的一些固有限制。首先,外部推理引擎将是图灵完备的,所以我们似乎解决了那个问题,对吧?别高兴得太早。不幸的是,这种方法面临着许多挑战,特别是关于LLM生成正确的函数调用或代码执行输入的能力。这一切又回到了LLM的原罪:随机输出。首先,函数调用或代码生成的有效性取决于模型准确解释任务并生成适当输入的能力。如果模型误解了要求或生成了模糊或不正确的提示,外部工具可能会产生错误的输出或完全无法执行。这种依赖引入了一个潜在的失败点,模型在理解上下文和意图方面的局限性变得明显。许多推理任务需要对逻辑和上下文的细微理解,这可能超出了语言模型的能力范围。例如,在为逻辑推理引擎生成输入时,模型必须理解问题并以符合系统要求的方式阐述它。如果模型无法捕捉这些细微差别,可能会导致错误的推理或无效的推理过程。将文本转换为代码或结构化查询使情况变得更加复杂,可能会削弱推理能力。这种转换需要编程语法和逻辑知识,这对于主要在自然语言数据上训练的LLM来说可能并不直观。这种转换中的错误可能会传播到外部系统,导致更多错误。虽然外部工具原则上可以通过提供结构化逻辑和形式验证来改善LLM的推理能力,但它们无法弥补LLM在生成精确输入方面的基本局限性。因此,我们无法正式保证这种集成的输出在逻辑上是正确的或适合上下文的,这正是因为那句古老的格言:垃圾进,垃圾出。结语
尽管大语言模型可能表现出一些推理能力,但它们根本上的随机性和固定的计算架构阻碍了它们进行开放式、任意长度推理的能力。这种潜在的限制意味着,尽管正在进行研究并探索各种技术来增强推理,如思维链提示和自我批评机制,甚至将它们与强大的推理引擎结合,我们仍然不知道如何使语言模型使用完美、形式化的逻辑进行推理。像OpenAI的GPT-4这样的模型的出现,它号称具有令人印象深刻的推理能力,可能看起来是一个重要的进步。然而,这种方法并不代表LLM逻辑推理的根本性新范式。从本质上讲,这"只是"一种在微调阶段明确纳入思维链提示的方法,并通过强化学习教导模型选择大部分连贯的推理路径。因此,虽然GPT-4无疑是一个令人印象深刻的技术和工程壮举——以及未来基于相同范式的任何模型——将继续共享所有LLM固有的相同核心限制,只是使用一些巧妙的技巧来缓解。因此,虽然它们可能在某些情况下表现出色,但在将其输出解释为确定性推理时必须保持谨慎。