AI Agent目前应用落地有哪些局限性?
AI Agent感觉未来有前景,但实际效果上取决于大模型的影响,各位在实际的探索落地中遇到那些障碍,能分享一下吗?
说到底,目前的AI Agent落地应用,主要受限于其背后的大型语言模型在意图理解、任务拆解、语义推理和能力调度方面的能力,虽然外围的工作流和处理框架在不断完善,但核心依赖的语言模型能力距离全任务自主解决的目标还有很大距离。
首先,Agent 这个词在AI领域是一个很古老的词汇,任何能够感知环境、输入行动的实体都可以称为agent,发明agent这个词主要意图是将智能体与环境相区别:
An AI system is composed of an agent and its environment. The agents act in their environment. The environment may contain other agents.
在1995年第一次出版的著名教科书AIMA《Artificial Intelligent: A modern approach》中就用agent这个概念将全书的内容串联在一起,即各种搜索、知识表达、不确定性建模、学习技术都是在实现某种级别的agent。1997年专注智能体的国际会议International Conference on Autonomous Agents (AGENTS)开始举办,2002年与其他两个agent的会议合并为International Joint Conference on Autonomous Agents & Multiagent Systems (AAMAS)。
在这些学术研究中,修饰agent最多的词汇是“自主”,即autonomous agent,其次是intelligent agent。AIMA对AI的定义是
The study and design of rational agents
AIMA对“rational agent”理性智能体给出的定义是
An agent that acts so as to maximize the expected value of a performance measure based on past experience and knowledge
可见,对比AIMA给出的rational agent的定义,“Agent = LLM + planning + memory + tools” 并不科学,更多的是当下时髦词汇的拼接。
目前围绕LLM的工作,更适合叫做 language model-based agent 研究。
关于局限,从agent这个词的含义就能看到。wikipedia解释agent:
In artificial intelligence, an intelligent agent (IA) is an agent acting in an intelligent manner; It perceives its environment, takes actions autonomously in order to achieve goals, and may improve its performance with learning or acquiring knowledge.
其中能看到一个很关键描述是agent需要自主决策(take actions autonomously) 以达成目的(achieve goals)。目前围绕LLM的agents主要缺乏的就是
- 不能自主决策
- 不能达成目的
对比决策系统,例如AlphaGo,就能看到其自主决策能力的体现:找到超越人类历史数据的走法,达成目的能力的体现:取得超越人类顶尖选手的胜率。而目前围绕LLM的agents,其决策能力来源于对数据中相似决策文本的模仿,表现好坏取决于数据是否覆盖,尚难以针对给定目的形成自主决策。
无比赞同俞扬老师的看法,我认为真正的agent的决策能力应该是能做外推(extrapolation)的,也就是像alphago那样在人类历史棋谱上训练,却能找到比人类经验更好的策略。这才是一个真正能决策的agent,也同时是模仿和涌现(emergence)之间的区别。模仿者只会照猫画虎,而涌现出的决策能力才是真正的decision making的能力。
现在基于llm的agent是个啥水平呢?很多都是因为历史熟稔,所以能把历史经验复述给你听,但是碰到没见过的案例他是没着的,或者不能针对见过的案例给出比人类已知更好的解决方案。当然我认为llm会是agent的重要组成部分,因为经验在决策中的角色很重。只不过现在很多llm agent的paper就是prompting 套壳,光想靠更好的prompt已有的llm是根本没可能做成autonomous agent的。
就拿cvpr今年的best paper做例子。visual programming这篇文章其实就是拿gpt3做agent来解决vision问题。我对这篇文章没有意见,也觉得这个思路很新颖。但我个人很主观地反对接受这是vision未来正确的道路。我是认为这个work好是好,但是根本不值得follow。因为他所提出的逐步分解困难的视觉任务然后分而治之的思路只能够利用我们已知的解决方案和已经存在的模型,但我们都知道现在的视觉领域的根本问题根本就不是如何对已有模型进行排列组合。我们需要的是如何训练更好的模型或者更好的解决问题的思路,但gpt3、gpt4现在还都不能给出全新的方案或者idea。这也就意味着单纯prompting现有的llm只会将我们的知识局限在已经存在的人类知识之中。而我觉得AI Agent的未来应该是overman intelligence,超人智能,就像尼采的超人哲学一样,想人类想不到的,做人类所做不到的。
玩LLM和agent有一段时间了,目前觉得AI agent落地是一个很尴尬的阶段。学术上是一个富矿,有点当年专家系统火起来的感觉了。
agent work吗,他work,很多bert无法做好的任务,LLM能有不错的效果,在agent框架加持下,针对特定任务效果会好,不得不承认,不管是LLM还是agent在效果上都是实打实的进步。
那agent足够work吗,这个答案显然是否的。如果说以前深度学习大家是炼丹师,那现在做agent应用是真的木匠手艺人了。不同的记忆库,不同的prompt方法,用不同的LLM 拼起来效果差别都蛮大的。
那这些局限性是怎么产生的呢,有一个很核心的问题我称之为shallow reasoning,也即是说那怕是年初的GPT4,他的推理都是比较浅层的。GPT5可以解决吗,也许。但是这也有可能是decoder-only transformer架构的固有缺陷。所以目前看来agent的神经中枢还是很原始的阶段。
其实agent四大模块除了tool use都存在类似的问题。
记忆模块,目前的RAG也十分原始。仅仅通过文本相似性来搜索是不是也太简单粗暴了?比如说,我的目标是从A地到C地,但是我必须加油,中间只有B地有加油站,那么显然我需要完成A-B-C的路径。那如果我现在是A我想认识C,有中间人B。那我完全可以回想之前加油的例子,来完成我的目标。之前加油的例子虽然和当前任务是共通的,但是文本相似性很低。所以个人看法是我们需要更高级的记忆模块。
逻辑推理模块现在有很多比如,COT, TOT,GOT,类比相似的例子等等。这些模块一定程度上解决了浅层推理的问题,但是依然,目前agent的推理深度是不够。所以大部分论文还是在简单的数据集上测试(这里的简单数据集相对于之前的NLP方法也很难了)。那随之而来的问题是,对于不同的任务,我要选择哪种方法去推理呢,我需要花多少算力去推理是合适的呢?目前即使是最高级的prompt技巧,也需要很多手工调整。所以推理模块也依然是十分原始的。
如果不说那么远,如果基于目前agent已经有的能力去落地呢?依然还有很多问题。
从需求上,比方说现在agent可以帮你订个外卖,酒店,机票。问题是他真的比用APP顺手吗?我想我们不要小看了十多年来移动互联网发展中,对APP的优化程度。再比如说像characterAI这样,真的比刷抖音和看短剧有意思吗?
目前觉得几个比较好的应用方向是,医疗多模态大模型+agent,如果医疗影像可以对于新任务可以直接few-shot,而且效果能够商用,会是一个很好的突破。还有做游戏也是很好的方向,agent可以产生很多很有趣的游戏内容,我想这类游戏已经在路上了。还有社交领域,当然这里不是真人社交,是虚拟伴侣,虚拟偶像,这些需求肯定是存在的,但是产品开发也需要摸着石头过河。
至于软件开发,现在用GPT4的能力,完全是扯蛋的。
最后是算力的问题,serving cost真的太高了。现在能做agent的LLM,只有GPT4,3.5水平同样的模型做agent很勉强。一个用户单次交互,也许要花好几毛人民币。什么样的产品,满足什么样的需求才能卖得起这个价钱呢?
所以说目前落地是个尴尬的阶段,要么等算力,推理框架,蒸馏技术发展,让服务成本足够便宜。要么等agent这套框架发展处更好的记忆,和推理能力。
如果说目前大模型还是一个不太可控的孩子的话,Agent 就像是给孩子布置了一个任务:骑自行车。现在的 Agent 呢,就像是给自行车上装了两个辅助轮子。
在计算机或者 AI 领域,Agent 一般翻译为智能体。
维基百科上关于 Agent 的解释如下:
In artificial intelligence, an intelligent agent (IA) is an agent acting in an intelligent manner; It perceives its environment, takes actions autonomously in order to achieve goals, and may improve its performance with learning or acquiring knowledge.
翻译过来就是: Agent 是采取智能行动的行为主体。它能够感知环境,为了达到一定目的可以自主的采取行动,并且可以通过学习或者知识来提高自身性能。
Agent 可以非常简单,比如你用 PID 实现了一个温控系统,这个简单的系统就是一个 Agent。它感知周围环境温度的变化,热了就开空调,冷了就关空调,还是有点小智能的。
人这么复杂的动物当然也是智能体,尤其是你女朋友生气的时候,你感受到了周边环境发生了剧变,这时候你开始飞快的思考,要采取什么样的行动才能哄女朋友开心?哎呀,怎么哄了还是不理我!采取进一步行动,打开百度搜索:“如何哄女朋友开心?”,用知识的力量武装自己,非常的智能:)
为什么大家都在说 Agent ?
2023年初,在 ChatGPT 上线三个月后, Agent 开始流行。
其实在 AI 领域的很长一段时间内,Agent 的概念更多的是在强化学习中。
只不过大模型出来以后呢,大家发现 GPT “涌现” 出来一些智能。之前虽然大家都说自己的 AI 多么多么牛逼,但是实际上大多数都是判别式模型,只是在某些特定的领域进行了一些识别,能够理解一些东西是什么。可以简单的理解为之前的 AI 就是个没有感情的工具人,只能干一件事情,换个别的干不了。
而 GPT 在经过大数据+大算力的训练后大家发现它记住了知识,它有极强的泛化能力,关键是它能举一反三了。虽然现在本质上可能还是一些拙劣的模仿,但是这已经非常让人兴奋了,人类第一次让一个东西有了简单的智能,而且这个东西只需要通上电就行。
当一个有一定的智能之后,再回想一下 Agent 的概念,那自然就有个疑问,大模型是 Agent 么?
好像还不是,因为 Agent 需要有一个目标去达成。但是大模型非常适合作为 Agent 的组件。
现在基于大模型的 Agent,实际上的全称应该叫:LLM-powered autonomous Agent。更具体的 Agent 分类可以看后面的附录1,这里不再赘述。
去年2月份,斯坦福的一篇论文:《Generative Agents: Interactive Simulacra of Human Behavior》打响了 Agent 的第一枪,在这篇论文之后有两个基于 ChatGPT 的 Agent 项目迅速爆红:AutoGPT 和 BabyAGI。
去年6月份,翁丽莲提出了一个基于大模型的 Agent 的公式:
后来也有些新的公式,但是跟这个公式大同小异。比如
Source | 作者 | Agent = LLM + ? |
---|---|---|
LLM Powered Autonomous Agents | Lilian Weng | 规划 + 记忆 + 工具 |
A Survey on Large Language Model based Autonomous Agents | 中国人民大学高瓴人工智能学院 | 分析 + 记忆 + 规划 + 动作 |
he Rise and Potential of Large Language ModelBased Agents: A Survey | FudanNLP | 感知 + 控制 + 行动 |
然后下半年又引入了 Multi Agent 的概念,应该是从 Multi Agent Reinforcement Learning 借鉴过来的。
Multi-agent 相比于 single agent,有点像过家家,大家 Cosplay 不同的角色,来一场头脑风暴,Slogan 就是:三个臭皮匠顶一个诸葛亮。
为什么 Agent 这么火呢?因为这确实是未来发展的一个方向,可以讲一个很好的故事。
比如老板给你安排了一个任务,你借助大模型完成了,给老板汇报,下面是两种汇报方式:
低情商: 我调用了 OpenAI 的接口完成了个任务。
高情商: 我做了一个 Agent。
你学费了么?
当前 Agent 的缺陷和挑战
我们先说一下目前 Agent 存在的一些问题,一些 Agent 的实现细节和技术放在最后,我知道很多人不爱看。
既然 Agent 主要靠大模型驱动,那 Agent 自然也全盘继承大模型的缺陷。
缺陷1: 大模型的可控性差导致 Agent 不稳定。
可控性差这个缺点就很致命,某种程度上来说也是导致目前大模型出来这么久了依然没看到除了聊天以外的成功商业案例。商业是这样, Agent 也一样。你也不知道大模型会把 Agent 这辆车开到什么地方。
关键是 Agent 已经努力的在工作了,也没摸鱼,就是有时候努力的方向不对,废品率太高,成本有点把控不住。
之前我试用过 AutoGPT,当时用的 GPT 3.5 的 API,发现任务一复杂,Agent 直接就跑飞了,还经常卡在自我循环里出不来了,白白浪费了很多 token。据说用 GPT 4 会好一些,但是也只是缓解,很难从根本上解决。
OpenAI 一个很好的改善就是可以让模型强制输出格式正确的 json。这一点不知道他内部是如何做到的,猜测可能是专门对输出格式进行了对齐,然后再加上一个后处理来兜底。模型大概率输出 json,当输出不是 json 的时候重新输出。这样在用户侧就会得到可解析的 json,相当于把不可控的部分自己内部消化了。我觉得这个是大模型产品或者 Agent 设计上一个可以借鉴的地方。
缺陷2: 大模型的无状态和处理长度
大模型本身是无状态的,所以一些历史交互信号输入它是记不住的,所以只能外挂一个 Memory 来处理。但是大模型一次能处理的长度也是一个瓶颈,这极大的限制了 Agent 的能力。
去年上半年主流大模型处理为 4096, 后面越来越大了,比如 16k,还有 128k 的。随着发展,跟处理速度一样,也许越来越不是一个问题。
缺陷3: 目前大部分 Agent 还是小聋瞎。
目前 Agent 的输入信号大多还是文本。多模态的 Agent 非常少,清华开源了 CogAgent,其他大多数都是商业公司在搞,比如 Adapt.ai。
缺陷4: 现在 Agent 的研究依然不是很成熟。
直到去年8月份,关于LLM-powered autonomous Agent 的一些测评才逐渐出现,比如 AgentBench,不得不说清华老哥这方面进展还是比较前沿的,华子加油。
缺陷5: 效率低下,实在太慢。
大模型推理目前本来就不快,Agent 一般要通过调用多次大模型来完成任务,那自然是更慢了。整个体验就像是用 2G 的手机看视频,漫长的等待。
但是这个问题在未来估计就不是问题了,摩尔定律还在,就像 2G 早晚发展为 5G 一样。
Agent 现状的一些个人看法
由于上面提到的一些缺陷,LLM-powered autonomous Agent 目前其实还有很长的路要走,大家目前可能过于乐观了。从技术成熟度曲线来看,我们也许处于如下的位置:
后面可能会稍微降降温至后才会迎来真正蓬勃的发展。
如果说目前大模型还是一个不太可控的孩子的话,Agent 就像是给孩子布置了一个任务:骑自行车。现在的 Agent 呢,就像是给自行车上装了两个辅助轮子。
当前 Agent 的一些理论探索
其实看翁丽莲的这篇就差不多了:
LLM Powered Autonomous Agents
当前的一些 Agent 简述
下面列举一些 Github 上比较火热的 Agent 项目,实际用下来,展示的 case 都挺好,但是去解决一些真实的任务时,大多都是过家家,但是也建议大家看一下里面的一些思路。
AutoGPT
- 主要是 Prompt 上的创新,给了20多个 todolist,然后让模型去判断下一步要干啥。使用 GPT-3.5 几乎无法完成任务。
BabyAGI
维护了一个优先队列,然后让大模型来执行 Makefile 的功能。
GPT-engineer
- 上岸第一剑,先斩意中人。用 Agent 把码农干掉。
- 可以认为是后面的 chatdev 的简易版,但是 Prompt 上做了一些创新,加入了澄清机制。
GPT-Researcher
- 用 RAG 的方法来生成一个研究报告。
OpenGPTs
- langchain 出的产品。
- 目前功能还比较简单,全面对比 OpenAI 的 GPTs
OpenInterpreter: chat with your computer
- 电脑小助理,用自然语言指挥电脑完成你想要的任务。
- 不过一看就是码农做的产品,还要在终端里打字。会在终端里打字的人会用这个么?最起码也搞个瑞星小狮子吧。
Camel
- 算是早期探索 Multi Agent 的研究,两个 Agent 一起解决任务。
- 后面还有个瓜,就是微软的 AutoGen 采用了 Camel 的思路但是没有引用。微软的名气又很大,导致好多人认为 Camel 是抄袭 AutoGen 的。Camel 的作者专门写了个声明:
Guohao Li李国豪:关于CAMEL(NeurIPS2023)和AutoGen声明
AutoGen
- 感觉就是在 Camel 上做的扩展。AutoGen 多了一些群聊等东西。
- 微软的AutoGen提出的UserProxyAgent和AssistantAgent和我们概念上一致,没有任何引用和讨论。
ChatDev
- 从 Camel 的2个 Agent 扩展到多个,设置不同的角色来开发软件。
- 但是底层代码直接用了 Camel, 所以虽然是多个 Agent,但是还是两两聊天。
MetaGPT
- 和 ChatDev 干的事基本一样,都是开发软件。
- 其实也挺有意思的,可以看出国人在开发软件上和老外思路上的一些差异。
- 与 ChatDev 的区别见:https://github.com/OpenBMB/ChatDev/issues/24
XAgent
- 和 ChatDev 师出同门,都是刘知远团队做的。
- 整体就是 Divide & Conquer + Feedback 的思路。
memgpt
- 在大模型的基础上建一个操作系统
Appendix I: Agent 的分类学
关于 Agent 的分类其实有很多,早在1996年,Stan Franklin and Art Graesser 就对 Agent 做了一些可能的分类,如下:
Property | Other Names | Meaning |
---|---|---|
reactive | (sensing and acting) | responds in a timely fashion to changes in the environment |
autonomous | exercises control over its own actions | |
goal-oriented | pro-active purposeful | does not simply act in response to the environment |
temporally continuous | is a continuously running process | |
communicative | socially able | communicates with other agents, perhaps including people |
learning | adaptive | changes its behavior based on its previous experience |
mobile | able to transport itself from one machine to another | |
flexible | actions are not scripted | |
character | believable "personality" and emotional state. |
但是大家最常用的,还是 autonomous agent, 也就是自主智能体。毕竟 autonomous 是出现在定义中的。还梳理当时的一些 Agent 关系。
回到今天的主角,现在基于大模型的 Agent,实际上的全称应该叫:LLM-powered autonomous agent。
Ref:
- https://ccrg.cs.memphis.edu/assets/papers/Is%20it%20an%20Agent,%20or%20just%20a%20Program%20-%20A%20Taxonomy.htm
- LLM Powered Autonomous Agents
- 后面提到的各种 Agent 大家去 github 上按名字搜一下都有。
本文写于2024年1月,技术发展很快,期待 Agent 早一天落地。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/11477.html