智能体的潜力被低估了?
AI 智能体是去年很火的一个话题,但是 AI 智能体到底有多大的潜力,得多人能够没有概念。
最近,斯坦福大学教授吴恩达在演讲中提到,他们发现,基于 GPT-3.5 建立的智能体任务流在应用中表现比 GPT-4 要好。当然,基于 GPT-4 建立的智能体任务流成果更好。由此看来,AI 智能体任务流将在今年推动人工智能取得巨大进步,甚至能够超过下一代基础模型。这是一个值得所有人关注的趋势。
这个关于智能体的演讲在社交媒体上引发了广泛关注。有人表示,这代表着 AI 发展中的范式转变,体现了从静态输入到动态迭代的转变。站在这样一个十字路口,我们不仅要思考 AI 如何改变我们的任务,还要思考我们如何适应它所创造的新环境。
还有人说,这和自己的生活经验是相通的:有些人可以凭借良好的流程胜过那些比自己聪明的人。
那么,智能体的这种成果是怎么实现的呢?
和传统的 LLM 应用方式不同,智能体任务流不是让 LLM 直接生成最终输入,而是多次提醒(prompt)LLM,使其逐步建立更高质量的输入。
在演讲中,吴恩达介绍了 AI 智能体任务流的四种设计形式:
深思(Reflection):LLM 检查自己的任务,以提出改观方法。
工具应用(Tool use):LLM 拥有网络搜索、代码执行或任何其他功能来帮助其收集信息、采取行动或处理数据。
规划(Planning):LLM 提出并执行一个多步骤计划来实现目标(例如,撰写论文大纲、进行在线研究,然后撰写草稿……)。
多智能体协作(Multi-agent collaboration):多个 AI 智能体一起任务,分配任务并讨论和辩论想法,以提出比单个智能体更好的解决方案。
在后续的博客中,吴恩达重点讨论了深思(Reflection)形式。吴恩达表示:「深思形式是实现速度相对较快的设计形式,它已经带来了惊人的性能提升成果。」
他在博客中写道:
我们能够都有过这样的经历:提醒 ChatGPT/Claude/Gemini,得到不满意的输入,提供关键反应以帮助 LLM 改观其响应,最终获得更好的响应。
如果将关键反应的步骤交付给自动化程序,让模型自动批评自己的输入并改观其响应,结果会怎样?这正是深思形式的关键。
以要求 LLM 编辑代码为例。我们可以提醒它直接生成所需的代码来执行某个任务 X。之后,我们可以提醒它深思自己的输入,如下所示:
这是任务 X 的代码:[之前生成的代码]
仔细检查代码的正确性、风格和效率,并对如何改观它提出建设性意见。
偶尔这会使 LLM 发现问题并提出建设性意见。接下来,我们可以用上下文 prompt LLM,包括:
以前生成的代码;
建设性的反应;
要求它应用反应来重写代码。
这可以让 LLM 最终输入更好的响应。重复批评 / 重写过程能够会产生进一步的改观。这种自我深思过程使 LLM 能够发现差距并改善其在各种任务上的输入,包括生成代码,编辑文本和回答问题。
我们可以通过给 LLM 提供工具来帮助其评估产出。例如,通过几个测试用例来运转代码,以检查是否在测试用例上生成正确的结果,或者搜索网页以检查文本输入。然后,LLM 可以深思它发现的任何错误,并提出改观的想法。
此外,我们可以应用多智能体框架来实现深思。创建两个不同的智能体很方便,一个提醒生成良好的输入,另一个提醒对第一个智能体的输入给出建设性的批评。两个智能体之间的讨论推动了响应的改观。
深思是一种相对基本的智能体任务流形式,但它在一些情况下显著改善了应用程序的结果。
最后,关于深思,吴恩达推荐了几篇论文:
“Self-Refine: Iterative Refinement with Self-Feedback,” Madaan et al., 2023
“Reflexion: Language Agents with Verbal Reinforcement Learning,” Shinn et al., 2023
“CRITIC: Large Language Models Can Self-Correct with Tool-Interactive Critiquing,” Gou et al., 2024
在下文中,机器之心整理了本次演讲的内容。
吴恩达:AI 智能体的未来
我很期待与大家分享我在 AI 智能体中所看到的。我觉得这是一个令人兴奋的趋势。我觉得每个 AI 从业者都应该关注这个趋势。
我要分享的是 AI 智能体。现在,我们大多数人应用大型语言模型的方式是这样的:我们在一个非智能体任务流中,你把提醒输入到对话框中并生成答案。这有点像是我们让一个人写一篇关于某个主题的文章。我说,请坐到键盘前,从头到尾打出一篇文章,中间不应用退格键。尽管这很难,AI 大模型还是做得非常好。
智能体任务流长这个样子(右图)。有一个 AI 大模型,你可以让它写一份论文大纲。你需要上网查资料吗?如果需要,我们就联网。然后写初稿、读初稿,并思考哪些部分需要修改。然后修改你的初稿并继续推进。所以这个任务流程更容易迭代。你可以让 AI 大模型进行一些思考,然后修改这篇文章,然后继续思考和迭代。按照这个步骤迭代多次。
得多人都没有意识到的是,这么做的成果好得多。其实我自己也很惊讶。对于它们的任务决策流程,以及它们优秀的表现。除了这些个案研究,我的团队也分析了一些数据,应用名为 HumanEval 的编程评估基准。这是 OpenAI 几年前发布的。这上面有一些编程问题,比如给定一个非空整数列表,返回位于偶数位置的所有奇数元素的和。AI 生成的答案是像这样的代码片段。
如今我们得多人会应用零样本提醒。比如我们告诉 AI 编辑代码,并让它在第一个位置运转。谁这样编码?没有人这样写代码。我们只需输入代码并运转它。也许你这么编码,但我做不到。事实证明,如果你应用 GPT-3.5,在零样本提醒的条件下,GPT-3.5 的准确率是 48%。GPT-4 要好得多,达到了 67%。但如果你采用的是智能体任务流,并将其打包,GPT-3.5 实际上能表现更好,甚至比 GPT-4 还好。如果你围绕 GPT-4 建立这样的任务流,GPT-4 也能表现很好。注意,处于智能体任务流中的 GPT-3.5 实际上优于 GPT-4。我觉得这已经是一个信号。
所有人都在围绕智能体这个术语和任务进行大量的讨论。有得多咨询报告,关于智能体、AI 的未来,等等等等。我想具体一点,分享一下我在智能体中看到的广泛设计形式。这是一个非常混乱、混沌的空间。有得多研究,有得多事情正在发生,我尝试更具体地分一下类,更具体地聊一下智能体领域发生的事情。
reflection(深思)是一种工具,我觉得我们中的许多人都在应用。它很有效。我觉得「tool use」得到了更广泛的认可,但 reflection 实际上成果也很好。我觉得它们都是非常强大的技术。当我应用它们时,我几乎总能让它们任务得很好。规划和多智能体协作,我觉得属于正在兴起的技术。在应用它们时,偶尔我对它们的任务成果感到震惊。但至少在目前这个时刻,我觉得我无法让它们总是可靠地任务。
接下来我将详细解释这四种设计形式。如果你们中的一些人回去自己用,或者让你们的工程师应用这些形式,我觉得你可以很快获得生产力的提升。
首先是 reflection,举个例子:假设我问一个系统,请为我编辑给定任务的代码。然后我们有一个代码智能体,只是一个接受你编辑的提醒的大模型。它会写一个如图所示的函数。这里还有一个 self reflection 的例子。如果你给你的大模型写出这样的提醒,告诉它这是用于执行某个任务的代码,把你刚刚生成的代码给它,然后让它检查这段代码的正确性、效率等等类似的问题。结果你会发现,根据你的提醒写出代码的那个大模型,能够能够发现代码里的问题,比如第五行的 bug。还会告诉你怎么修改。如果你现在采纳了它的反应并再次给它提醒,它能够会提出一个比第一个版本更好的第二版代码。不能保证一定如此,但它是有效的。这种方法在得多应用中都值得尝试。
这里提前说一下 tool use。如果你让它运转单元测试,而它没有通过,你想知道为什么没通过。进行这样的对话,也许能找出原因。这样你就能试着去改正。顺便说一下,如果大家对这些技术感兴趣,我在每一部分的幻灯片底部都写了一个小小的推荐阅读部分,就在 PPT 底部。里面有更多的参考资料。
这里提前说一下多智能体系统。它被描述为单个代码智能体,你给它提醒,让它们进行对话。这种想法的一个自然演变是单个编程智能体。你可以有两个智能体,其中一个是编码智能体,另一个是评价智能体。它们背后的大模型能够是同一个,但你给它们的提醒不一样。我们对其中一个说,你是写代码的专家,负责编辑代码。对另一个说,你是审核代码的专家,负责审核这段代码。这种任务流实际上很容易实现。我觉得这是一种非常通用的技术,适用于得多任务流。这将为大型语言模型的性能带来显著的提升。
第二种设计形式是 tool use(工具应用)。许多人能够已经见过基于大模型的系统应用工具。左边是一个截图,来自 Copilot。右边的截图,来自 GPT-4。左边的问题是,网上最好的咖啡机是哪个?Copilot 会通过上网检索来解决一些问题。GPT-4 将会生成代码并运转代码。事实证明,有得多不同的工具被人们用于分析、收集信息以采取行动、提高个人生产力。事实证明,得多早期任务关于 tool use 的任务,原来都是在计算机视觉社区。因为之前,大型语言模型对图象无能为力,所以唯一的选择就是大模型生成一个函数调用,可以用来操作图象,比如生成图象或者做目标检测什么的。让我们看看文献,有趣的是,tool use 领域的得多任务似乎都起源于视觉社区,因为之前的大模型不会看图象,在 GPT-4V、LLaVA 等模型出现之前。这就是 tool use,它扩展了大型语言模型的能力。
接下来讲 planning(规划)。对于没有大量接触过规划算法的人来说,我觉得得多人在谈论 ChatGPT 时刻的时候,你会觉得,「哇,从未见过这样的东西」。我想你还没有应用过规划算法。得多人看到 AI 智能体会很惊讶,「哇,我没想到 AI 智能体能做这些」。在我进行的一些现场演示中,有些演示会失败,AI 智能体会重新规划路径。我实际上经历过得多这样的时刻,「哇,我不敢相信我的 AI 系统刚刚自动做到了这一点」。其中一个例子是从 HuggingGPT 论文中改编的。你输入的是:请生成一张图象,一个女孩在看书,她的姿态和图象中的男孩一样。然后用你的声音描述这张新图象。给定一个这样的例子,今天有了 AI 智能体,你可以确定第一件要做的事是确定男孩的姿态。然后找到合适的模型,也许在 HuggingFace 上能找到,提取姿态。接下来需要找到一个姿态图象模型,遵循指令生成一张女孩的图象。然后应用图象 – 文本模型得到描述。最后应用文本转语音模型读出描述。
我们今天已经有了 AI 智能体,我不想说它们任务可靠,它们还有点挑剔,并不总是好用。但当它们起作用时,实际上成果是非常惊人的。
有了智能体循环,偶尔你可以改掉前期的问题。我自己已经在应用研究智能体了。对于我的一些任务,我并不想自己花得多时间进行谷歌搜索。我会把需求发给 AI 智能体,几分钟后回来看看它做了什么。它偶尔有效,偶尔不行。但那已经是我个人任务流的一部分。
最后要讲的形式是多智能体协作。这部分很有趣,它的成果比你想象的要好得多。左边这张图来自一篇名为 ChatDev 的论文。它是完全开源的,你们中的许多人都在社交媒体上看过 Devin 的演示。ChatDev 是开源的,它在我的笔记本电脑上运转。ChatDev 是多智能体系统的一个实例。你可以给它一个提醒,它偶尔扮演软件引擎公司的 CEO,偶尔扮演设计师,偶尔又是产品经理,偶尔是测试人员。这群智能体是你通过给大模型提醒来建立的,告诉它们「你现在是 CEO / 你现在是软件工程师」。他们会协作,会进一步对话。如果你告诉它们,「请开发一款游戏」,它们会花几分钟写代码,然后进行测试、迭代,然后生成一个令人惊讶的复杂程序,虽然并不总是能运转。我已经试过了,偶尔生成结果用不了,偶尔候又很惊艳。但是这项技术真的越来越好了。这是其中一种设计模型。此外,事实证明,多智能体辩论(你有多个智能体),比如说,你可以让 ChatGPT 和谷歌的 Gemini 辩论,这实际上会带来更好的性能。因此,让多个相似的 AI 智能体一起任务,也是一个强大的设计形式。
总结一下,这些是我看到的形式。我觉得如果我们在我们的任务中应用这些形式,我们中的得多人可以很快获得实践上的提升。我觉得智能体推理设计形式将会非常重要。这是我的简要 PPT。我预计,今年 AI 能做的事情将大幅扩展,这得益于智能体任务流。
有一件事实际上很困难,就是人们需要习惯在输入提醒之后,我们总想立即得到结果。实际上,十几年前,当我在谷歌讨论 big box search 时,我们输入了一个很长的提醒。我没有成功推动这一项目的一个原因是,在进行网络搜索时,你想在半秒钟内得到回复。这是人性使然 —— 我们喜欢即时获取、即时反应。但是对于得多 AI 智能体任务流来说,我想我们需要学会分配任务给 AI 智能体,并耐心地等待几分钟,甚至几小时,等它给出回应。我见过得多新晋管理者,将某事委托给某人,然后五分钟后检查结果。这不是一种有效的任务方式。我想我们需要,这真的很难。我们也需要对我们的 AI 智能体多点耐心。
另一个重要的事情是,快速的 token 生成是非常重要的。因为用这些 AI 智能体,我们一遍又一遍地迭代。AI 生成供人阅读的 token。如果 AI 生成 token 的速度比任何人的阅读速度都快,那就太棒了。我觉得,快速生成更多 token,即应用的是质量稍低的大模型,也能带来很好的结果。与用更好的大模型慢慢生成 token 相比,或许这点是有争议的。因为它能够让你在这个循环中反复更多次。这有点像我在前面的幻灯片上展示的大模型和智能体架构的结果。
坦率地说,我非常期待 Claude 4、GPT-5 和 Gemini 2.0,以及其他正在建立的出色大模型。我感觉,如果你期待在 GPT-5 上运转你的任务,以零样本的方式,你能够在一些 AI 智能体应用上接近那个水平的性能,这能够超乎你的想象,有了智能体推理,再加上之前发布的大模型。我觉得这是一个重要的趋势。老实说,通往 AGI 的道路感觉更像是一段旅程而不是目的地,我觉得这套智能体任务流可以帮助我们在这漫长的旅程中向前迈出一小步。
参考链接:
https://www.deeplearning.ai/the-batch/issue-242/
https://zhuanlan.zhihu.com/p/689492556?utm_medium=social&utm_psn=1756970518132240384&utm_source=wechat_session