AI时代的风口在哪里?吴恩达:AIAgent将推动人工智能大规模进步,AgenticWorkflow必须知道的4种关键模式!
作者: 同桌的AI小纸条 来源: 同桌的AI小纸条
点击上方蓝字关注,我们一起学AI!
AI时代的风口在哪里?
吴恩达认为,AI Agent将在今年推动人工智能的大规模进步,甚至有可能超过下一代基础模型所带来的影响。他希望所有从事人工智能工作的人,都能关注AI智能体的发展。
Agentic Workflow-智能体工作流 是什么?
Agentic Workflow(代理工作流)是一种利用人工智能代理(AI Agents)来执行任务的迭代和多步骤方法。
我们多数人现在使用LLM通常是单一提示(prompt)并等待模型直接响应,这是一种zero-shot模式,意思是说模型根据提示逐个输出token,没有返回修改的机会。这相当于要求人类从头到尾一口气写完一篇文章,不允许回退,正如下图左边部分。这里解释一下Zero-shot模式:
Zero-shot模式是机器学习和人工智能中的一个概念,指的是模型在没有接受特定任务训练的情况下,直接对新任务进行推理和执行的能力。
换句话说,模型能够在没有看到特定任务的示例或经过针对性训练的情况下,理解任务要求并给出正确的响应。这就要求模型需要具备很强的泛化能力,这通常需要在大规模的数据集上进行训练,才能让模型获得广泛的知识和理解能力,同时也要求通过自然语言来定义任务时更加的明确清晰,通过模型的in-context-learning触发更好的任务表现能力。
与传统的单一提示直接响应的交互方式不同,代理工作流涉及多个环节,其中包括规划、执行、反思和协作等步骤。这种方法允许AI代理更加细致和深入地处理复杂任务,通过自我迭代改进输出结果,如右图所示。
事实上,我们人类正常的工作流程一般也是像右图一样迭代式的。比如对于一篇文章,可能需要:
-
计划一个大纲;通过网络搜索来收集更多信息;
-
写初稿;
-
通读初稿,发现不合理的论点或无关的信息;
-
反复修改……
这种工作模式对于人类写出好文章至关重要,而这样的工作流程对于AI的表现来说,也是有很大的增益。
吴恩达团队于是研究了多个相关算法,在HumanEval编码基准测试中的表现,如下图所示:
在zero shot的情况下,GPT-3.5的正确率为48.1%,GPT-4的表现更好,达到67.0%。
然而,加入了Agentic Workflow智能体工作流程之后,GPT-3.5的正确率直接飙到了95.1%,——Agent工作流效果显著,而且GPT-3.5比GPT-4得到的提升更加可观。
目前,各种开源智能体工具和相关研究的数量正在激增,擅于利用这些工具和经验,将使你的LLM更加强大。
4 种主要的 Agentic Workflow 设计模式
4 月初,吴恩达老师在美国红杉做了一场演讲,介绍了 4 种主要的 Agentic Workflow 设计模式。
Reflection(反思):让 Agent 审视和修正自己生成的输出,并提出改进的方法。
Tool Use(工具):LLM 利用Web搜索、代码执行或任何其他功能的工具,来帮助自己收集信息、采取行动或处理数据。
Planning(规划):让 Agent 分解复杂任务并按计划执行。比如一篇论文,首先写大纲,然后搜索和研究各部分内容,再写草稿)。
Multiagent Collaboration(多智能体协同):多个 Agent 扮演不同角色合作完成任务,分工合作,提出比单个智能体更好的解决方案。
接下来我们来逐一阐述下:
1. Reflection-反思
大家应该都体验过,当大语言模型( ChatGPT/Claude/Gemini/Kimi等)给出的结果不太令人满意时,我们给一些反馈和较正,就比如我们让大模型写一段代码,然后将它输出的代码片段再输入回去,让大模型仔细检查代码的准确性和结构规范性,并给出评论。
比如这么说来让LLM反思自己的输出:
这是用于任务 X 的代码,仔细检查代码的正确性、风格和效率,并就如何改进它提出建设性的批评。
然后,我们可以将这些反馈结果和之前生成的代码再次输入给大模型,并要求LLM根据反馈重写代码,它就会输出一个比第一版更好的版本。
以上的过程就是Reflection-反思,反思作为容易迅速实现的一种设计模式,已经带来了令人惊讶的性能影响。
那但我们很自然的想到,如果这个反馈的过程留给LLM自己执行,是不是会更好?以编码任务为例,有两个 Agent:一个负责 Coding,另一个负责 Code Review,效果会更佳。
比如像下图中的那样,使用多智能体Agent框架实现Reflection:一个Agent负责生成输出,另一个Agent负责对输出提出建议。
我们也可以结合一些可以用来评估大语言模型输出结果质量的工具来将辅助上面的流程,比如通过单元测试检查代码在测试用例上的结果,或者通过web搜索来比对输出的正确性。
推荐几篇和Reflection有关的文章:
论文地址:https://arxiv.org/pdf/2303.17651.pdf
论文地址:https://arxiv.org/pdf/2303.11366.pdf
论文地址:https://arxiv.org/pdf/2305.11738.pdf
2. Tool Use-工具使用
LLM可以调用给定的函数来利用一些工具收集信息、采取行动或操作数据,这个流程其实是AI智能体Agent工作流的关键设计思想。
比如我们之前文章提到的RAG,大语言模型可以使用如下图的Web搜索工具或执行代码工具,市面上很多大语言模型的产品都具备下面的能力。
如果大家使用 Kimi Chat 来查询某个问题,你会发现它会在互联网上检索相关内容,并基于检索结果进行总结分析,最后给出结论。这其实是大模型利用「网页搜索」工具的一个典型例子。
比如如果你问Copilot这样的在线LLM:「最好的咖啡机是哪一款?」,它可能会决定进行网络搜索,并下载一个或多个网页以获取上下文。
这种技能天然可以解决数据时效性的问题,毕竟仅依靠预训练模型来生成输出答案是有局限性的,时效性上也是截止训练数据输入的时间,而提供Web搜索工具可以让LLM做更多的事情,具备准实时的能力,而信息咨询的实时性某种程度也保证了其正确和有效性。
大语言模型在提交prompt任务时,通过使用特殊的字符串,例如 {tool:web-search,query:coffee maker reviews} 来触发对应的工具,比如调用搜索引擎。
后续的处理步骤action接到指令后就会去查找字符串,调用具有相关参数的Web搜索函数,并将结果附加到输入上下文,传递回大语言模型。
比如下面这张图:
这张图展示大语言模型组件,它接收指令(Instruction)作为输入后,语言模型会根据指令和工具(Tools)生成行动(Actions)。
工具可以是各种API、web服务、代码执行工具、物理环境交互的控制等。比如我们可以搜索不同的来源(Web、Wikipedia、arXiv等),与各种生产力工具交互(发送电子邮件、读/写日历条目等),并且我们希望大语言模型LLM自动选择正确的函数调用来完成工作。
Tools执行的结果会反馈回语言模型引导后续的决策和行动。
通过这样的方式,能够实现语言指令与工具和环境进行交互,完成各种复杂的任务。并持续学习和改进。它为构建可执行语言理解的通用智能体提供了一种解决方案,将语言模型与现实世界工具和环境相结合,使得语言理解不仅停留在文本层面,而是能够被转化为可执行的行动和任务。
这里需要特别注意的是,当有太多的tools可供使用时,大模型无法将所有tools对应的函数都放入上下文中,这时可以使用启发式方法,在当前处理步骤中选择要包含在LLM上下文中的最相关子集。
事实上,当有太多的文本无法作为上下文包含,检索增强生成(RAG)系统也是采用同样的方法,选择要包含的文本子集。这里就不深入展开,感兴趣的同学可以看下这几篇推荐的文章:
论文地址:https://arxiv.org/pdf/2305.15334.pdf
论文地址:https://arxiv.org/pdf/2303.11381.pdf
论文地址:https://arxiv.org/pdf/2401.17464.pdf
3. Planning-规划
一种允许AI代理动态决定采取哪些步骤的能力,特别是在那些无法提前指定任务分解为一系列步骤的复杂任务中。这种能力使得AI代理能够自主地决定以未被预期的方式执行任务。简单来说就是使用大语言模型LLM将目标任务分解为更小的子任务,然后自主决定执行的步骤。
比如我们要求Agent对给定主题进行在线研究,大语言模型可以将其拆解为特定的子主题、综合发现、编写报告。
现实中,有的任务是没办法一步完成的,比如下图HuggingGPT 论文中的示例,如果我们希望代理考虑一张男孩的图片并以相同的姿势绘制一张女孩的图片,并用声音描述出新生成图片中的内容,则该任务可能会分解为一下几个不同的步骤:
-
检测男孩图片中的姿势,
-
以检测到的姿势渲染女孩的图片。
-
使用图像理解文本的模型将图像内容理解出文字
-
使用语音合成输出
拆解完成后,Agent就会触发软件调用姿势检测工具、调用姿势到图像工具等等来分别完成这些任务。
不过尽管Planning是一个非常强大的能力,但它还不够成熟,因为很难提前预测Agent将采取什么行动,所以也会使结果的不可预测性增加。
曾经的「ChatGPT时刻」让人们惊讶于超出预期的AI的能力,相信同样让人所为之震撼的「AI Agent时刻」也会马上到来。
吴恩达之前的一次现场展示,因为网速问题,Agent的Web搜索API返回了错误,——眼看就要被公开处刑,Agent居然转到了维基百科的搜索工具,最终完成了任务。
吴恩达觉得看到一个Agent以出人意料的方式执行任务,并获得成功,是一件美好的事情。
不过也有网友表示,大事不好,Agent失控!
吴恩达表示Planning虽然仍是一项不太成熟的技术,用户很难提前预测它会做什么,——不过我们可以期待技术的快速发展来解决这个问题。
同样推荐3篇相关的优秀论文:
论文地址:https://arxiv.org/pdf/2201.11903.pdf
论文地址:https://arxiv.org/pdf/2303.17580.pdf
论文地址:https://arxiv.org/pdf/2402.02716.pdf
4. Multiagent Collaboration-多智能体协同
吴恩达通过开源项目 ChatDev 进行举例,你可以让一个大语言模型扮演不同的角色,比如让一个 Agent 扮演公司 CEO、产品经理、设计师、代码工程师或测试人员,这些 Agent 会相互协作,根据需求共同开发一个应用或者复杂程序。
AI Agent 基本框架
OpenAI 的研究主管 Lilian Weng 曾经写过一篇博客叫做《 LLM Powered Autonomous Agents 》,其中就很好的介绍了 Agent 的设计框架,她提出了“Agent = LLM + 规划 + 记忆 +工具使用”的基础架构,其中大模型 LLM 扮演了 Agent 的“大脑”。
- Planning(规划)
主要包括子目标分解、反思与改进。将大型任务分解为较小可管理的子目标处理复杂的任务。而反思和改进指可以对过去的行动进行自我批评和自我反思,从错误中学习并改进未来的步骤,从而提高最终结果的质量。
- Memory(记忆)
分为短期记忆和长期记忆。其中短期记忆是指的将所有的上下文学习看成是利用模型的短期记忆来学习;而长期记忆是提供了长期存储和召回信息的能力,它们通常通过利用外部的向量存储和快速检索来存储和召回信息。
- Tools(工具)
通过学会调用外部不同类型API来获取模型(通常在预训练后很难修改)中缺少的额外信息,代码执行能力,访问专有信息源等(例如获取此时此刻的天气、联网网搜索等)
- Action(动作)
根据上述大模型结合问句(Query)、上下文的规划(Context)、各类工具,最终大模型才能决策出最终需要执行的动作是什么
吴恩达-关于智能体工作流的总结
AI的能力会通过代理工作流程(agentic workflows)得到显著扩展
我们需要习惯于将任务委托给AI代理,并耐心等待响应。
快速生成token是重要的。即使是质量较低的语言模型,生成更多token也可以产生好的结果。
如果期待使用GPT-5/Claude 4/Gemini 2.0等先进的大型语言模型,可能需要在早期的模型上利用代理式推理(agentic reasoning)来获得良好的性能。
吴恩达演讲原视频:https://www.youtube.com/watch?v=sal78ACtGTc
更多即时AI资讯请扫码关注
我们一起学AI!
更多AI工具,参考Github-AiBard123,国内AiBard123