吴恩达提出四类智能体:AI 智能体工作流引领人工智能新趋势

AI知识6个月前更新 playboywhc
1 0

原文:Generally Capable Agents in Open-Ended Worlds [S62816]

 

1. 反思型智能体

  • 能对自己生成的代码或内容进行检查和修改,不断迭代优化
  • 通过自我反思和修正,可以生成质量更高的结果
  • 是一种稳健有效的技术,适合广泛应用

2. 使用工具型智能体

  • 能使用各种工具来收集信息、进行分析、采取行动,扩展了应用范围
  • 早期工具使用的研究主要源自计算机视觉领域,因为当时的语言模型还无法处理图像

3. 规划型智能体

  • 能根据任务目标自主地制定和执行计划,展现出令人惊叹的能力
  • 如果某个步骤失败,能重新规划路径来规避失败,具备一定的自主性和适应性
  • 虽然目前还不完全可靠,但一旦成功,效果相当惊人

4. 多智能体协作型

  • 通过设置不同角色的智能体,让它们协同工作完成任务,比单一智能体表现出更强的能力
  • 多智能体可以深入对话、分工协作,完成复杂的开发或创作任务
  • 也可以让多个智能体进行辩论,是一种有效提升模型性能的方式

 

我期待与大家分享我在 AI 智能体方面的发现,我认为这是一个令人兴奋的趋势,所有涉及 AI 开发的人都应该关注。同时,我也对所有即将介绍的”未来趋势”充满期待。

 

所以,让我们来谈谈 AI 智能体。现在,我们大多数人使用大语言模型的方式就像这样,通过一个无智能体的工作流程,我们输入一段提示词,然后生成一段答案。这有点像你让一个人编写一篇关于某个主题的文章,我说你只需要坐在键盘前,一气呵成地把文章打出来,就像不允许使用退格键一样。尽管这项任务非常困难,但大语言模型的表现却令人惊讶的好。

 

与此相对,一个有 AI 智能体的工作流可能是这样的。让 AI 或者大语言模型写一篇文章的提纲。需要在网上查找一些东西吗?如果需要,那就去查。然后写出初稿,并阅读你自己写的初稿,思考哪些部分需要修改。然后修改你的初稿,然后继续前进。所以这个工作流是迭代的,你可能会让大语言模型进行一些思考,然后修改文章,再进行一些思考,如此反复。很少有人意识到,这种方式的结果更好。这些 AI 智能体的工作流程的效果让我自己都感到惊讶。

 

我要做一个案例研究。我的团队分析了一些数据,用的是一个名为”人类评估基准”的编程基准,这是 OpenAI 几年前发布的。这个基准包含一些编程问题,比如给出一个非空的整数列表,求出所有奇数元素或者奇数位置上的元素之和。答案可能是这样一段代码片段。现在,我们很多人会使用零样本提示,意思是我们告诉 AI 写代码,然后让它一次就运行。谁会这样编程?没有人会这样。我们只是写下代码然后运行它。也许你会这样做。我做不到。

 

所以事实上,如果你使用 GPT 3.5 进行零样本提示,它的正确率是 48%。GPT-4 的表现要好得多,正确率是 67%。但是,如果你在 GPT 3.5 的基础上建立一个 AI 智能体的工作流,它甚至能比 GPT-4 做得更好。如果你将这种工作流应用于 GPT-4,效果也非常好。你会注意到,带有 AI 智能体工作流的 GPT 3.5 实际上优于 GPT-4。这意味着这将对我们构建应用程序的方式产生重大影响。

 

AI 智能体这个术语被广泛讨论,有很多咨询报告讨论关于 AI 智能体,AI 的未来等等。我想更实质性地与你分享我在 AI 智能体中看到的一些常见设计模式。这是一个复杂混乱的领域,有大量的研究,大量的开源项目。有很多东西正在进行。但我试图更贴切地概述 AI 智能体中的现状。

 

反思是我认为我们大多数人应该使用的一个工具。它确实很有效。我认为它应该得到更广泛的应用。这确实是一种非常稳健的技术。当我使用它们时,我总能让它们正常工作。至于规划和多智能体协作,我认为它是一个新兴的领域。当我使用它们时,有时我会对它们的效果感到惊讶。但至少在此刻,我不能确定我总是能让它们稳定运行。所以让我在接下来的几页幻灯片中详细介绍这四种设计模式。如果你们中有人回去并亲自尝试,或者让你们的工程师使用这些模式,我认为你会很快看到生产力的提升。

 

所以,关于反思,这是一个例子。比如说,我要求一个系统为我编写一项任务的代码。然后我们有一个编程智能体,只需给它一个编码任务的提示,比如说,定义一个执行任务的函数,编写一个这样的函数。一个自我反思的例子就是,你可以这样对大语言模型进行提示。这是一段为某个任务编写的代码。然后把它刚生成的完全一样的代码再呈现给它。然后让它仔细检查这段代码是否正确、高效且结构良好,像这样提出问题。结果显示,你之前提示编写代码的同一大语言模型可能能够发现像第五行的 bug 这样的问题,并修复它。等等。如果你现在把它自己的反馈再次呈现给它,它可能会创作出版本二的代码,这个版本可能比第一个版本表现得更好。虽然不能保证,但是在大多数情况下,这种方法在许多应用中值得尝试。提前透露一下,如果你让它运行单元测试,如果它没有通过单元测试,那么你可以询问它为什么没有通过单元测试?进行这样的对话,也许我们可以找出原因,没能通过单元测试,所以你应该尝试改变一些东西,然后生成 V3 版本的代码。顺便说一句,对于那些想要了解更多关于这些技术的人,我对这些技术感到非常兴奋。对于讲解的每个部分,我都在底部附有一些推荐阅读的资料,希望能提供更多的参考。

 

再次预告一下多智能体系统,我描述的是一个编程智能体,你可以提示它和自己进行这样的对话。这个想法的一个自然演变就是,不只有一个编程智能体,你可以设定两个智能体,一个是编程智能体,另一个是评审智能体。这些都可能基于同一款大语言模型,只是我们提供的提示方式不同。我们对一方说,你是编程专家,请写代码。对另一方我们会说,你是代码审查专家,请审查这段代码。实际上,这样的工作流程非常便于实施。我认为这是一种非常通用的技术,能够适应各种工作流程。这将显著提升大语言模型的性能。

 

第二种设计模式是使用工具。你们中的许多人可能已经看到过基于大语言模型的系统如何使用工具。左边是来自副驾驶的截图,右边是我从 GPT-4 中提取的部分内容。然而,如果你让今天的大语言模型去回答网页搜索中哪款复印机最好这样的问题,它会生成并运行代码。实际上,有很多不同的工具,被许多人用来进行分析,收集信息,采取行动,提高个人效率。

 

早期在工具使用方面的研究,大部分来自计算机视觉社区。因为在大语言模型出现之前,它们无法处理图像。所以,唯一的选择就是让大语言模型生成一个可以操作图像的函数,比如生成图像或者进行物体检测等。因此,如果你仔细研究相关文献,你会发现很多工具使用的研究看似起源于视觉领域,因为在 GPT-4 和 LLaVA 等出现之前,大语言模型对图像一无所知。这就是工具的使用,它扩大了大语言模型的应用范围。

 

接下来是规划。对于那些还未深入研究规划算法的人,我觉得很多人都会谈到 ChatGPT 的震撼时刻,那种前所未有的感觉。我觉得你们可能还没有使用过规划算法。有很多人会感叹,哇,我没想到 AI 智能体能做得这么好。我曾经进行过现场演示,当某件事情失败了,AI 智能体会重新规划路径来规避失败。事实上,已经有好几次我被自己的 AI 系统的自主能力所震惊了。

 

我曾经从一篇关于 GPT 模型的论文中改编过一个例子,你可以让它生成一张女孩正在读书的图片,与图片中的男孩姿势一致,例如,example.jpeg,然后它会描述新图片中的男孩。利用现有的 AI 智能体,你可以决定首先确定男孩的姿势,然后找到合适的模型,可能在 HuggingFace 这个平台上,来提取姿势。接下来,你需要找到一个后处理图像的模型,合成一张根据指令的女孩的图片,然后使用图片转化为文本,最后使用文本转化为语音的技术。

 

目前,我们有一些 AI 智能体,虽然它们并不总是可靠,有时候会有些繁琐,不一定能成功,但是一旦它们成功了,效果是相当惊人的。有了这种智能体循环的设计,有时候我们甚至可以从之前的失败中恢复过来。我发现我已经开始在一些工作中使用这样的研究型智能体,我需要一些研究,但是我并不想自己去搜索,花费大量的时间。我会将任务交给研究型智能体,过一会儿再回来看它找到了什么。有时候它能找到有效的结果,有时候则不行。但无论如何,这已经成为我个人工作流程的一部分了。

 

最后一个设计模式是多智能体协作。这个模式可能看起来有些奇怪,但实际效果比你想象的要好得多。左边是一篇名为”Chat Dev”的论文的截图,这个项目是完全开放的,实际上已经开源了。许多人可能见过那些炫耀的社交媒体发布的”Devin”的演示,在我的笔记本电脑上也可以运行”Chat Dev”。”Chat Dev”是一个多智能体系统的例子,你可以设置一个大语言模型(LLM)去扮演软件工程公司的 CEO、设计师、产品经理,或者测试员等角色。你只需要告诉 LLM,你现在是 CEO,你现在是软件工程师,然后它们就会开始协作,进行深入的对话。如果你告诉它们去开发一个游戏,比如 GoMoki 游戏,它们会花几分钟来编写代码,测试,迭代,然后生成出惊人的复杂程序。虽然并不总是成功,我也遇到过失败的情况,但有时它的表现让人惊叹,而且这个技术正在不断进步。另外,另一种设计模式是让不同的智能体辩论,你可以有多个不同的智能体,比如 ChatGPT 和 Gemini 进行辩论,也是一种有效提升性能的模式。所以,让多个模拟的 AI 智能体协同工作,已经被证明是一个非常强大的设计模式。

 

总的来说,这些就是我观察到的设计模式,我认为如果我们能在工作中应用这些模式,我们可以更快地提升 AI 效果。我相信智能体推理设计模式将会是一个重要的发展方向。

 

这是我的最后一张幻灯片。我预计,人工智能能做的任务将在今年大幅度扩展,这是由于智能体工作流的影响。有一点人们可能难以接受的是,当我们向 LLM 发送提示词时,我们希望马上得到回应。实际上,十年前我在谷歌进行的一项名为”大盒子搜索”的讨论中,我们输入很长的提示词。我当时未能成功推动这一点,因为当你进行网络搜索时,你希望在半秒钟内得到回应,这是人性。我们喜欢即时的反馈。但是对于很多智能体工作流程,我认为我们需要学会将任务委派给 AI 智能体,并且耐心等待几分钟,甚至可能需要等待几个小时来获取回应。就像我看到的许多新手经理,他们将任务委派给别人,然后五分钟后就去查看情况,这并不高效,我们也需要对一些 AI 智能体这样做,尽管这非常困难。我以为我听到了一些笑声。

另外,快速生成 token 是一个重要的趋势,因为我们在不断迭代这些智能体工作流程。LLM 为自己阅读生成 token,能够比任何人都快速的生成 token 是很棒的。我认为,甚至来自稍微质量低点的 LLM,也能快速生成更多的 token,可能会得到好的结果,相比之下,从质量更好的 LLM 中慢速生成 token,也许会不尽如人意。这个观点可能会引起一些争议,因为它可能让你在这个过程中多转几圈,就像我在第一张幻灯片上展示的 GPT-3 和智能体架构的结果一样。

 

坦率地说,我非常期待 Claude 4,GPT-5,Gemini 2.0, 以及正在建设中的所有其他精彩模型。在我看来,如果你期待在 GPT-5 零样本学习上运行你的项目,你可能会发现,通过在早期模型上使用智能体和推理,你可能比预期更早地接近 GPT-5 性能水平。我认为这是一个重要的趋势。

 

诚实地说,通向通用人工智能的道路更像是一段旅程,而不是一个目的地,但我认为这种智能体工作流可能帮助我们在这个非常长的旅程上迈出一小步。

谢谢。

© 版权声明

相关文章