大型语言模型最近的发展速度非常快,它在解决一般问题、生成代码和遵循指令方面展现出了显著的非凡能力
尽管早期的模型依赖于直接回答策略,但当前的研究则转向了线性推理路径,其做法是将问题分解成子任务来发现解决方案,或通过修改上下文来利用外部机制来改变 token 的生成。
与人类认知类似,早期的 llm 策略似乎模仿的是即时的 system 1(快速反应),其特征是通过脉冲决策实现。相较之下,思维链(cot)和 least-to-most prompting(l2m)等更新的一些方法则反映了 system 2(慢速思考)的内省式本质。值得注意的是,通过整合中间推理步骤,可让 llm 的算术推理能力获得提升。
但是,如果任务需要更深度的规划和更广度的思维探索,那么这些的方法的局限性就显现出来了。尽管整合了自我一致性的 cot(cot-sc)可使用多个 llm 输出来达成共识性结果,但由于缺少细致的评估,可能会导致模型走向错误方向。2023 年出现的思维树(tot)是一种值得注意的解决方案。其中使用一个 llm 来生成想法,再使用另一个 llm 来评估这些想法的优点,之后续以「暂停 - 评估 - 继续」的循环。这种基于树搜索的迭代过程明显是有效的,尤其是对于具有较长延续性的任务。研究者认为,这种进展是使用外部工具来增强 llm,类似于人类使用工具来规避自身工作记忆的限制。
另一方面,增强的llm方法也存在一些缺点。一个明显的问题是查询数量和计算需求会大幅增加。每次对gpt-4等在线llm api的查询都会产生大量的费用,并且会导致延迟增加,这对于实时应用来说尤为重要。这些查询累积的延迟可能会降低方案的整体效率。在基础设施方面,持续的交互会给系统带来压力,可能会限制带宽并降低模型的可用性。此外,还不能忽视对环境的影响,频繁的查询会增加已经高耗能的数据中心的能源消耗,进一步增加碳足迹
研究者的优化目标是在保持足够性能的同时,大幅减少当前多查询推理方法所使用的查询数量。这样的优化可以使模型能够处理需要熟练运用世界知识的任务,并引导人们更加负责任和熟练地使用ai资源
通过思考llm从system 1到system 2的演变,我们可以看到一个关键因素浮出了水面:算法。算法是富有条理的,它能够为人们提供一种探索问题空间、制定策略和构建解决方案的方法。尽管许多主流文献将算法视为llm的外部工具,但考虑到llm固有的生成式复现能力,我们是否可以引导这种迭代式逻辑,将算法内化到llm内部呢?
弗吉尼亚理工大学和微软的一个研究团队将人类推理的复杂精妙和算法方法的富有条理的精确性聚合到了一起,旨在通过融合这两方面来增强llm内部的推理能力
根据已有的研究,人类在解决复杂问题时会本能地借鉴过去的经验,确保自己进行全面思考而不是狭隘地关注某一细节。而llm的生成范围仅受其token限制限定,似乎注定要突破人类工作记忆的阻碍
受到这一观察的启发,研究人员开始探究是否可以利用llm实现类似的分层思考方式,通过参考先前的中间步骤来排除不可行的选项 - 所有这些都在llm的生成周期内完成。人类擅长直觉敏锐,而算法善于组织化和系统性的探索。当前的cot等技术往往回避了这种协同性潜力,过于关注llm的现场准确性。通过利用llm的递归能力,研究人员构建了一种人类-算法混合方法。这种方法的实现方式是通过使用算法示例,这些示例能够体现探索的本质 - 从最初的候选项到经过验证的解决方案
基于这些观察,研究者提出了思维算法(algorithm of thoughts /aot)。
需要重新写作的内容是:论文:https://arxiv.org/pdf/2308.10379.pdf
从更广义的范围看,这种新方法有望催生出一种上下文学习新范式。这种新方法没有使用传统的监督学习模式,即 [问题,解答] 或 [问题,用于获得解答的后续步骤],而是采用了一种新模式 [问题,搜索过程,解答]。很自然,当通过指令让 llm 使用某算法时,我们通常预计 llm 只会简单模仿该算法的迭代式思维。但是,有趣的是 llm 有能力注入其自身的「直觉」,甚至能使其搜索效率超过该算法本身。
思维算法研究者表示,他们的研究策略的核心是认识到当前上下文学习范式的主要不足之处。尽管cot能够提升思维联系的一致性,但偶尔也会出现问题,导致错误的中间步骤
为了说明这一现象,研究者设计了一个实验。用算术任务(如 11 − 2 =)查询 text-davinci-003 时,研究者会在前面添加多个会得到同等输出结果的上下文等式(如 15 − 5 = 10, 8 + 2 = 10)。
经过调查发现,发现结果准确度骤降,这表明仅仅在上下文中提供正确的推理可能会无意中损害llm的基础算术能力
为了减少这种偏差,让示例更加多样化也许是可行的解决方案,但这可能会稍微改变输出的分布。只是添加一些不成功的尝试(就像是随机搜索),可能会无意地鼓励模型重新尝试,而不是真正解决问题。了解了算法行为的真正本质(其中失败的搜索和后续的恢复以及对这些尝试的学习都很重要),研究者整合上下文示例的方式是按照搜索算法的模式,尤其是深度优先搜索(dfs)和广度优先搜索(bfs)。图 1 给出了一个示例。
这篇论文的主要关注点是一类类似于树搜索问题的任务
对于这类任务,需要将主要问题进行分解,并为每个部分构建可行的解决方案。然后,我们需要决定是否采纳或放弃某些路径,并有可能选择重新评估那些具有更大潜力的部分
研究者的方法是利用llm的迭代能力,在一次统一的生成式扫描中解决每个子集的查询问题。通过限制只进行一两次llm交互,该方法可以自然地整合来自之前上下文候选项的见解,并解决需要深度探索解答域的复杂问题。研究者还提出了关于思维大小和为llm提供何种类型上下文示例以提高token效率的见解。下面将介绍树搜索算法的关键组件及其在新框架中的表现形式
1. 分解成子问题。给定一个问题,就算不看实际解决问题方面,构建一个描述可行推理路径的搜索树已经是一项艰巨的任务。任何分解都不仅要考虑子任务之间的相互关系,还要考虑解决各个问题的难易程度。
以简单的多位数加法为例:尽管对计算机而言,将数值转换成二进制数后效率很高,但人类通常认为十进制数更加直观。此外,即便子问题是一样的,执行方法也可能不同。直觉能找到解答步骤之间的捷径,而如果没有直觉,可能就必需更为详细的步骤。
为了创建出正确的 prompt(即上下文算法示例),这些细微之处非常重要,它们决定了 llm 为了取得可靠表现所需的最少 token 数量。这不仅能满足 llm 对上下文的限制,而也对 llm 的能力很重要,因为我们希望 llm 能使用相似的 token 量解决与其上下文有共鸣的问题。
2. 为子问题提议解答。现目前的一种主流方法涉及到直接采样 llm token 输出概率。尽管这种方法对一次性答案有效(有一定的限制),但也无力应对一些场景,比如当需要将样本序列整合进后续 prompt 中或在后续 prompt 中评估时。为了尽可能减少模型查询,研究者采用了一种不间断的解答创建过程。即不带任何生成停顿,为主要子问题直接和连续地生成解答。
重写后的内容: 这种方法有很多优点。首先,所有生成的答案都在同一个共享的上下文中,不需要为每个答案生成单独的模型查询进行评估。其次,尽管一开始看起来有些反直觉,但孤立的标记或标记组概率可能无法总是得到有意义的选择。图4展示了一个简单的示意图
3. 衡量子问题的前景。如上所述,现有技术依靠额外的提示来识别树节点的潜力,帮助做出有关探索方向的决策。而研究者的观察表明,如果能将最有前途的路径封装在上下文示例中,llm 会固有地倾向于优先考虑那些有前途的候选项。这能降低对复杂 prompt 工程设计的需求并允许整合复杂精细的启发式方法,不管这些方法是直觉式的或知识驱动的。同样,新方法中不含脱节的 prompt,这使得能在同一个生成结果中即时评估候选项的可行性。
4. 回溯到更好的节点。决定接下来要探索的节点(包括回溯到之前的节点)本质上取决于所选的树搜索算法。尽管之前已有研究为搜索过程采用了编码机制等外部方法,但这会限制其更广泛的吸引力并需要额外的定制。这篇论文提出的新设计主要采用 dfs 方法并辅以剪枝。目标是维持有同一父节点的子节点之间的近邻度,以此鼓励 llm 优先考虑本地特征而不是远程特征。此外,研究者还提出了基于 bfs 的 aot 方法的性能指标。研究者表示,借助于模型从上下文示例中收集见解的固有能力,可以消除额外的定制机制的必要性。
实验研究人员进行了一项实验,对于24点和5x5迷你填词游戏进行了研究。结果显示,aot方法在性能表现上优于单个提示方法(如标准方法、cot、cot-sc),同时也可以媲美利用外部机制的方法(如tot)
从表1可以清楚地看出,使用llm进行树搜索的方法明显优于结合了cot/cot-sc的标准提示设计方法
在迷你填词任务中,表 3 显示了aot的有效性,其填词成功率超过了之前使用各种提示技术的方法
但是,它比 tot 差。一个重要的观察是 tot 使用的查询量巨大,超过了 aot 百倍以上。另一个让 aot 逊于 tot 的因素是算法示例中固有的回溯能力没有充分得到激活。如果能完全解锁该能力,会导致生成阶段显著延长。相比之下,tot 的优势在于可以利用外部记忆来进行回溯。
讨论aot 能否在模仿 dfs 的基础上取得突破?
根据图5所示,aot使用的节点总体上比dfs版本少。dfs在选择要探索的子树时采用了统一的策略,而aot的llm则集成了其固有的启发式方法。这种对基本算法的放大体现了llm递归推理能力的优势
算法的选择会如何影响 aot 的效能?
在实验中发现,表5显示了这三种aot变体都比单个查询的cot更优越
这一结果符合预期,因为无论算法是什么,它都会进行搜索并重新审视潜在的错误 —— 要么是通过随机搜索变体中的随机尝试,要么是通过深度优先搜索(dfs)或广度优先搜索(bfs)配置中的回溯。值得注意的是,dfs版本的aot和bfs版本的aot这两个结构化搜索的效率都优于随机版本的aot,这突显了算法洞察在解答发现中的优势。但是,bfs版本的aot落后于dfs版本的aot。通过更进一步分析bfs版本的aot的错误,研究者发现,相比于dfs版本的aot,bfs版本的aot更难识别最佳操作
在调节 aot 的行为时,我们需要关注算法示例中的搜索步数
在图6中展示了总搜索步数的影响。其中,aot(长)和aot(短)分别表示相对于原始aot生成结果更长和更短的版本
研究结果显示,搜索步骤会对llm的搜索速度产生隐含的偏差。需要注意的是,即使在采取错误的步骤时,强调探索有潜力的方向仍然非常重要
以上就是新标题:揭秘大模型运行缓慢的原因:人类思维算法的新方向的详细内容。
