AI时代新风口!吴恩达亲授智能体四大设计模式
如今的郝蕾,好像从不在美人行列,明明只有45岁,魅力“中女”盘点却很少有她的身影。在电影《无价之宝》里她穿着大红裙子,大腹便便,是印象中的中年妇女,而一旁张译饰演的前夫损起前妻来“我不嫌弃你,瞧你都没人样了,胖啊”。
新智元报道
编辑:alan
【新智元导读】吴恩达认为,智能体的发展将会成为AI时代重要的力量,甚至比基础模型还要重要。工作之余,「吴老师」连发多篇博客,向大家介绍了AI智能体的四大设计模式。
AI时代的风口在哪里?
吴恩达认为,AI Agent将在今年推动人工智能的大规模进步。
——甚至,有可能超过下一代基础模型所带来的影响。
他希望所有从事人工智能工作的人,都能关注AI智能体的发展。
Andrew Ng
大佬「退役」后,作为专业的「教书先生」,仍然孜孜不倦,授业传道解惑。
最近在工作之余,吴恩达连续分享了很多关于智能体的见解,并定义了AI Agent的四大设计模式,
Reflection(反思)、Tool use(工具使用)、Planning(规划)和Multi-agent collaboration(多智能体协同):
-反思:LLM检查自己的工作,并提出改进的方法。
-工具使用:LLM利用Web搜索、代码执行或任何其他功能的工具,来帮助自己收集信息、采取行动或处理数据。
-规划:LLM提出并执行实现目标的多步骤计划(比如一篇论文,首先写大纲,然后搜索和研究各部分内容,再写草稿)。
-多智能体协作:多个AI agent协同工作,分工任务,讨论和辩论想法,提出比单个智能体更好的解决方案。
智能体工作流
我们大多数人使用LLM通常是zero-shot模式,模型根据提示逐个输出token,没有返回修改的机会。
——这相当于要求人类从头到尾一口气写完一篇文章,不允许回退,——尽管是个比较困难的要求,不过大模型们目前都做得非常出色。
但事实上,我们人类正常的工作流程一般是迭代式的。
比如对于一篇文章,可能需要:
计划一个大纲;通过网络搜索来收集更多信息;
写初稿;
通读初稿,发现不合理的论点或无关的信息;
反复修改......
这种工作模式对于人类写出好文章至关重要,——那么对于AI来说,是不是也应如此?
前段时间,世界上第一个AI程序员Devin的演示,在社交媒体上引起了轰动。
吴恩达团队于是研究了多个相关算法,在HumanEval编码基准测试中的表现,如下图所示:
在zero shot的情况下,GPT-3.5的正确率为48.1%,GPT-4的表现更好,达到67.0%。
然而,加入了迭代智能体工作流程之后,GPT-3.5的正确率直接飙到了95.1%,——Agent工作流效果显著,而且GPT-3.5比GPT-4得到的提升更加可观。
目前,各种开源智能体工具和相关研究的数量正在激增,擅于利用这些工具和经验,将使你的LLM更加强大。
Reflection
反思,作为容易迅速实现的一种设计模式,已经带来了令人惊讶的性能影响。
我们可能有过这样的经历:当LLM( ChatGPT/Claude/Gemini等)给出的结果不太令人满意时,我们可以提供一些反馈,通常LLM再次输出时,能够给出更好的响应。
——如果这个反馈的过程留给LLM自己执行,是不是会更好?这就是反思(Reflection)。
以编码任务为例,可以通过类似的提示,让LLM反思自己的输出:
这是用于任务 X 的代码,仔细检查代码的正确性、风格和效率,并就如何改进它提出建设性的批评。
接下来,将之前生成的代码和反馈放进提示的上下文,并要求LLM根据反馈重写代码。
当然,我们也可以利用一些评估LLM输出质量的工具,使上面这个过程更进一步,
比如通过单元测试检查代码在测试用例上的结果,或者通过web搜索来比对输出的正确性。
此外,也可以像上图那样,使用多智能体框架实现Reflection:一个负责生成输出,另一个负责对输出提出建议。
如果诸位对Reflection感兴趣,这里推荐下面几篇文章,可以提供更多相关的知识:
论文地址:https://arxiv.org/*/2303.17651.*
论文地址:https://arxiv.org/*/2303.11366.*
论文地址:https://arxiv.org/*/2305.11738.*
Tool Use
工具使用,LLM可以调用给定的函数,来收集信息、采取行动或操作数据,——这是AI智能体工作流的关键设计模式。
最常见的例子就是LLM可以使用工具,执行Web搜索或执行代码。事实上,一些面向消费者的大型公司已经采用了这些功能。
比如如果你问Copilot这样的在线LLM:「最好的咖啡机是哪一款?」,它可能会决定进行网络搜索,并*一个或多个网页以获取上下文。
毕竟,仅依靠预训练的Transformer来生成输出答案是有局限性的,而提供Web搜索工具可以让LLM做更多的事情。
LLM使用特殊的字符串,例如 {tool:web-search,query:coffee maker reviews} ,以请求调用搜索引擎。
后处理步骤会查找字符串,调用具有相关参数的Web搜索函数,并将结果附加到输入上下文,传递回LLM。
再比如,如果你问,「如果我以12年复利7%,投资100美元,最后会获得多少收益?」,
LLM可能会使用代码执行工具,运行Python命令来计算:{tool:python-interpreter,code:100 *(1+0.07)**12}。
现在这个过程更近一步,我们可以搜索不同的来源(Web、Wikipedia、arXiv等),与各种生产力工具交互(发送电子邮件、读/写日历条目等),并且我们希望LLM自动选择正确的函数调用来完成工作。
此外,当有太多函数可供使用时,无法将所有函数都放入上下文中,这时可以使用启发式方法,在当前处理步骤中选择要包含在LLM上下文中的最相关子集。
事实上,当有太多的文本无法作为上下文包含,检索增强生成(RAG)系统也是采用同样的方法,选择要包含的文本子集。