Graph of Thoughts (GoT) 简介
Graph of Thoughts (GoT) 是一个创新的大语言模型 (LLM) 提示框架,由 Maciej Besta 等人于 2023 年提出。GoT 通过将 LLM 生成的信息建模为图结构,使模型能够更灵活、高效地处理复杂问题。相比于链式思维 (Chain-of-Thought) 和思维树 (Tree of Thoughts) 等已有方法,GoT 在处理需要多维推理的任务时展现出明显优势。
核心特点
-
图结构表示: GoT 将 LLM 生成的"思维"单元表示为图中的节点,节点间的关系表示为边。
-
灵活组合: 允许任意 LLM 思维单元之间建立联系,实现更复杂的推理。
-
反馈循环: 支持通过反馈循环来增强和改进已有思维。
-
性能提升: 在多项任务上相比基线方法取得显著提升,如在排序任务上比 Tree of Thoughts 提高了 62% 的质量,同时降低了 31% 的成本。
学习资源
-
官方论文: Graph of Thoughts: Solving Elaborate Problems with Large Language Models
-
官方代码实现: GitHub - spcl/graph-of-thoughts
-
框架文档:
-
示例代码:
- 排序问题:
examples/sorting/sorting_032.py
- 关键词计数:
examples/keyword_counting/keyword_counting.py
- 排序问题:
快速上手
-
安装:
pip install graph_of_thoughts
-
基本用法:
from graph_of_thoughts import controller, language_models, operations # 创建操作图 gop = operations.GraphOfOperations() gop.append_operation(operations.Generate()) # 配置语言模型 lm = language_models.ChatGPT("config.json", model_name="chatgpt") # 创建控制器 ctrl = controller.Controller(lm, gop, ...) # 运行并输出结果 ctrl.run() ctrl.output_graph("output.json")
进阶应用
GoT 框架不仅可以用于解决标准问题,还可以扩展到更复杂的场景:
-
多模态推理: 结合文本、图像等多种数据类型进行综合分析。
-
长文本理解: 利用图结构组织长文本的关键信息,实现更好的文档理解。
-
创意写作: 通过构建复杂的思维图,生成更具创意性和连贯性的文本。
-
科学推理: 在复杂的科学问题中,利用 GoT 模拟人类的多角度思考过程。
总结
Graph of Thoughts 为大语言模型的推理能力开辟了新的可能性。通过学习和实践 GoT,研究人员和开发者可以更好地利用 LLM 解决复杂问题,推动 AI 技术向着更接近人类思维的方向发展。无论您是 AI 研究者还是应用开发者,GoT 都值得深入探索和应用。