logo
2

Prompt 技巧宝典(五):思维树提示

在开始学习TOT(Tree of Thoughts)之前我们需要掌握广度优先搜索(Breadth-First Search,简称 BFS)和深度优先搜索(Depth-First Search,简称 DFS)这两种常见的图搜索算法。
  1. 广度优先搜索 (BFS):
    • BFS是按照层次层层遍历的。首先访问起始节点,然后访问所有与起始节点直接相邻的节点,然后是与这些节点相邻的节点,依此类推。
    • BFS使用队列(Queue)数据结构进行实现。首先,将起始节点加入队列。然后,每次从队列前端取出一个节点,并检查其所有邻居。如果某邻居节点未被访问过,则将其标记为已访问并加入到队列的尾部。
    • BFS可以用来求解最短路径问题,例如在无权重的图中找到从起点到终点的最短路径。
  1. 深度优先搜索 (DFS):
    • DFS是一种先深入后回溯的搜索方式。从起始节点开始,不断深入到它的一个邻居,然后再深入到这个邻居的邻居,直到不能再深入为止,然后回溯并深入其他邻居。
    • DFS使用栈(Stack)数据结构或递归进行实现。从起始节点开始,持续探索每一条路径,直到该路径结束,然后回溯到前一个节点并探索其他路径。
    • DFS可能不总是返回最短路径,但它可以遍历图中的所有节点。
结论:
  • FS在搜索过程中看起来像从中心点开始的同心圆扩散开来。
  • DFS在搜索过程中看起来像沿着一个路径深入,当这条路走不通时则回溯,然后尝试其他路径。
通过表现上看,TOT架构能够极大的提高LLM推理性能,这种思路是结合了广度优先搜索的思路,促使即便静态化LLM也能够利用自己的程序做出最准确的推理。
以下是取自论文中的一个prompt,尝试让文心进行24点游戏。
  
  
  
  
  
  
Use numbers and basic arithmetic operations (+ - * /) to obtain 24. Given an input and an answer, give a judgement (sure/impossible) if the answer is correct, i.e. it uses each input exactly once and no other numbers, and reach 24.
输入: 4 4 6 8
答案: (4 + 8) * (6 - 4) = 24
判断: 肯定
输入: 2 9 10 12
答案: 2 * 12 * (10 - 9) = 24
判断: 肯定
输入: 4 9 10 13
答案: (13 - 9) * (10 - 4) = 24
判断: 肯定
输入: 4 4 6 8
答案: (4 + 8) * (6 - 4) + 1 = 25
判断: 不可能
输入: 2 9 10 12
答案: 2 * (12 - 10) = 24
判断: 不可能
输入: 4 9 10 13
答案: (13 - 4) * (10 - 9) = 24
判断: 不可能
输入: 4 6 8 10
在这个提示中,他利用了24点游戏的不同运算场景来让LLM进行推理,提高了LLM在数字运算的推理能力。TOT框架思路中有多个提示词模版,本文未详细列举,实际上在TOT框架的代码中有至少4个24点游戏的提示词。
我们可以将其想象为4个专家,4个专家大概率会得到不同的结果,最终将4个专家的答案 传给这个(上面截图) 【判断】的提示词模版,再由其进行判断。最终整体上的output将更加准确。
TOT框架的重点是思路的应用,在实际的业务应用场景中,我们可以利用这种TOT框架的思路,弥补LLM推理结果的不确定性和不准确性。
评论
用户头像