在浩浩荡荡的生物进化史中,人类的祖先“幸运”的抽中了一张名为“智能”的彩票。智能的出现让人类拥有了思考的权力,而思维的思考所做的工作,无非又是推理二字。
大模型的出现,让人们对智能的人造建构从卷积神经网络、循环神经网络实现的“感知”层面走向“认知”,在认知功能中,大模型展示的最为重要的能力,可能就是推理。
从宏观层面而言,大模型推理能力的实现,是在解决问题的过程中通过构建一系列的推理节点(点)以及这些节点之间的依赖关系(边)来形成一个有助于推理的结构化图谱(这里就让我们叫它推理拓扑,Topologies of Reasoning),这个推理拓扑即可以是链状(CoT)、树状(ToT)结构,又可以是更复杂的图状(GoT)结构。
伴随着大模型的快速发展,通过使用 Prompt 工程叠加这类推理结构图谱的设计范式在提升模型推理能力、解决复杂任务方面展现出了巨大的潜力。为了加深对这一非常有趣又有前景的领域工作的理解,来自苏黎世联邦理工学院的学者们为我们深入细致的讨论了推理拓扑的基本概念、分类法与重要性,解构了思维之链、树与图的推理拓扑的本质,对“大模型的推理能力”来了一场酣畅淋漓的综述。
论文题目:
Topologies of Reasoning: Demystifying Chains, Trees, and Graphs of Thoughts
公众号「夕小瑶科技说」后台回复“思维链”获取论文PDF!
什么是推理拓扑?什么又是 Prompt?
从 Chat 到推理,大模型的发展从直接的一问一答逐渐走向了通过中间步骤来引导大模型走向问题最终答案的方向,大家耳熟能详的工作譬如思维链(CoT)、思维树(ToT)、思维图(GoT),以及众多 AI Agent 的工作譬如 AutoGPT、ReAct 以及 LLMCompiler等等。
如果为这一系列工作加上一条时间轴,那么可能会如下图所示,区别于直接的从 Input 到 Output 的输入输出,可以明显的看到复杂的“图形结构”,也就是这里所说的推理拓扑的形成。
在最基本的 Chat 模式中,大模式收到用户的 Prompt,中间不经过任何形式的推理直接“黑盒”式的给出答案输出。在这种基础模式上,2022 年 1 月,Jason Wei提出了思维链(CoT)的思想,在输入输出之间引入了分段的线性节点,以链条的形式串联了输入输出的推理过程。紧跟着 Jason Wei 的这篇“开山之作”,3 月,对 CoT 的改进版本——基于自洽性 self-consistency 的 CoT,CoT-SC 被提出,直观来看,CoT-SC 不仅仅生成一个思路链,而是生成多个思路链,然后取多数答案作为最终答案来改进 CoT 的效果,而从拓扑图的结构来看,相当于将 CoT 的单链扩展为多链。
而时间来到 2023 年,5 月普林斯顿领衔推出思维树(ToT),同期还有来自 Theta 实验室的 Large language model guided tree-of-thought 这篇。拓展自并行的多条思维链,ToT 搭建了一个树形结构打破了 CoT-SC 多链之间的独立性,通过树形结构,ToT 赋予了模型在多条推理链间进行搜索的能力。而很自然的到 8 月,从树形结构到图形结构的拓展——思维图(GoT)应运而生,树的结构被进一步泛化,任意两个推理节点间都有可能有推理链条将其相连,从而每个推理节点都可以有多个父节点与子节点,通过将这些节点进行聚合得到求解子问题的子图,组合完毕即构成问题的最终解决方案。
而如果进行归纳与总结,可以得到推理拓扑发展中的三大类拓扑结构:
- 链状拓扑(Chain-of-Thought):在这种拓扑中,思维的每一步都是线性连接的,形成一个链条。这种结构适用于那些可以通过一系列线性步骤解决的问题。
- 树状拓扑(Tree of Thoughts):树状拓扑允许在任何推理步骤中进行分支,从而探索不同的解决方案路径。这种结构适用于需要多个分支和选择的复杂问题。
- 图状拓扑(Graph of Thoughts):图状拓扑是最灵活的结构,它允许任意节点之间形成依赖关系。这种结构适用于需要动态规划和多个子问题组合解决的任务。
直接的,推理拓扑与大模型的 Prompt 过程相连,而一个完整的 Prompt 流程是什么样的?如下图所示:
Prompt 是人类与大模型沟通的最为关键的渠道,在人与大模型通过 Prompt 的不断交互中,从输入 Prompt 到输出 Replay,总体而言可以被分为以下几步:
由人类输入的 Prompt 首先经历一步预处理(1),添加一些“系统预设的 Prompt” 以及元数据,检查 Prompt 合规性并且基于某些策略提升扩展 Prompt 的内容完善其结构。接下来,在多轮互动的背景下,经历预处理的 Prompt 将被添加大模型的上下文内容(2),即多轮互动的历史 Prompt 以及回复。组合预处理后的 Prompt 以及模型的上下文内容,Prompt 被输入到大模型之中(3),并自回归的产生输出(4)。在得到模型的输出 Output 之后,根据模型不同的用途,Output 将被送入不同的后处理程序之中(5),并将处理好后的内容送入上下文的记忆中(6),接下来或直接的再次输入模型进行迭代(7)或直接返回输出给予用户(8)。
而组合这一整套的 Prompt 流程,合并各种组件最终完整的 Prompt 流水线构成了当下无论是以 Chat 还是以 Agent 模式人类与大模型互动的“基础设施”。
推理拓扑的本质
无论是思维链、思维树还是思维图,思维 Thought 一词似乎都是这些概念的核心,那么什么是思维呢?以 CoT 为例,CoT 套用这个概念主要指段落中的一段陈述包含着解决问题的推理过程中的一部分,在人与大模型的交互过程中,这种推理结构被完整的包含在了大模型的输出之中。而在 ToT 之中,思维本身似乎又主要指对初始问题的某种中间解决方案,而在 GoT 中,思维又变成了对原始任务的子任务分解。
基于各个工作对思维本身的不同定义,论文作者为思维本身给了一个正式化的定义:思维是任务求解步骤中的基本语义单位。在任务求解的过程之中,一步可以是一段陈述,一个计划,一段文本,一组文档或一系列数字,在论文中,作者使用“节点”来作为思维的抽象,而连接节点的“边”则是这些思维间的依赖关系。在思维节点 V 与依赖关系边 E 的基础上,推理拓扑被定义为 G=(V,E)的图,当任务目标是快速解决问题时,推理拓扑设计的目标可能就是让输入节点到输出节点之间的距离最小。在推理过程之中,思维节点本身可以是不同质的,从而推理拓扑图便形成了异构图,在现有文献中已经发使用一些异构图的图学习方法可以增强模型的推理能力。
宏观来看,推理拓扑可以分为两类,分别是方案拓扑与示例拓扑。方案拓扑指从对任务描述的输入节点到任务解决方案的拓扑结构,从输入节点出发可以找到一条路径到达最终输出的解决方案。而示例拓扑是在上下文示例中的拓扑结构,这种拓扑结构与最终的输入输出无关,而仅仅作为“示例”出现。如上图所示,方案拓扑常常扩展超出了 Prompt 之外,而示例拓扑则更多来源于单条的 Prompt,如果对这两类 Prompt 使用不同的表示形式,则有可能最大限度的优化减少其 token 的使用。
基于上述定义,大模型的完整推理结构被作者定义如下,任意一个拓扑结构由四个方面组成,分别是拓扑类,拓扑范围,拓扑表示与拓扑推导。拓扑类表示拓扑节点与边之间的连接方式,如下图(1)所示,总体而言可以分为链式拓扑、树式拓扑与图式拓扑。其中链式与树式都可以被视为图式的一种特例。
拓扑范围指从 Prompt 中可以抽出的拓扑结构的范围,表现为从 Prompt/回复/上下文 到拓扑结构的映射关系,以拓扑是否包含在单条 Prompt 之中作为分类法,可以分为单 Prompt 拓扑结构与多 Prompt 拓扑结构。拓扑表示主要指拓扑结构在 Prompt/回复/上下文中的表示形式,如下图(3)所示,可以分为隐式与显示两种。拓扑结构的最后一个方面拓扑推导主要指一个给定拓扑如何被从获得,如下图(4)所示,有自动或半自动与手动两类。
在定义好拓扑结构后,大模型开始依据推理拓扑完成推理,作为推理的“骨架”,如上图(4)中所示推理计划规定了如何探索拓扑结构,譬如深度优先搜索与广度优先搜索,并依次呼唤更高级的推理调度方法。而推理计划的载体被称为计划表示,主要指推理计划如何被输入“点出”,分为直接的文本描述与借助于上下文示例两种方案。最后,作为额外延申的(7)表示在上文的 Prompt 流水线中,除了单一的 Prompt 模式外,还有哪些工具被使用。
不同的推理拓扑工作
透过上节构建的蓝图,不同的思维链/树/图工作有了一个极佳的分类法带我们更好的理解具体的工作,如下图所示:
作者归纳整理了不同的大模型推理相关的工作的体系,顺着这个体系的思路,我们也跟着大致过一遍不同的推理拓扑工作。首先是推理拓扑的开山之作 CoT,CoT 的推理拓扑来源于单条 Prompt 的隐式表达,使用上下文中的拓扑示例作为推理表示。基于 CoT 延申出了不少思维链工作的扩展,譬如 PoT 使用代码作为示例加强可靠性,计划与分解 Prompt (PS)将复杂任务划分为子任务,然后以 Zero-show 的方式多步进行运行,符号链(CoS)使用压缩的符号来扩充上下文,再使用这些符号进行基于 CoT 的推理。
而对于树型拓扑,论文作者更加细致的将树形拓扑分为了 k元树,链树,一级树与二叉树如下图所示:
对比链式拓扑,树型拓扑的核心在于为不同的任务分解解决方案引入了探索与抽样,并基于投票选择最优的路径作为高质量的解决方案。链树的突出代表就是上文提到的 CoT-SC,通过多链的结构增强推理的可信选择,一级树被运用于思维骨架 Skeleton of Trought 之中,采用分治法生成解决方案的骨架,k元树作为树型拓扑最基础的架构,被广泛使用,并且许多树型拓扑的工作也在搜索模式上带来了许多创新,如基于随机波束搜索,不确定分数,混合树等等。
同样,作者也区分了不同图型拓扑的结构:
区别于树型拓扑,图型拓扑的关键在于引入了“聚合”的思想,通过不同子图之间的有效协同来加强模型的推理能力。其中,思维图(GoT)使用多 Prompt 方法以提高大模型的问题解决能力,通过将给定任务分解为子任务图(操作图,GoO)协调大模型的 Prompt 方式以及在推理过程中的使用。
在 CoT、ToT、GoT 间,作者讨论了三类基本拓扑的共性与差异,链式的拓扑以线性的逐步的方式指导大模型进行“一步一步的思考”,增强了推理过程的清晰性与可追溯性,而树结构在每个分支节点中引入了探索接下来几步解决方案的“可能性”,引导大模型推理走向结果更好的方法,使得模型拥有了探索潜在可能的解决问题路径的能力。最后图结构提供了一个泛化性最强的方案,将任意的推理步骤聚合到一个方案之中,允许非线性的问题解决方式。从成本角度出发,链式的拓扑效率往往更高更快,而树与图往往要消耗更多的计算资源与处理时间,而从质量上来说,基于树与图的模式要优于链式的方案,树与图赋予了大模型探索性的思考与跳跃式的聚合转换的能力,使得模型拥有了解决非常复杂的问题的潜力。
最终,统一各种推理拓扑的不同优势,一个优秀的大模型推理架构总体而言可以被分为生成器、评估器、中止器以及控制器四个部分。生成器头脑风暴式的产生新的 idea 作为思维节点,而评估器则对这些节点进行估分评价这个 idea 的好坏,中止器确定目前对这个问题的探索是否足够当前的解决方案是否可以令人满意的解决目标问题,而控制器则作为一个“项目经理”协调各方推理问题的解决。
未来与总结
如果不考虑大模型,也不考虑智能如何被计算表达,人类的推理能力大致可以被分为四类,分别是演绎、归纳、类比与溯因。演绎推理从抽象的知识到一般的结论,不违背逻辑可以保真,归纳推理从特殊的经验到普遍的结论,完成信息抽取与信息压缩,类比推理类似一种“迁移学习”,可以利用已知的知识对未知的领域做出判断,而溯因推理则将结果与原因连接,搭建起对现象的解释。
如果从人类的推理能力“反观”推理拓扑,或许我们就可以看到大模型在“逼近”人类的推理能力这一点上前进的有多远。所谓“解决问题”,其本质就是利用已知的信息“Prompt 中的问题描述,完成人物的要求,类似任务的解决方法”去推得未知信息,也就是问题的答案,而推理拓扑本质上似乎为大模型的推理提供了一个思考模板,类似思维链,让大模型罗列出自己已知的知识,读取 Prompt 的信息,类比相似的示例,归纳出组织材料的方式,最终进行演绎直到得到答案本身。
而思维树的拓展进一步为大模型的思考带去了“可能性”,让大模型得以在树形结构间进行试错,最终迭代几轮找到正确答案,而更加泛化的思维图则在不同的问题(子图)之间组合起了统一的桥梁,让大模型有可能通过溯因的方式“灵光乍现”。
而这么看,推理拓扑的作用似乎就更加类似于连接人脑想法的神经元通路,对我们打通逻辑推理的种种环节,有趣的是,这篇出色的综述也颇为完美的运用了人类智能的四种推理,从一系列思维链,思维树,思维图的研究中归纳总结,得出了“推理拓扑”的抽象,再从抽象的概念往下,详细的叙述了关于大模型推理能力的林林总总。当然碍于篇幅综述中关于当下工作的详细讨论在文中一笔带过,也期待对 大模型推理感兴趣的大家阅读原文感受这篇精彩的综述。
最后,面向未来,综述作者归纳了未来有前景的研究方向,大家一起来看看吧!
-
探索新的拓扑结构,除了链、树与图以外,一些更加复杂的拓扑结构如团、密集子图、超图、超边等的应用有可能会为推理的研究带去有趣的结果;
-
在单 Prompt 下的显示表示目前尚未得到充分的研究,以什么样的方式(如邻接矩阵)显示表示推理计划有可能会极大的影响大模型的推理效率;
-
自动推导树/图的拓扑形式?自动化的确定树/图的形式将会带来更加高效的推理模式;
-
单 Prompt 方案,尽管树/图带来了更高的质量,但是更快的链式结果的探索有可能带来更广泛的应用;
-
更好的调度算法,目前广度优先搜索、深度优先搜索等的算法有时可能并不是最高效的搜索算法,新的更好的推理调度算法将会带来更高的推理效率;
-
新的图?是否存在一种探索更高效的图型拓扑也是未来一个非常有意思的方向;
-
图算法与图推理的集成,将图相关的算法与基于图的推理进行集成可以提供更强的表示与调度;
-
多模态推理,与目前如火如荼的多模态大模型结合,探索在多模态信息输入下如何更好的进行推理;
-
Prompt 中的检索增强,集成外部的数据库与知识库在 Prompt 之中可以扩大大模型输出的范围和深度;
-
并行化?Prompt 的并行化增强了推理的效率,而这一领域仍然大有可为
-
与复杂系统结合,如何将复杂的系统数据整合到推理之中也是未来方向之一;
-
硬件加速,对于支撑模型推理的硬件进行加速也将深刻的改变这一领域。
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
![](https://img-blog.csdnimg.cn/img_convert/0dc35641cd2d85e39db6e8cb368fa5cb.png)