Graph of Thoughts — 思想图

From Systems analysis wiki
Jump to navigation Jump to search

Graph-of-Thoughts (GoT) 是一个在大型语言模型LLM,Large Language Models)领域中的概念,它将模型的推理过程表示为一个由相互关联的“思想”(解决问题的中间步骤)组成的任意图[1]。该方法由苏黎世联邦理工学院(ETH Zurich)的 Maciej Besta 领导的一组研究人员提出,并于 2024 年在 AAAI 会议上发表[2]。Graph-of-Thoughts 的目标是扩展提示工程(prompt engineering)的能力,超越现有的方案,如 思维链(Chain-of-Thought)和 思维树(Tree-of-Thoughts)[1]。与它们不同,GoT 方法允许模型生成的任何推理片段(思想)引用任何其他片段,从而形成一个思想网络,而不是严格的线性或树状结构[3]。研究者称,这更准确地反映了人类思维复杂、非线性的特点,并可能使 LLM 的推理机制更接近人脑的工作方式(及其循环神经连接)[1][1]

Graph-of-Thoughts 是一种提示框架(prompting framework),这意味着它不需要对模型本身进行额外的训练或微调。相反,它以一种特殊的方式组织与 LLM 的对话,引导模型通过一系列按图结构连接的“思想”步骤[1]。这种结构允许组合和重用不同的推理分支:例如,模型可以并行考虑多个假设或问题的不同部分,然后将最成功的那些合并成一个统一的解决方案[1]。从百科全书式的角度来看,Graph-of-Thoughts 可以被定义为对先前 LLM 结构化推理策略的泛化,它在单个复杂查询中为组织思维过程提供了最大的灵活性[1]

背景:Chain-of-Thought 与 Tree-of-Thoughts

Graph-of-Thoughts 方法源于早期在与语言模型交互时使用明确推理结构的方法。基础方法是思维链(Chain-of-Thought, CoT)。在 CoT 方法中,用户不仅需要在向模型发出的提示中包含问题本身,还要包含导向答案的中间推理步骤[1]。研究表明,这种信息呈现方式显著提高了 LLM 解决复杂问题(如数学题或逻辑谜题)的能力,且无需改变模型本身的参数[1]。实际上,CoT 促使模型将复杂问题逐步分解为更简单的阶段,模拟了 последовательный的思维过程。

这一思想的进一步发展是自洽性(Self-Consistency)技术:系统生成多个独立的思维链,而不是单个思维链,然后选择其中最具说服力的一个[1]。这使得模型可以考虑不同的解题方法,并减少因遵循单一错误推理路线而导致答案错误的的风险。然而,即使是多个 CoT 链也无法“整合思想”:每个链都被孤立地考虑,模型只是选择最好的一个,而不组合它们的内容。

为了克服这一局限,研究者提出了思维树(Tree-of-Thoughts, ToT)方案[1]。在 ToT 中,推理过程被组织成一棵树:在每个节点,模型可以生成多个思维发展的变体(分支),然后评估这些中间状态,并选择最有希望的进行深入探索[1]。通过使用树搜索算法(如广度优先搜索 BFS 或深度优先搜索 DFS)以及回溯到节点并发展另一分支的能力,ToT 为语言模型提供了比线性 CoT 更强大的解决复杂问题的机制[1]。这带来了新的可能性,例如回溯和修正:如果一个分支走入了死胡同,可以返回到前一个节点尝试另一条路径[1]。该方法在解决逻辑和搜索问题方面证明了其有效性,因为在这些问题中,多方案的探索和规划起着重要作用。

然而,思维树也施加了严格的限制:每个思想(树节点)只属于一个分支,交互仅发生在父节点和子节点之间,不同的分支不能合并或交换信息[3]。换句话说,在单个解决方案中,不同假设之间的思想交叉授粉(cross-pollination)变得困难:树的分支独立发展,仅在选择最佳推理链时才在根部汇合[3]。而在现实的创造性或分析性思维中,人们常常会回到之前考虑过的想法,并将其与另一推理分支相结合。这种思想的交织超出了树结构的范畴[1]

这些观察引导研究人员思考一种更灵活的结构——图,其中思想之间的连接不受限制,可以形成复杂的网络。正如 2024 年的一篇分析综述所指出的,思维链、思维树和思想图的出现,反映了一类新方法的诞生,这些方法能够通过明确地构建推理过程来显著增强 LLM 的能力[4]。特别是,结构化提示在许多领域显著提升了 LLM 的表现——从解决数学问题和逻辑谜题到规划,甚至创造性写作[4]。正是在这一大背景下,Graph-of-Thoughts 作为结构化提示方法的下一步发展应运而生。

Graph-of-Thoughts 概念:思想的图结构

Graph-of-Thoughts 提议将语言模型执行任务的过程表示为一个任意的有向图。形式上,GoT 中的思想图是一组顶点(思想)和边(思想之间的依赖关系)的集合[1]。图的顶点是模型的单个思想——该术语指的是任何依赖于任务上下文的有意义的单元:它可以是一个独立的陈述、一个解决步骤、一段文本、一个段落、一个代码块等,由模型响应提示而生成[1][1]。顶点之间的边表示一个思想在生成另一个思想时被使用——即,提示中明确指出模型应依赖于某个先前结果来获得新结果[1]。因此,边记录了依赖关系:当前推理步骤依赖于哪些先前获得的数据。

GoT 与更简单结构最重要的区别在于思想的聚合与合并能力。在图中,一个顶点(新思想)可以有多个前驱节点[1]。这对应于两个或多个独立的推理链被合并的情况:模型接收多个先前生成的片段作为输入,并基于它们形成一个综合的输出[1]。例如,在解决一个问题时,模型可以并行考虑两个假设,然后创建一个新思想,该思想结合了两个假设的优点并消除了它们的缺点[1][1]。这类聚合操作在树状结构中是不可能的(因为每个节点只有一个父节点),但在图结构中则可以自然实现[1]。除了思想的合并,图结构还允许引入反馈循环(feedback loops):原则上,GoT 的结构不禁止循环,这意味着模型可以将某个结果返回到推理的早期阶段进行重新处理或 уточнение[1]。作者将此与人脑神经网络中的循环连接类比,其中一组神经元的输出可以反向影响前几层,形成封闭的思维回路[1]

在实践中,实现 Graph-of-Thoughts 需要对与模型的对话进行特殊组织。研究人员为 GoT 开发了一个模块化架构框架[1]。该框架包含以下组件:(1)对单个步骤(思想)的精细控制——“控制器”管理思想生成的顺序和逻辑;(2)动态构建提示——对于每个步骤,一个专门的模块根据当前上下文和选定的图顶点(前驱节点)生成提示;(3)解析和评估模型响应——对从 LLM 收到的片段进行分析,并根据质量、有用性或任务标准进行评估[5]。因此,GoT 架构允许以交互方式构建推理图:在每个步骤之后,决定添加哪些新顶点,如何将它们与先前的顶点连接,以及继续或合并哪些分支。得益于其模块化特性,该框架可以通过新的“思想转换”类型(例如,特殊的图操作)进行扩展,并适配不同的模型(作者成功地在 GPT-3.5、GPT-4、LLAMA 2 等 LLM 家族上测试了 GoT)[1]。一个重要的特性是,GoT 不需要修改语言模型本身的参数——所有的性能提升都是通过更智能地构建提示和处理响应来实现的[1]。这意味着现有的强大 LLM 可以“按原样”使用,而 Graph-of-Thoughts 则作为管理其工作的上层结构。

值得注意的是,Graph-of-Thought 这一术语也出现在另一个独立的研究中,该研究与 Besta 及其同事的方法不同。2023 年,Yao Yao 及其合著者提出了一种通过附加的思想图编码器模块来提升 LLM 推理能力的方法,但这需要对模型进行微调[6]。他们的论文《Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models》描述了一个两阶段架构:首先生成一个相互关联的中间陈述图,然后通过一个专门的编码器对其进行转换,并通过门控融合机制(gated fusion)集成到模型中[6]。这种需要训练的混合方法在某些任务上显示出了一定的准确率提升,例如,在多模态问题集 ScienceQA 上,使用 T5-base 模型时,准确率从 85.2% 提高到了 87.6%[6]。然而,这种方法虽然名称相似,但在原理上根本不同:它需要修改模型(fine-tuning),并且不属于提示工程方案。原始 GoT 方法(AAAI 2024)的作者明确指出,他们的工作不考虑 Yao 等人的模型,因为他们专注于无需更新 LLM 参数的方法[1]。因此,在本综述的语境中,Graph-of-Thoughts 正是一个提示层面的框架,而不是对神经网络架构的修改。

应用与结果

GoT 的作者在一系列难以通过单一直接提示(input-output prompting)甚至思维链解决的任务上展示了其优势。这类任务的典型特征是,它们可以被分解为多个部分(子任务),这些子任务可以独立解决,然后将部分结果合成为最终答案[1]。研究中考虑的例子包括:对无序列表进行排序、统计文本中的关键词(例如,用于文档摘要)、执行集合操作(如列表的并集、交集等),以及合并文本文档(整合来自多个来源的信息)[1]。在所有这些情况下,Graph-of-Thoughts 都能自然地分解任务。例如,对于排序任务,列表被分成几个部分,每个部分作为独立的思维分支单独排序,然后将结果合并(类似于归并排序算法);或者在文本分析中,模型可以并行地从不同文档中提取信息,然后再将其汇总。

实验结果证实了 GoT 方案的有效性。根据 Besta 及其同事的报告,在排序任务中,思想图相比之前的方法显著提高了解决方案的质量[1]。具体来说,使用 GoT 的排序准确率比简单的 CoT 思维链高出 70%,比 ToT 思维树高出 62%[1]。同时,该方法减少了计算资源的消耗:对于同一任务,模型调用的次数(以及相应的 tokenized 请求量)比 Tree-of-Thoughts 降低了 31%[1]。这意味着图结构的推理不仅改善了最终结果,还通过巧妙地组合中间结论,避免了冗余计算,使解决方案更加经济。在其他测试任务中也获得了类似的收益,尤其是在需要聚合异构信息的任务中。研究人员指出,GoT 对于由多个元素组成的复合任务尤其有效:“Graph-of-Thoughts 特别适用于那些可以自然分解为更小子任务,独立解决后再合并结果的任务”[1]。在这种情况下,思想图能够涵盖问题的所有方面,并合成比遵循单一推理路线更全面的解决方案。

为了更深入地理解为什么一种提示构建方式优于另一种,2024 年的这项工作提出了一个专门的度量标准——“思想的容量”(volume of a thought)[1]。容量是为每个单独的思想(图的顶点)定义的,其值为可以通过有向边到达该思想的其他思想的数量(简单来说,它从多少个中间步骤中获得了信息)[1]。在思维链中,任何思想都只依赖于一个前驱节点,因此其容量为 1(线性链)。在思维树中,容量可能更大,但仍受限于单个分支的结构。而在图中,由于聚合的存在,单个顶点可以汇集来自许多其他顶点的贡献——其“容量”显著更高[1]。研究表明,GoT 允许最终结论基于更大容量的先前思想,并整合其内容。这一事实反映了对解空间的更深层次覆盖,并为图推理相对于更简单方案的优势提供了量化解释。

比较与意义

Graph-of-Thoughts 是迄今为止 LLM 结构化提示泛化的形式。在各种方案(CoT、带自洽性的 CoT、ToT 和 GoT)的比较表中,强调只有 GoT 支持任意拓扑的思维过程[1]。它包含了所有先前方法的功能:如果任务需要,它可以像单条链一样工作,也可以像带分支的树,或者像多条链的组合[1]。最重要的是,它对步骤之间的连接没有硬性限制,这在理论上使得可能的推理策略空间最大化[1]

需要理解的是,GoT 的灵活性是以更复杂的控制为代价的。实现思想图需要一个外部的编排器算法,该算法决定何时以及生成哪些思想,选择或组合哪些思想,以及何时停止过程并给出答案。在简单的 CoT 中,不需要做这些决定——模型自己生成线性推理直到结束。在 ToT 中,部分控制权交给了树搜索算法(例如,选择要扩展的节点)。而在 GoT 中,自由度更高,方法的有效性取决于评估中间结果的启发式算法的质量,以及在每个步骤中正确构建提示的能力[1]。因此,Graph-of-Thoughts 不仅可以被视为一种提示格式,更可以看作是施加在与 LLM 交互过程之上的推理结构——一种动态计划,模型根据该计划解决问题,而用户(或控制器程序)则引导这个过程。

Graph-of-Thoughts 的出现反映了使大型语言模型的工作更加可解释和可控的趋势。通过明确设定解决方案的结构,研究人员不仅获得了更好的质量,还能够分析模型是如何得出某个结论的。这将自然语言处理(NLP)的方法与经典的算法搜索和规划方法拉近了距离,只不过现在执行步骤的任务交给了神经网络模型。一些专家认为,结构化提示(思维链、思维树、思想图)是一个有前途的方向,能够克服深度模型中的“黑箱”限制,并提高其在复杂任务上的工作可靠性[4][4]

Graph-of-Thoughts 的方法论仍在积极发展。作者们已将 GoT 的实现代码和示例开源[1],这使得社区能够试验这种新方法。新的扩展也在不断出现:例如,结合文本与图像及其他数据类型的思想图的多模态版本[3][3],以及将 GoT 的思想直接集成到模型架构中的尝试(如前述 Yao et al., 2023 的工作)。2025 年,一篇关于思维链、思维树和思想图方法的详细综述与分类法发表,系统化了已有的知识,并描述了这些方法的理论基础[4][4]。所有这些都表明科学界对结构化控制 LLM 思维的浓厚兴趣。Graph-of-Thoughts 已经证明自己是解决复杂问题的有效工具,并可能成为未来 AI 解决方案创新的基础,这些解决方案将结合大型语言模型的强大能力与经典算法的透明度和逻辑性。

链接

参考文献

  • Besta, M. et al. (2024). Graph of Thoughts: Solving Elaborate Problems with Large Language Models. arXiv:2308.09687.
  • Yao, S. et al. (2023). Tree of Thoughts: Deliberate Problem Solving with Large Language Models. arXiv:2305.10601.
  • Yao, Y. et al. (2023). Beyond Chain-of-Thought: Effective Graph-of-Thought Reasoning in Language Models. arXiv:2305.16582.
  • Wei, J. et al. (2022). Chain of Thought Prompting Elicits Reasoning in Large Language Models. arXiv:2201.11903.
  • Wang, X. et al. (2022). Self-Consistency Improves Chain of Thought Reasoning in Language Models. arXiv:2203.11171.
  • Wei, J. et al. (2024). Demystifying Chains, Trees, and Graphs of Thoughts. arXiv:2401.14295.
  • Huang, S. et al. (2023). Language Is Not All You Need: Aligning Perception with Language Models (Kosmos-1). arXiv:2302.14045.
  • Mitra, C. et al. (2024). Compositional Chain-of-Thought Prompting for Large Multimodal Models. In CVPR 2024. PDF.
  • Zheng, G. et al. (2023). DDCoT: Duty-Distinct Chain-of-Thought Prompting for Multimodal Reasoning in Language Models. arXiv:2310.16436.
  • Mu, J. et al. (2023). Learning to Compress Prompts with Gist Tokens. arXiv:2304.08467.

注释

  1. 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35 1.36 1.37 1.38 1.39 1.40 1.41 1.42 1.43 Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». ar5iv.labs.arxiv.org. [1]
  2. Besta, Maciej et al. «Graph of Thoughts: Solving Elaborate Problems with Large Language Models». arXiv. [2]
  3. 3.0 3.1 3.2 3.3 3.4 Grygiel, Jacek. «Multimodal Graph-of-Thoughts: How Text, Images, and Graphs Lead to Better Reasoning». Deepgram. [3]
  4. 4.0 4.1 4.2 4.3 4.4 4.5 Wei, Jason et al. «Demystifying Chains, Trees, and Graphs of Thoughts». arXiv. [4]
  5. Wo, Jacek. «LLMs Graph of Thoughts Framework. Case study». Medium. [5]
  6. 6.0 6.1 6.2 Yao, Yuqing et al. «Beyond Chain-of-Thought, Effective Graph-of-Thought Reasoning in Language Models». arXiv. [6]

Category:Graph theory