对于需要探索或预判战略的复杂任务来说,传统或简单的提示技巧是不够的。ToT 维护着一棵思维树,思维由连贯的语言序列表示,这个序列就是解决问题的中间步骤。使用这种方法,LM 能够自己对严谨推理过程的中间思维进行评估。LM 将生成及评估思维的能力与搜索算法(如广度优先搜索和深度优先搜索)相结合,在系统性探索思维的时候可以向前验证和回溯。
ToT 需要针对不同的任务定义思维/步骤的数量以及每步的候选项数量。例如“算 24 游戏”是一种数学推理任务,需要分成 3 个思维步骤,每一步都需要一个中间方程。而每个步骤保留最优的(best) 5 个候选项。ToT 完成算 24 的游戏任务要执行广度优先搜索(BFS),每步思维的候选项都要求 LM 给出能否得到 24 的评估:
“sure/maybe/impossible”(一定能/可能/不可能) 。
“目的是得到经过少量向前尝试就可以验证正确(sure)的局部解,基于‘太大/太小’的常识消除那些不可能(impossible)的局部解,其余的局部解作为‘maybe’保留。”每步思维都要抽样得到 3 个评估结果。
假设三位不同的专家来回答这个问题。所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。然后,所有专家都写
下他们思考的下一个步骤并分享。以此类推,直到所有专家写完他们思考的所有步骤。只要大家发现有专家的步骤出错了,就让
这位专家离开。请问...
在进行思考时,人类不会像 CoT 那样仅遵循一条思维链,也不是像 ToT 那样尝试多种不同途径,而是会形成一个更加复杂的思维网。举个例子,一个人可能会先探索一条思维链,然后回溯再探索另一条,然后可能会意识到之前那条链的某个想法可以和当前链结合起来,取长补短,得到一个新的解决方案。类似地,大脑会形成复杂的网络,呈现出类似图的模式,比如循环模式。算法执行时也会揭示出网络的模式,这往往可以表示成有向无环图。
研究者表示,如果将这种对应的图使能的变换用于 LLM 思维,那么有望创造一种强大的设计 prompt 的方法,但这种变换无法通过 CoT 或 ToT 自然地表达出来。
GoT 尤其适用于可自然分解成更小子任务的任务,并且这些子任务可以分开解决,然后融合成一个最终解答。在这方面,GoT 的表现优于其它方案,比如在排序任务上,GoT 分别优于 CoT 和 ToT 约 70% 和 62%,同时成本还比 ToT 低 31% 以上。
在数学形式上,GoT 可以建模为一个元组(G, T, E, R),其中 G 是 LLM 推理过程(即上下文中的所有 LLM 思维及其关系),T 是可能的思维变换,E 是用于获得思维分数的评估器函数,R 是用于选择最相关思维的排序函数。
将推理过程建模为有向图 G =(V,E),其中V 是顶点集,E是边缘集。顶点包含手头问题的解决方案(无论是初始、中级还是最终问题)。这种思维的具体形式取决于用例;它可以是一个段落(在写作任务中)或一个数字序列(在排序中)。有向边(t1,t2)表示思维t2是用思维t1作为“直接输入”构建的,即通过显式指示LLM用t1生成t2。
为了推进这个过程,将思维转换应用于G。这种转变的一个例子是将得分最高的思维(到目前为止)合并到一个新思维中。另一个例子是循环考虑一个思维,增强它。请注意,这些转换结构严格扩展了CoT,CoT-SC(自一致性的多CoT)或ToT中可用的转换集。
已有的研究强调,人类在解决复杂问题时会本能地借鉴过去的经历,确保自己进行全面思考而不是狭隘地关注某一细节。LLM 生成范围仅受其 token 限制限定,似乎是注定要突破人类工作记忆的阻碍。
受这一观察启发,研究者探究了 LLM 能否实现类似的对想法的分层探索,通过参考之前的中间步骤来筛除不可行的选项 —— 所有这些都在 LLM 的生成周期内完成。而人类长于直觉敏锐,算法善于组织化和系统性的探索。CoT 等当前技术往往回避了这种协同性潜力,而过于关注 LLM 的现场精度。通过利用 LLM 的递归能力,研究者构建了一种人类 - 算法混合方法。其实现方式是通过使用算法示例,这些示例能体现探索的本质 —— 从最初的候选项到经过验证的解决方案。基于这些观察,研究者提出了思维算法(Algorithm of Thoughts /AoT)。
利用 LLM 的迭代能力,在一次统一的生成式扫描中解决它们。通过限定自己仅能进行一两次 LLM 交互,该方法可以自然地整合来自之前的上下文候选项的洞见,并解决需要对解答域进行深度探索的复杂问题。对于这些思维的大小应当如何以及应该为 LLM 提供何种类型的上下文示例,从而提升 token 效率。
思维框架(SoT)范式的独特设计主要是为了减少端到端生成延迟的挑战,而不是为了增强大型语言模型(LLM)的推理能力。
这种方法采用双阶段方法,首先制定答案的初步蓝图,然后进行全面扩展。
在最初的骨架阶段中,系统不会生成全面的响应,而是提示模型生成简洁的答案骨架。通过精心制作的骨架模板,这种缩写表达抓住了预期答案的核心元素,从而为下一阶段奠定了基础。
在接下来的扩展阶段中,LLM系统会对答案骨架中的每个组成部分进行放大。它利用点扩展提示模板,同时阐述骨架的每个片段。
思维程序(PoT)是一种独特的LLM推理方法。它不仅仅是生成自然语言答案,而是要求创建一个可执行程序,可以在Python等程序解释器上运行,从而产生实际的结果。
与直接模型相比,这种方法强调将推理分解为顺序步骤,并将语义与变量相关联的能力。因此,PoT提供了一个更清晰、更具表达力和基础的答案推导模型,提高了准确性和理解力,尤其是对于需要进行数值计算的数学类型逻辑问题。
需要注意的是,PoT的程序执行不一定针对最终答案,而是可以作为最终答案的中间步骤的一部分。
阅读量:2017
点赞量:0
收藏量:0