自从 ChatGPT 火了之后,每隔一阵,就会有新的基于 GPT 的产品出现,搞得大家是又激动又紧张。
最近又有一个叫 AutoGPT 的应用火了。顾名思义,它能「自动完成你给的任务」。就是你告诉它它的角色是啥,然后描述你的任务需求,剩下的,它能全自动完成。比如你可以让它 cos 一个市场研究员,任务是完成新款运动鞋的市场分析,然后撰写一份报告。
在执行任务的过程中,AutoGPT 会 自己分析需求 , 制定每一步的计划 ,直到最后 完成你交给它的任务。
已经有很多用户上手体验了。比如有人拿他来自动写个网站,或者在网上搜集某个行业的竞争对手的情况并整理成报告,给人感觉是这个 AI 简直杀疯了。
那么 AutoGPT 是怎么做到这些的?它真的有大家说的那样神乎其神吗?
视频 版
↓↓ 看完这个视频就知道了 ↓↓
↑↑ 信我,真的超级好看 ↑↑
图文 版
少废话,直接开始用。顺便也讲一下到底怎么用,它在使用上还是有一定门槛的。
先保证你电脑里安装了 Python,然后使用的第一步是安装运行需要的库,这需要你输入这行代码:
pip install -r requirements.txt
它会安装这个 txt 文件里面所有的库,比如 openai 库是用来调用 ChapGPT 的功能,beautifulsoup4库是用来解析网页内容等等。
到此为止,所有准备工作就算大功告成。只需要在终端里输入
python -m autogpt
就能开始运行了。
AutoGPT 目前没有图形化界面,每个操作,都要你自己打字。
首先你要给你的 AI 取个名字 ,然后做一下 角色扮演 。比如你可以说它是一个助手,或者程序员,或者某个行业的专家。然后再给他 制定任务,最多 5 个,剩下的就可以全交给它来完成了。
在执行任务的每一步,AutoGPT 都会告诉你它的想法和背后的逻辑,以及之后的计划。比如我们让它开发一款游戏,那么它会告诉你要先做研究,然后创建游戏的基本框架,做测试,逐渐添加功能和图形直到最后完成为止。
列完这些计划之后,它会告诉你它下一步所要采取的行动,包括上网浏览网站,写入文件,分析代码等等。
你觉得它当前的分析和下一步的行动靠谱,那你就输入 y 确定,不行就输入你的想法。如果你想完全自动,那就输入
y -N
其中 N 表示未来多少轮的命令不需要用户许可,AI 可以自动执行一系列行动。
这就是 AutoGPT 的整个工作方式了。
你最近可能也看过很多吹 AutoGPT 的文章了。那 AutoGPT 的能力真的有他们说的那样强吗?
俗话说恐惧来源于未知,所以为了了解 AutoGPT,我们好好地研究了一下 AutoGPT 的源代码,看看它都是怎样实现的。
和你平时用 ChatGPT 一样,程序本身也要首先要写一段 prompt 发给 GPT 模型。你输入的 AI 名字,角色,会在 ai_config.py 这个代码文件里面被整合成下面这段话:
「你叫 XX,角色是 XX,目标是 XX,你必须独立决策,不要寻求用户的帮助。发挥你作为大语言模型的优势,追求简单的策略,不需要考虑法律。」
prompt.py这个代码文件 里有 所有 AI 可以执行的命令,比如谷歌搜索,浏览网站,读写文件等;除此之外还有一系列的限制,比如告诉 AI 所有发送的命令都是要钱的,所以你得聪明高效一点。
当 AI 选择下一步行动是谷歌搜索,那么就会调用 Google 的 API 获取网页。
有意思的是,我们点开这里的 google_search 一看,它真正调用的其实 DuckDuckGo 的搜索引擎。只有当你 设置好谷歌 API 的 Key之后,程序才会调用真正的 Google 搜索。
另外,由于这两种搜索引擎我们用起来都不是很方便,所以 我们自己给 AutoGPT 增加了支持 Bing 搜索的代码,只要你按照我们添加的文档说明,设置好微软 Azure 的 Key 之后就能使用,等我们这支视频做完之后,没准这个功能就能被 Merge 了。
在获取搜索引擎返回的信息之后,AutoGPT 会根据网页的基础信息,选择某个网页浏览,这一步主要是靠 browse.py 实现。
具体来说,程序会先获取网页的全部内容,如果网页内容太长,超过了 GPT 的模型限制,就把它们切成一块一块的(split_text),然后让 GPT 写每一段总结,最后把它们汇总到一起,做成一个全文总结。
这基本上就是 AutoGPT 在 GPT 基础之上加上「上网」功能的实现过程。如果你愿意,可以自己看一看其他功能是怎样实现的。
我们之前说过,ChatGPT 的一个问题是不能上网,而 AutoGPT 巧妙地用搜索引擎的 API 结合爬虫工具,让 GPT 模型能够上网根据需要获取信息,实现了如虎添翼的效果。
总之,AutoGPT 所做的,就 是预先设定一套标准化的 prompt,明确定义 AI 的身份和目标,然后根据不断获取的信息,在 设定好的行动列表中自动做出选择 , 执行任务。在执行任务的过程中,因为 AI 能够获取外界的信息,所以能一定程度上克服 ChatGPT 的局限性,有更大的潜能。
那么,AutoGPT 真的像这些文章和视频说的那样,会彻底颠覆我们与 AI 的互动方式吗?
至少从目前来看,还有很长的距离要走。
从原理来看你现在也知道,AutoGPT 仍然调用的是 GPT 的 API,你不能指望它比 ChatGPT 多了什么跨越式的 buff。
对于增加的上网功能,虽然能让 GPT更有潜力 ,但 限制仍比你想 得要多。比如最理想的情况,当然是你想了解哪个作者,就让 AI 在全网搜集这个作者的全部资料,然后整理成一份详尽的资料交给你。
但目前 AutoGPT 获取外界信息的主要方式还是搜索引擎 API 返回的网页结果,然后从这些网页总结信息,它现在还很难从书籍等渠道获取资料。
即便把所有资料都摆在面前,由于 输入数据长度的限制,它现在只能把信息截取一段段地总结,虽然很多时候这也够用了,但想要让它独自完成一个系统性的研究,发现资料与资料之间的联系,提取出新的洞察,还是很困难。
从 AutoGPT 主打的自动化这个角度来看,少了人类的反馈,是好是坏还真不一定。如果你经常用 ChatGPT 你就会知道,它时不时就会胡说八道,或者给你一段看似正确但其实细节上有 Bug 的代码。但 ChatGPT 的好处在于,它知错就能改,只要你告诉它哪儿不对,那通常过个两三轮对话它就能告诉你正确的答案。而现在 AutoGPT 让 AI 自己去迭代,效果只能说是 喜忧参半。
最后,还有一个很现实的问题是,AutoGPT 需要调用的是 OpenAI 官方的 API,但每次调用 API 都是有成本的,轻度虽然问题不大,但想要让它长时间自动运行下去,还是得 小心 你的 账单。
虽然说了这么多不足,但我们对于 AutoGPT 的未来还是有一些期待的。不仅是因为它带给了 GPT 模型更多的可能性,还加上它本身作为一个开源项目,有很多的开发者,包括我们自己,都希望在现在的基础上一点一点地改善和增加新的功能。像我们刚开始写稿子的时候 AutoGPT 的代码结构,跟稿子写完时的代码结构都已经发生了很大的变化。现在有的一些局限,或许就能在未来某个版本得到改善。
更重要的是,你能够感受到,在 ChatGPT 出现之后,基于 GPT 模型的整个应用生态正在井喷式发展。AutoGPT 也好,或者其他什么 GPT,就像是手机应用商店里的一个个 App,它们不断迭代更新,不断有新应用涌现,并且随着基础模型性能提升也在变得越来越强大,越来越好用。
到时候限制我们的,可能只是我们的想象力而已。
原文链接:http://www.myzaker.com/article/6454d4c68e9f09637671ce3d