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 是用于选择最相关思维的排序函数。


