从CoT到Agent,最全面的评测都在这里!提交产品
论文题目:点燃语言智能: 从思想链推理到语言代理的搭便车指南
论文链接:https://arxiv.org/pdf/2311.11797.pdf
项目地址:https://github.com/Zoeyao27/CoT-Igniting-Agent
与上次简单介绍AI Agents不同,基于论文,这次我们将从以下七个问题开始讨论CoT和AI Agents的概念:
1.什么是CoT?
在介绍什么是思想链CoT之前,我们先从两个更大的概念开始。
首先,什么是“语言智能”?语言智能可以理解为“使用基于自然语言的概念来‘理解’经验事物并在概念之间进行‘推理’的能力”。毫无疑问,人类是已知的唯一拥有这种高级抽象概念的生物。从另一个层面来说,语言智能也是人类区别于动物作为“智能物种”的标志能力之一。
随着参数数量的增加,基于Transformer 的大规模语言模型逐渐以“聊天”的形式展现其概念理解和概念推理能力。直观上不难理解,作为“语言模型”的大模型具有理解概念的能力,但就像Word2vec一样,我们只能得到这样的结论:“王”与“人”之间的“距离”是更近,对于语言智能来说必然更远。还远远不够。
真正引发人们对逼近“语言智能”的大模型无尽想象的是大模型所展现的概念推理能力。推理一般是指根据几个已知前提推导出新结论的过程。与理解不同,推理通常是一个“多步骤”的过程。推理的过程可以形成非常必要的“中间概念”。这些中间概念将有助于解决复杂的问题。
2022年,Google在发表的论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Models》中首次提出,通过让大模型逐渐参与到将复杂问题分解为逐步的子问题和子问题的过程中,可以显着提高大模型的性能。依次解决它们。这一系列推理的中间步骤称为思维链。
与传统Prompt将输出从输入直接映射到输出不同,CoT完成了从输入到思维链再到输出的映射,即推理链——输出。如果使用CoT 分解Prompt,则可以更详细地观察CoT 的工作流程。
如上图所示,一个完整的包含CoT的Prompt通常由三部分组成:指令(Instruction)、逻辑基础(Rationale)和示例(Exemplars)。一般来说,指令用于描述问题并告知大模型的输出格式。逻辑基础是指CoT的中间推理过程,可以包括问题的解决方案、中间推理步骤以及与问题相关的任何外部知识,而示例是指为少数样本方法提供的基本格式大型模型的输入输出对。每个例子包含:问题、推理过程和答案。
根据是否包含示例,CoT可以分为Zero-Shot-CoT和Few-Shot-CoT。上图中,Zero-Shot-CoT 没有添加示例,只是在指令中添加了一句经典的“Let's think step”。 Few-Shot-Cot在例子中详细描述了“解题步骤”,让模型模仿猫画虎获得推理能力能力。
2. 为什么使用CoT?
自CoT问世以来,CoT的能力已经被无数作品验证。如果我们对使用CoT的好处进行总结的话,可以归纳为以下四点:
增强大模型的推理能力:CoT通过将复杂问题分解为多步子问题,显着增强了大模型的推理能力,同时也最大限度地减少了大模型忽略解决问题“关键细节”的现象。使计算资源始终分配到解决问题的“核心步骤”;
增强大模型的可解释性:相比于向大模型输入一个问题,大模型只为我们输出一个答案,CoT让大模型向我们展示“问题产生的过程”,以便我们更好地判断问题是否存在。大模型正在解决这个问题。目前的问题是如何运作的?同时,“问题步骤”的输出也为我们定位错误步骤提供了依据;
增强大模型的可控性:通过让大模型一步步输出步骤,我们可以通过这些步骤的呈现对解决大模型问题的过程产生更大的影响,防止大模型成为不可控的“完整黑匣子”;
增强了大型模型的灵活性:只需添加一句“让我们一步一步思考”,就可以在现有的各种大型模型中使用CoT方法。同时,CoT对大型模型逐步思考的能力不仅限于“语言智能”,它在科学应用和AI Agent的构建中很有用。
3.什么时候应该使用CoT?
什么时候应该使用CoT实际上是一个悬而未决的问题,但本文从“工程”和“理论”两个角度为我们带来了对CoT适用场景的一些见解。
首先,从工程角度来看,CoT的适用场景可以概括为三点,即使用大型模型(1)、需要复杂推理的任务(2)、参数数量的增加不能显着提升模型性能(3)。此外,现有的论文实验也表明,CoT更适合复杂的推理任务,比如计算或编程,不太适合简单的单项选择、序列标注等任务,并且CoT不适合那些规模较小的任务。参数量。模型(20B以下),在小模型中使用CoT极有可能会出现机器幻觉等问题。
从理论角度来看,Stanford 《Why think step-by-step? reasoning emerges from the locality of experience》 的一篇论文揭示,当大型模型的训练数据呈现出如上图所示的变量的局部簇结构(Local Clusters of Variables)时,CoT 将表现出优异的结果。变量的局部聚类主要是指训练数据中变量之间的强交互作用和相互影响。
此外,有研究指出,当给予大模型的例子彼此不相同时,也有助于提高CoT的性能。同时,逻辑基础是否与问题相关以及逻辑推理步骤的顺序也会显着影响CoT的性能。另一个有趣的发现是,使用代码数据训练大型模型或使用符合CoT 格式的数据训练模型也有助于提高CoT 的性能。总计:
CoT应该用于参数大小超过20B的模型,并且模型的训练数据应该与任务问题相关并且相互之间有很强的联系。
4. CoT为何生效?
关于CoT 为何生效,目前还没有被广泛接受的普遍理论。然而,有很多论文对CoT 与大型模型的交互进行了一系列实验。类似于物理实验与物理理论的关系,实验中一些有趣的现象或许可以帮助我们理解CoT的工作原理:
模型尺寸过小会导致CoT 失败;
简单任务CoT不会提高模型性能;
训练数据内部互联程度的增加可以提高CoT的性能;
示例中的错误或无效的推理步骤不会导致CoT 性能下降;
……
如果我们对这些现象做一些总结和延伸,我们可能会认为:首先,CoT需要大模型具备一些“最基本”的知识。如果模型太小,大模型就无法理解最基本的“原子知识”,也就无从谈起推理;其次,利用CoT可以在它理解的一些基础知识之间架起一座桥梁,让已知的信息形成一条“链”,这样大模型就不会中途误入歧途;最后,CoT的作用可能是强制模型进行推理,而不是教导模型如何完成推理。大型模型在完成预训练后就已经具备了推理能力,而CoT只是给模型指定了一种输出格式,对模型进行标准化,让模型一步步生成答案。
5、CoT正在朝什么方向发展?
CoT问世一年多的时间里,CoT也开始从最简单的“我们一步步思考”开始慢慢演变。作为回顾,本文也比较全面地总结了CoT的发展方向和演进路径。如果我们需要通过图片搜索CoT的现有文献,可以从下图开始:
总的来说,CoT的发展主要有3条路径,如图从左到右所示:“提示模式”、“推理结构”和“应用场景”。从这三个主要发展方向出发,我们总结一下主要论文:
提示方式
首先,有提示模式。上图最左边,Prompt模式主要研究“可以给大模型输入什么样的提示,让大模型获得更好的推理能力”。对Prompt模式的研究也可以分为两类。它们是指令生成和示例生成。
关于指令生成问题,可以分为手动指令生成和自动指令生成。显然简单的“让我们一步一步思考”属于手动指令生成模式。此外,另一种手动指令生成模式是Plan-and-Solve。该方法的主要思想是让模型制定一个计划,将任务划分为更小的子任务,然后让模型一步步执行计划并解决问题。提示是“让我们先了解问题并制定解决问题的计划。然后,让我们逐步执行计划并解决问题”。
显然,手动指令生成无法适应复杂的实际情况,因此自动指令生成应运而生。自动指令生成有两个。。作品,即自动提示工程(APE)和提示优化(OPRO)。如上图所示,APE OPRO的核心思想是设计一种机制,让大模型通过观察每个候选提示在实际任务中的表现,并最大化性能分数,自动选择最优提示。

同样,示例生成也可以分为手动示例生成和自动示例生成。传统的Few-Shot-CoT是典型的手动示例生成方法。基于Few-Shot-CoT,一种允许使用大型模型的方法手动生成的示例多次回答问题,然后根据熵、方差等不确定性度量以及ActivePrompt选择“最不确定”的问题通过手动注释增强示例生成的方法诞生了,成为介于手动示例生成和自动示例生成之间的示例生成方法。为了完全“自动化”示例生成,提出了Auto-CoT方法。具体来说,Auto-CoT分为两个阶段:(1)问题聚类,对任务数据集进行聚类(2)示例采样:从每个聚类中心选择一个有。。性的问题,使用Zero-Shot-CoT生成思维链作为例子。
推理结构
除了研究“什么样的提示会诱发更好的CoT能力”之外,大量研究人员也在关注CoT本身的结构性问题。主要研究思路包括“CoT构建”、“推理聚合”和“CoT验证”。
CoT结构主要将传统的线性、链式CoT转换为表、树、图格式。。。作品有非常著名的PoT、Tab-CoT、ToT和GoT-Rationale。下图非常清楚地显示了这一点。这四种方法的异同:
第一个是PoT,其中P指的是Programm。 PoT的想法也很简单。对于思维链中大模型中可能出错的一些计算问题,大模型可以生成编程语言并在解释器中运行,将复杂的计算与模型的文本生成解耦。
第二种是Tab-CoT,其中Tab指的是Tabular表格。在ToT中,研究者强制大模型在推理的每一步中记录一个“步数子问题过程结果”的推理表,并让大模型在推理时从生成的表中提取答案,从而增强大型模型的推理能力。
另外就是ToT,其中T指的是Tree,也就是思维树。简单的理解就是将CoT的链式结构扩展为树形结构。 ToT允许大模型在解决子问题时生成多个不同的答案选择。通过这样建立起来的树形结构使得大模型可以展望未来来确定下一步的决策,并通过回顾来纠正历史决策。
基于ToT的思想,将Tree扩展为Graph,形成GoT。 GoT系统的核心在于“控制器”。控制器处理图操作(GoO)和图状态推理(GRS)。 GoO用于对给定任务进行图分解,将一个任务分解成相互关联的节点边关系,而GRS则负责维护大模型在GoO生成的图上的推理过程,记录当前步骤的状态、决策历史和其他信息。
除了各种XoT之外,针对推理过程的“解码”问题也进行了一些工作。其中,推理聚合的。。工作是Self-consistency CoT。自一致性CoT使用手动设计的Prompt来生成并采样一组不同的推理路径,然后使用“多数投票”来找到推理步骤中“最一致”的路径。该解码路径用于驱动原有的贪婪解码方法,以提升CoT性能。
最后,在推理结构的研究中,还有另一种CoT验证。 CoT验证开始侧重于让大模型通过多轮问题进行“自我验证”,让大模型在前后重复的问题和答案中验证自己。随着CoT验证的发展,一些工作开始引入“外部工具”来验证CoT中的信息,例如信息检索、计算器、计算机程序等。
CoT验证最经典的工作就是自我验证。自验证有两个步骤,即(1)对多个候选推理路径进行采样; (2)给定问题的结论,让大模型验证条件是否满足结论,并根据验证分数对候选结论进行排名。
应用场景
除了CoT本身的改变之外,还有很多工作是将CoT“部署”在不同的应用场景中,以提高大模型在各种场景下的能力,比如最简单的从单语言CoT到多语言CoT的扩展。这些应用场景包括从单一模态到多模态、从复杂推理任务到通用推理任务的扩展。其中,多模态CoT具有巨大的应用前景。在CoT中,多模态可以分为两类:输入多模态和输出多模态。
其中,MM-CoT是第一个关于输入多模态研究的工作。 MM-CoT专注于使用微调方法来嵌入CoT。通过将语言和图像合并在包括推理生成和答案推理的两阶段框架中,使用微调。大型模型能够输入多模式CoT。 GoT-Input方法基于MM-CoT,通过提取CoT生成的思维导图来构造三元组,并使用GNN统一文本、图像和CoT,生成包含CoT信息的最终答案。与输入多个模型不同,VCoT解决了输出多个模态的问题。 VCoT以生成图像的“标题”和识别核心关注点作为图像生成的起始过程,并递归地填充图像信息以实现输出。多式联运。
除了多模态CoT 之外,CoT 还被应用于文本摘要(SumCoT)、开放域问答(Self-Prompting LLMs)、机器翻译(MAPS)、化学(ChemCrow)、医学(Med-PaLM)等领域), ETC。
6. CoT和AI Agent有什么关系?
回顾我们上一篇文章介绍的Agent的定义,我们期望通过各种AI技术构建的Agent实际上是一种能够独立发现问题、确定目标、构思计划、选择计划的“自主智能实体”。执行计划并检查更新。基于大模型解决问题的“通用性”以及预训练获得的“先天知识”,构建的大模型智能体可以认为具有如下所示的结构:
上图中的大模型Agent主要由三部分组成,分别是Agent主体、工具和环境。当人类指令输入到Agent时,Agent使用工具通过一系列计划、决策和控制与外部环境进行交互。
显然,作为Agent主体的大模型是模拟人类智能决策过程的核心。在Agent需要处理的许多任务中,Agent的“先天知识”并不包含任务的直接答案,因此Agent需要通过一系列方式与外界进行交互。在环境的交互循环中,制定计划、做出决策、执行行动、接收反馈……在规划、决策、控制的整个循环中,大型模型需要具备“如下图所示,CoT可以从这三个方面“赋能”Agent。
感知CoT
无论是环境的反馈还是人类的指令,Agent都需要完成一个“理解”接收到的信息,根据获得的理解识别意图,并转化为下一个任务的过程。 CoT的使用可以极大地帮助模型“感知”现有的输入。例如,通过使用提示“Answer: Let's think step by step. I see $, I need to.”,模型可以逐渐关注接收到的输入。信息,更好地理解信息。再比如,在机器人控制场景中,Agent的决策难免会出现错误,而接收错误信息的反馈可以让Agent了解错误的原因并调整自己的动作,这也是一种Agent应用。感知CoT作为动态场景下多轮决策任务的关键能力,也将增强模型的自我修正能力。
另外,值得注意的是,与外部环境的交互需要Agent具备处理多模态信息的能力。这种能力要么要求Agent本身是一个大型的多模态模型,要么需要Agent能够将其他模型信息转换成语言来理解。非常有趣的问题之一是“大型模型代理只能具有以语言为中心的感知吗?”如上图所示,实际上有很多工作不仅将大型模型编码扩展到以语言为中心的感知中的其他模态。信息能力,也发展出了以图像为中心的感知方法,真正的以多模态为中心的文字与图像统一的感知方法。但由于多模态信息带来的数据、计算、可扩展性等方面的各种问题,真正以多模态信息为中心的感知时代尚未到来。
内存CoT
一般来说,大型模型智能体通常同时具有短期记忆和长期记忆能力。短期记忆一般是一种在Agent的多轮交互中可以灵活改变的时间信息(因此也称为工作记忆)。短时记忆为大型模型提供了更直接的上下文信息支持,因此自然可以构建出历史动作链的模型。
与短时记忆的“动态性”相比,长时记忆提供了更多历史。。中静态信息的记录,是对历史知识更加宏观、抽象的理解。长期记忆可以依赖大型模型中的可训练参数。还可以从外部维护的内存库构建构建。
当序列长度变长、线性链式记忆链的效率降低时,为了实现对“记忆”的高效增删改查,一些工作探索了树搜索和向量检索的方法。
其中,树搜索以树结构存储内存信息,允许代理迭代访问文本内存信息。例如,斯坦福25人镇论文中提出的反射树,当智能体面临与环境的多轮交互时,反射树可以让智能体定期提取历史信息进行“反射”,并通过以下方式构建反射树:构建反思的抽象结果。树的叶子节点。。大模型每轮的基本观测值,而非叶子节点。。反射树。抽象级别,越接近根节点,抽象级别越高。
另一种方法是向量检索,它通过将复杂的数据类型建模为向量数据库来实现长期记忆的高效存储和检索。当智能体遇到新问题,需要“回忆”过去的记忆时,基于向量数据库的长期记忆系统会快速检索相关信息,以保证智能体行为的一致性。
推理CoT
除了感知和记忆之外,借鉴CoT的思想,让Agent分解任务,逐步规划和决策,增强Agent解决问题的可靠性。在Agent中,CoT的主要功能是将计划、行动和观察结合起来,以弥合推理和行动之间的差距。显然,推理可以帮助模型制定应对异常情况的行动计划,而行动则可以让大模型与外部环境进行交互。在交互时,会收集附加信息以支持模型推理。
例如,AgentBench迫使大模型智能体通过“思考”+“行动”步骤完成任务,而动作链技术则通过一系列的动作历史和未来的行动计划帮助智能体做出决策,从而将决策问题转化为CoT推理问题。
此外,工具的使用扩展了大型模型代理的能力边界。通过工具的使用,大模型不再局限于“预测”下一步动作,而是获得“实际执行”动作的能力,比如输出代码操作机器、调用API获取数据、使用各种软件、计算同时,利用浏览器获取“实时更新”的“新知识”作为大模型的检索增强,也有效拓展了大模型的知识边界,也为大模型提供了强大的平台。 “自我验证”提供了知识库。除了使用工具之外,类似于编写“教科书”,现在有一些研究侧重于“专门针对Agent 任务场景”的数据集上对大型模型进行微调,以获得更强的Agent。
7. CoT和AI Agent目前面临哪些挑战?
尽管CoT和AI Agent已广泛应用于编程、科研、办公等领域,但作为一个新兴领域,CoT和AI Agent都面临着许多重大挑战,包括:
未知领域的泛化能力:虽然AI Agent的出现本身扩展了大型模型解决更复杂的未知领域问题的能力,但由于缺乏与现实世界真正的“具身”交互,人们在浏览网页时是否可以Agent能否通过同一套框架和工程方法来控制无人机的编组仍然是一个悬而未决的问题;
Agent的过度交互问题:Agent为了完成任务,需要与环境进行大量复杂的多步骤交互,并且一些研究也表明Agent很可能陷入不断交互的循环陷阱,其中交互循环是没有意义的。闲置,而且由于Agent解决问题缺乏“效率”,因此产生的日志的存储和信息检索也会成为新的问题;
个性化Agent:为每个人提供个人智能助理是一个美妙的想法,但真正个性化的Agent的实现仍然面临很多问题。目前个性化Agent的研究主要有三种技术途径,从定制提示出发、从微调和模型编辑出发,但这些途径都存在各自的问题,目前的研究主要集中在具体的问题背景上,目前存在以下问题:没有完整、统一的解决方案;
多智能体社会:如何扩展大型模型Agent的数量来形成多智能体社会也是观察“社会行为的出现”一个非常有趣的方向,但是多智能体的计算开销正在阻碍多智能体的发展这个领域。关键问题;
Agent安全问题:当Agent逐渐走进人们的日常生活时,Agent和CoT的安全问题就必须提上议事日程,比如常见的隐私泄露、权限滥用、有毒信息等问题。此外,当Agent被使用时最后,另外,由于现实世界中缺乏真正的多模态反馈,比如人类智能可以感受到“疼痛”,但AI Agent不会有这个信息输入,那么如何“对齐” “两种完全不同类型的科目? ”也将是关键问题;
Agent评估:如何客观地评估Agent的能力也将是AI Agent的发展给我们带来的新问题。想想几年前NLP时代数据集的评估方法。这种传统的评价方法肯定不适用。不断与外部环境交互的Agent。此外,执行99 个正确步骤但生成错误答案的智能体可能比执行99 个错误步骤但生成正确答案的智能体更好。因此,Agent评估除了评估执行任务的成功率之外,还需要新的方法。指标、新方法。
用户评论
看完这篇综述,感觉自己的技术储备还是太少啦!对CoT和Agent其实一直了解不多,这篇文章解释得非常清楚,重点概括到位了。上交老师水平真高!
有15位网友表示赞同!
好久没看到这么全面的解读了,从基础原理到最新应用都涵盖了,感觉读完这篇综述就相当于参加了一场专家课讲座!不过对于新手来说,部分概念还是比较抽象的,建议再加入一些通俗易懂的示例或者案例讲解。
有19位网友表示赞同!
真是个好文章啊!我一直在追溯CoT和Agent发展方向,这篇文章简直是福音!上交老师把复杂的概念解释得简单明了,逻辑清晰,受益匪浅。
有15位网友表示赞同!
作为一名工程师,对AI领域的最新技术一直保持着高度关注。这篇文章深入分析了从CoT到Agent的发展趋势,特别是在应用场景和未来的展望方面,提供了很多启发。期待将来能看到更多研究成果的落地实践!
有16位网友表示赞同!
看完这篇综述之后我对 CoT 和 Agent 还是感到一头雾水,尤其是那些比较高深的理论概念理解起来有点困难。不过文章写的比较全面,可以慢慢啃下来。
有13位网友表示赞同!
上交老师的作品质量始终让人放心!这篇综述写的太棒了,逻辑清晰、深入浅出,把 CoT 和 Agent 的发展历程和未来趋势都描述得非常生动形象。给个赞!
有16位网友表示赞同!
作为做NLP的同学,一直在关注CoT和Agent这个方向,这篇文章对我很有帮助!文章总结了各个阶段的技术要点和发展成果,而且还分析了未来的趋势,可以让我更好地把握学习的方向。
有20位网友表示赞同!
其实我对这些高深的论文并不了解 lắm,但总觉得这个方向很有意思,希望能学起来。这篇介绍比较通俗易懂,也有一些例子,也许能帮我开启一个全新的世界!
有10位网友表示赞同!
我始终认为AI技术的发展需要更多的实际应用来验证其价值。这篇文章虽然对 CoT 和 Agent 的理论做了深入的探讨,但我更想看到更多的是这些技术在实际场景中的应用实例和效果评估。
有10位网友表示赞同!
对于入门小白来说,这篇综述的确有点难度,很多概念需要一定的背景知识才能理解。建议可以通过一些生动的例子或者案例来辅助讲解,让文章更加易于阅读和理解。
有8位网友表示赞同!
上交老师的每一篇博文都是一篇高质量的深度解读,这次也不例外!对CoT 和 Agent 的梳理非常清晰,受益匪浅!真的希望他能再多写几篇关于AI前沿技术的综述文
有11位网友表示赞同!
我一直很关注人工智能领域的最新发展,这篇综述让我了解到了很多新知识。尤其是在 Agent 方面,作者介绍了最新的研究成果和未来的展望,让我对未来AI的发展充满了期待!
有20位网友表示赞同!
说实话,这篇综述有点过于专业化了,我虽然对 AI 感兴趣,但很多概念都理解不了。希望文章能加入更多入门级别的讲解,让普通读者也能更容易地理解其中主要内容。
有13位网友表示赞同!
这篇文章非常适合从事AI相关研究工作的同学阅读, 可以让你快速了解CoT和Agent的关键进展。 虽然篇幅较长,但读完之后感觉回收益很高!
有6位网友表示赞同!
看完这篇综述,我对 AI 的未来充满了信心!尤其是在 Agent 方面,我觉得这将是未来人工智能发展的重要方向。希望能够看到更多关于 CoT 和 Agent 的研究成果和应用实践!
有11位网友表示赞同!
这篇综述虽然介绍得很全面,但有些地方缺乏具体的案例分析,导致理论过于抽象化,难以理解其中的技术细节和应用场景。
有8位网友表示赞同!
上交老师的文章越来越厉害了!这次的综述涵盖了CoT和Agent领域最核心的内容,读完感觉视野开阔了许多!
有17位网友表示赞同!
总的来说,这篇综述对 CoT 和 Agent 的发展历史、核心技术以及未来展望做了一个很好的总结。 对于想要深入了解这个领域的读者来说,是一本值得收藏的资料!
有8位网友表示赞同!