2023-04-18 12:42:43 来源: 阿尔法工场
(原标题:Auto-GPT实测报告——虽不完美,但却是最有前景的AI路线)
AutoGPT GitHub Star增长情况
此前让LLM(大语言模型)火出圈的产品ChatGPT,最大的局限性就在于需要人工提供大量的原始信息和引导词(Prompt),才能让ChatGPT生成理想的内容。
(资料图片)
而Auto-GPT就是为了解决这个痛点而诞生的。它可以通过LLM自主产生Prompt,并且通过Google搜索和Python脚本来实现自己的目的。
Auto-GPT在推特上有很多收获了极高关注量的例子,案例的内容包括有商业调查、无代码生成APP或网页、自动化办公和文本生成等等。在加入了Stable Diffusion后甚至可以拥有图片的生成能力。
这一切听起来非常美好对吧?但是别忘了Auto-GPT仍然只是一个实验性项目,仍然有较大的局限性。 Auto-GPT的工作流程
由人类给Auto-GPT分配一个角色(例如一名写手),接着给他分配最多五个任务让他执行。Auto-GPT就会自己将任务列表拆解成某些具体的任务,并生成后续的任务执行列表。每一步可以是执行Google搜索、生成Python脚本、存储生成文本、执行脚本文件等等。
上述步骤主要依赖于以下几个部件: 1.基础框架:GPT-4和GPT-3.5,二者分别被成为聪明模型和快速响应模型。这两者共同充当整个Auto-GPT的大脑。不同的任务将会适时的分配给两种不同的模型以加快生成速度和降低成本开销。 2.自主迭代:从最原始的Task List中出发,将任务投入LLM中生成更进一步细化的Task List。再逐项完成任务并将结果保存。每次结果都会被选择性的放回LLM中再迭代生成回应。 3.内存管理:Auto-GPT默认使用一种向量数据库(保存在auto-on中)存储对话上下文,使得LLM可以获得长期记忆并且最大程度降低token(LLM中的数据量计数单位)的使用,防止超过输入限制和降低使用成本。除了本地向量数据库外,还可以使用Redis保存上下文进一步提升性能。 4.多功能部件:Auto-GPT被赋予了多种新型的工具,包括本地shell的执行权限、本地文件的读取和写入、Google搜索能力、Python脚本执行能力等等。 以上能力不仅仅赋予了Auto-GPT的联网能力,还使其拥有了部分本地操作权限,极大拓宽了AI的能力以及使用范围。 Auto-GPT初始化所需信息 Auto-GPT实测表现
测试一:自动化检索。
在这里定义Auto-GPT为一个Research GPT,可以自动化检索互联网信息并作出市场分析。任务分配就是找到市面上的Top5电视盒子并列出他们的配置和价格。 电视盒子信息 Auto-GPT找到了所需要的数据,但是也仅给出了分析出的Top5的盒子的参数和价格,并没有列出数据来源和评判标准。同时也没有做市场分析,只是单列出了数据和配置,没有针对所收集到的数据进行额外分析。
可以说虽然Auto-GPT降低了对Prompt的依赖性,但是对初始任务的描述详细性仍然要求较高。
2.测试二任务:自动写作。
这个测试中,Auto-GPT被定义为作家,要求写一个以赛博朋克为背景的科幻小说的大纲。
Auto-GPT完成的非常出色,其在文件夹中分别生成了几个文件:“赛博朋克大纲”、“对话”、“赛博朋克调查”、“世界背景”、“人物性格”、“人物目标及其背景”等等文件。每份文件中都详实地记下了其文件名的内容,而且每个内容都是基于同一个世界观下生成的。 本次任务仅仅只为创作一个故事大纲,但是他最后交付给我们了一个近似完整的故事。主角的设定也符合赛博朋克的背景故事。 Auto-GPT的长期记忆功能帮助了Auto-GPT可以始终保持在相同的背景设定里而不偏离。虽然没有完成整篇文章,但是故事脉络已经非常清晰,甚至已经可以说是在“创作”一些新文字了。 Auto-GPT当前的问题
1.开销极高
Auto-GPT是基于GPT-3.5和GPT-4而建立起来的。而GPT-4的单个token价格为GPT-3.5的15倍。
假设每次任务需要50个step(较好状况下),每个step会花费6K tokens的GPT-4 使用量,Prompt(提示词)和Completion(回答)的平均每一千tokens花费是0.05美元(因为实际使用中回答使用的token远远多于提示词),汇率为1美元 : 6.8人民币,那么花费就是50*6*0.05*6.8=102人民币。 GPT-4 API访问价格 GPT-3.5 API访问价格 注意,这仅仅只是理想状况下,而且假设了使用时Auto-GPT没有出现其他的问题(后续会提到),单次任务的成本就为100余元。这个成本显然是不可以被大规模应用的。
2.常见死循环现象 在执行任务的时候,Auto-GPT会将任务细化并分解。但是一旦遇到了一些GPT-4都无法处理的问题时,就会陷入自我循环,每一个step执行完后的动作都为“do_nothing”,而且下一个动作仍为这个。
但是每次都会将相同的Prompt交给GPT-4处理从而造成了极其大量的资源浪费现象。而且从目前来看并没有什么很好的解决方案。 Auto-GPT陷入死循环中常见表现 除了这种do_nothing类型的死循环外,还可以经常发现Auto-GPT的另一种死循环,即生成的python脚本执行的时候无法正确完成任务。
接着GPT-4就会尝试修复脚本,再重新执行。通常的修复可能分为很多步让人很难发现问题所在。但是通常来说这种修复都是不起作用的,就又会陷入另一种死循环。
3.执行速度过慢 从实测的第一个问题来看,还有一个非常大的问题就是响应速度过慢。GPT-4的生成token的速度就比GPT-3.5慢许多,再加上脚本执行其它指令(比如Google)所消耗的时间就更长了。
本次统计出Top5的电视盒子,Auto-GPT共耗时8分钟,进行了20个steps完成了总结。但是联网的AI工具除了Auto-GPT还有其它的AI工具可以完成,例如New Bing。 虽然Bing无法自我搜索网络评论并鉴别是否为虚假评论,而且数据来源比较狭窄,但是New Bing的响应只花了8秒,还提供了参考链接供读者自行参考,比起Auto-GPT更加直观。 总结
AGI,即通用人工智能,最重要的一个特点就是脱离人工监督可自行完成任务,并且可以完成一些“创意任务”。而Auto-GPT正是在当前条件比较有限的前提下对AGI做出的一个有益尝试。
通过主任务生成子任务(也有人叫子智能体)的方法而让AI通过LLM脱离人类监督自行完成任务可能是未来的发展方向之一。
当前的问题是LLM的能力还是比较弱,对当前的状态把握的还不够好,从而经常让自己陷入死循环需要人类的介入。而且虽然向量数据库成功赋予了AI中长期记忆的可能性,但是对于后续的任务缺无法继续沿用此前的记忆了。
执行速率也可以通过调整架构提升,例如将逐项执行的子智能体转换为可以异步同时执行的模式,大幅提升效率,每一步不强依赖于上一步,就可以极大提升运行效率。又可以像Bing一样快速获取信息,还可以自行分析获取内容达到超过New Bing的效果。
在可预见的未来,这种自动生成子智能体的AI会进一步发展,为复杂问题的解决给出一种新式的答案。