跳到主要内容 LLM 推理思维链变体:TOT、GOT、AOT、SoT 与 PoT 详解 | 极客日志
Python AI 算法
LLM 推理思维链变体:TOT、GOT、AOT、SoT 与 PoT 详解 本文深入解析了大型语言模型(LLM)中超越传统思维链的多种推理变体技术。涵盖思维树(TOT)、思维图(GOT)、思维算法(AOT)、思维框架(SoT)及思维程序(PoT)。文章详细阐述了各方法的核心原理、实现思路及适用场景,对比了它们在复杂任务处理、延迟优化及计算准确性上的差异,为开发者选择合适的 LLM 推理策略提供全面的技术参考。
静心 发布于 2025/2/6 更新于 2026/4/20 1 浏览LLM 推理思维链变体详解
传统的思维链(Chain of Thought, CoT)提示技术在处理简单逻辑任务时表现良好,但在面对需要多步推理、回溯或复杂规划的任务时往往显得力不从深。为了解决这些问题,研究者提出了多种思维链的变体技术,包括思维树(Tree of Thoughts)、思维图(Graph of Thoughts)、思维算法(Algorithm of Thoughts)、思维框架(Skeleton-of-Thought)以及思维程序(Program-of-Thought)。本文将逐一解析这些技术的核心思想、实现思路及适用场景。
1. 为什么需要思维树 Tree of Thoughts(TOT)? 对于需要探索或预判战略的复杂任务来说,传统或简单的提示技巧是不够的。ToT 维护着一棵思维树,思维由连贯的语言序列表示,这个序列就是解决问题的中间步骤。使用这种方法,语言模型(LM)能够自己对严谨推理过程的中间思维进行评估。LM 将生成及评估思维的能力与搜索算法(如广度优先搜索 BFS 和深度优先搜索 DFS)相结合,在系统性探索思维的时候可以向前验证和回溯。
ToT 的核心优势
自我反思 :模型可以评估当前步骤的质量。
全局规划 :通过搜索算法避免陷入局部最优解。
容错性 :允许回溯到之前的节点重新尝试。
2. 思维树 Tree of Thoughts(TOT)实现思路是什么? ToT 需要针对不同的任务定义思维/步骤的数量以及每步的候选项数量。例如'算 24 游戏'是一种数学推理任务,需要分成 3 个思维步骤,每一步都需要一个中间方程。而每个步骤保留最优的(best)5 个候选项。ToT 完成算 24 的游戏任务要执行广度优先搜索(BFS),每步思维的候选项都要求 LM 给出能否得到 24 的评估:
'sure/maybe/impossible'(一定能/可能/不可能)。
目的是得到经过少量向前尝试就可以验证正确(sure)的局部解,基于'太大/太小'的常识消除那些不可能(impossible)的局部解,其余的局部解作为'maybe'保留。每步思维都要抽样得到 3 个评估结果。
实现流程
分解问题 :将大问题拆解为多个子步骤。
生成候选 :对每个步骤生成多个可能的思维路径。
评估筛选 :利用 LM 对候选路径进行评分或分类。
搜索扩展 :根据评估结果选择最佳路径继续搜索或回溯。
3. 思维树 Tree of Thoughts(TOT)提示词如何设计? 为了激发模型的树状思考能力,提示词通常需要模拟多个专家或视角的协作。以下是一个典型的提示词模板结构:
假设三位不同的专家来回答这个问题。所有专家都写下他们思考这个问题的第一个步骤,然后与大家分享。然后,所有专家都写下他们思考的下一个步骤并分享。以此类推,直到所有专家写完他们思考的所有步骤。只要大家发现有专家的步骤出错了,就让这位专家离开。请问...
这种设计强制模型在生成过程中保持多样性,并通过'淘汰机制'模拟剪枝过程。
4. 为什么需要思维图 Graph of Thoughts(GOT)? 在进行思考时,人类不会像 CoT 那样仅遵循一条思维链,也不是像 ToT 那样尝试多种不同途径,而是会形成一个更加复杂的思维网。举个例子,一个人可能会先探索一条思维链,然后回溯再探索另一条,然后可能会意识到之前那条链的某个想法可以和当前链结合起来,取长补短,得到一个新的解决方案。类似地,大脑会形成复杂的网络,呈现出类似图的模式,比如循环模式。算法执行时也会揭示出网络的模式,这往往可以表示成有向无环图。
研究者表示,如果将这种对应的图使能的变换用于 LLM 思维,那么有望创造一种强大的设计 prompt 的方法,但这种变换无法通过 CoT 或 ToT 自然地表达出来。
5. 什么是思维图 Graph of Thoughts(GOT)? GoT 尤其适用于可自然分解成更小子任务的任务,并且这些子任务可以分开解决,然后融合成一个最终解答。在这方面,GoT 的表现优于其它方案,比如在排序任务上,GoT 分别优于 CoT 和 ToT 约 70% 和 62%,同时成本还比 ToT 低 31% 以上。
在数学形式上,GoT 可以建模为一个元组(G, T, E, R),其中 G 是 LLM 推理过程(即上下文中的所有 LLM 思维及其关系),T 是可能的思维变换,E 是用于获得思维分数的评估器函数,R 是用于选择最相关思维的排序函数。
6. 思维图 Graph of Thoughts(GOT)核心思想是什么? 将推理过程建模为有向图 G =(V,E),其中 V 是顶点集,E 是边缘集。顶点包含手头问题的解决方案(无论是初始、中级还是最终问题)。这种思维的具体形式取决于用例;它可以是一个段落(在写作任务中)或一个数字序列(在排序中)。有向边(t1,t2)表示思维 t2 是用思维 t1 作为'直接输入'构建的,即通过显式指示 LLM 用 t1 生成 t2。
为了推进这个过程,将思维转换应用于 G。这种转变的一个例子是将得分最高的思维(到目前为止)合并到一个新思维中。另一个例子是循环考虑一个思维,增强它。请注意,这些转换结构严格扩展了 CoT,CoT-SC(自一致性的多 CoT)或 ToT 中可用的转换集。
三种核心操作
聚合(Aggregation) :即将几个想法融合成一个统一的想法。
精化(Refinement) :对单个思想进行连续迭代,以提高其精度。
生成(Generation) :有利于从现有思想中产生新的思想。
7. 为什么需要思维算法 Algorithm of Thoughts(AOT)? 已有的研究强调,人类在解决复杂问题时会本能地借鉴过去的经历,确保自己进行全面思考而不是狭隘地关注某一细节。LLM 生成范围仅受其 token 限制限定,似乎是注定要突破人类工作记忆的阻碍。
受这一观察启发,研究者探究了 LLM 能否实现类似的对想法的分层探索 ,通过参考之前的中间步骤来筛除不可行的选项 —— 所有这些都在 LLM 的生成周期内完成。而人类长于直觉敏锐,算法善于组织化和系统性的探索。CoT 等当前技术往往回避了这种协同性潜力,而过于关注 LLM 的现场精度。通过利用 LLM 的递归能力,研究者构建了一种人类 - 算法混合方法。其实现方式是通过使用算法示例,这些示例能体现探索的本质 —— 从最初的候选项到经过验证的解决方案。基于这些观察,研究者提出了思维算法(Algorithm of Thoughts / AoT)。
8. 思维算法 Algorithm of Thoughts(AOT)思路是什么? 利用 LLM 的迭代能力,在一次统一的生成式扫描中解决它们。通过限定自己仅能进行一两次 LLM 交互,该方法可以自然地整合来自之前的上下文候选项的洞见,并解决需要对解答域进行深度探索的复杂问题。对于这些思维的大小应当如何以及应该为 LLM 提供何种类型的上下文示例,从而提升 token 效率。
AOT 实施步骤
分解成子问题 :给定一个问题,就算不看实际解决问题方面,构建一个描述可行推理路径的搜索树已经是一项艰巨的任务。任何分解都不仅要考虑子任务之间的相互关系,还要考虑解决各个问题的难易程度。
为子问题提议解答 :现目前的一种主流方法涉及到直接采样 LLM token 输出概率。尽管这种方法对一次性答案有效(有一定的限制),但也无力应对一些场景,比如需要将样本序列整合进后续 prompt 中或在后续 prompt 中评估。为了尽可能减少模型查询,研究者采用了一种不间断的解答创建过程。即不带任何生成停顿,为主要子问题直接和连续地生成解答。
衡量子问题的前景 :如上所述,现有技术依靠额外的提示来识别树节点的潜力,帮助做出有关探索方向的决策。而研究者的观察表明,如果能将最有前途的路径封装在上下文示例中,LLM 会固有地倾向于优先考虑那些有前途的候选项。这能降低对复杂 prompt 工程设计的需求并允许整合复杂精细的启发式方法,不管这些方法是直觉式的或知识驱动的。同样,新方法中不含脱节的 prompt,这使得能在同一个生成结果中即时评估候选项的可行性。
回溯到更好的节点 :决定接下来要探索的节点(包括回溯到之前的节点)本质上取决于所选的树搜索算法。尽管之前已有研究为搜索过程采用了编码机制等外部方法,但这会限制其更广泛的吸引力并需要额外的定制。这篇论文提出的新设计主要采用 DFS 方法并辅以剪枝。目标是维持有同一父节点的子节点之间的近邻度,以此鼓励 LLM 优先考虑本地特征而不是远程特征。此外,研究者还提出了基于 BFS 的 AoT 方法的性能指标。研究者表示,借助于模型从上下文示例中收集见解的固有能力,可以消除额外的定制机制的必要性。
9. 思维框架 Skeleton-of-Thought(SoT)是什么? 思维框架(SoT)范式的独特设计主要是为了减少端到端生成延迟的挑战,而不是为了增强大型语言模型(LLM)的推理能力。
这种方法采用双阶段方法,首先制定答案的初步蓝图,然后进行全面扩展。
SoT 工作流程
骨架阶段 :在最初的骨架阶段中,系统不会生成全面的响应,而是提示模型生成简洁的答案骨架。通过精心制作的骨架模板,这种缩写表达抓住了预期答案的核心元素,从而为下一阶段奠定了基础。
扩展阶段 :在接下来的扩展阶段中,LLM 系统会对答案骨架中的每个组成部分进行放大。它利用点扩展提示模板,同时阐述骨架的每个片段。
这种方法特别适用于生成长文本的场景,能够显著降低首字延迟(Time to First Token)并优化整体生成效率。
10. 思维程序 Program-of-Thought(PoT)是什么? 思维程序(PoT)是一种独特的 LLM 推理方法。它不仅仅是生成自然语言答案,而是要求创建一个可执行程序,可以在 Python 等程序解释器上运行,从而产生实际的结果。
与直接模型相比,这种方法强调将推理分解为顺序步骤,并将语义与变量相关联的能力。因此,PoT 提供了一个更清晰、更具表达力和基础的答案推导模型,提高了准确性和理解力,尤其是对于需要进行数值计算的数学类型逻辑问题。
需要注意的是,PoT 的程序执行不一定针对最终答案,而是可以作为最终答案的中间步骤的一部分。通过引入代码执行环境,PoT 能够有效规避 LLM 在算术计算上的幻觉问题。
总结与对比 方法 全称 核心特点 适用场景 CoT Chain of Thought 线性推理,单一路径 简单逻辑推理 TOT Tree of Thoughts 树状搜索,多路径评估 复杂规划、解谜游戏 GOT Graph of Thoughts 网状结构,节点融合 多子任务聚合、写作 AOT Algorithm of Thoughts 算法引导,上下文学习 需要深度搜索的问题 SoT Skeleton-of-Thought 两阶段生成,骨架先行 长文本生成,低延迟需求 PoT Program-of-Thought 代码执行,精确计算 数学计算、逻辑验证
选择合适的推理策略取决于具体的任务需求。如果需要极高的计算准确性,PoT 是首选;如果需要处理复杂的规划问题,TOT 或 GOT 更为合适;而对于长文档生成,SoT 能有效优化体验。开发者应根据实际业务场景灵活组合这些技术。
相关免费在线工具 加密/解密文本 使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
curl 转代码 解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online