本文来自微信公众号 “程序员贺同学”,作者:herongwei,纷传经授权发布。
大家好,我是程序员贺同学。
继前段时间爆火的 ChatGPT 后,又一个炸裂的开源项目 Auto-GPT 出现了。
仿佛一夜之间,AI 圈又出现了一个新晋顶流。我们来看看它有多?。
在 GitHub 上,仅最近不到两个礼拜,这个项目就收获了 2 万多个 Fork,目前总 star 数超过 11 万!
那 Auto-GPT 到底是个什么玩意?它背后的原理是什么?如何使用和部署它?它到底真的实用么?
带着这些问题来看这篇文章,下面我就给大家分享下 Auto-GPT 的介绍、最简单的部署方法、并且做一个简单的上手体验。
01
什么是 Auto-GPT?
Auto-GPT,顾名思义,自动的 GPT,是一个建立在 ChatGPT 的生成性预训练转化器(GPT)上的开源人工智能项目。
其核心是,Auto-GPT 赋予 GPT 自主行动的能力。
用大白话来理解,是什么意思呢?
假设你想用 ChatGPT 来计划五一假期去哪玩。你会怎么做?
好吧,你去问 ChatGPT。
输入 “帮我为推荐一下五一好玩的景点”。
“帮我整理一下不错的攻略”
。。。
你需要多次人工地向 AI 提问,直到你最后完成清单和攻略。
但有了 AutoGPT,你只需要告诉它一个目标,比如 “计划五一假期旅游,帮我收集一下景点攻略”,它就能够用程序全自动地完成目标。
包括去自动联网查询景点排名,然后收集各个景点的攻略然后返回给你。
当然,和人类一样,它也不是一步到位的,而是先自动向 AI 提问,然后根据 AI 的回答再自动提出新的问题,如此循环往复直到达成你告诉它的目标。
因为 AutoGPT 本身,也是结合了 LLM 大语言模型,相当于让 AI 来指挥 AI。
Auto-GPT 与 ChatGPT 有何不同?
ChatGPT 和 Auto-GPT 之间有很多技术上的差异,但其中一个关键的差异是自主性。
Auto-GPT 用 “人工智能代理”取代了 “人类代理” – 至少在其运作的很大一部分中,赋予了它一些貌似决策的权力。
让我们给你一个更清晰的印象,我们的意思是什么。
此外,AutoGPT 还有个很 ? 的能力,这里我们看官方的 Features 。
第一条,当它发现 GPT 无法回答他的问题时,会自动联网去网上搜索答案,这样就弥补了之前 GPT 训练数据只限定某个时间段的短板。
02
我们怎么玩 Auto-GPT?
这里个人推荐使用 GitPod 的云托管服务,直接用别人提供的服务器来部署 Auto-GPT,用来学习再好不过了。
避免本地搭建 Auto-GPT 可能存在环境、依赖不一致的情况。
首先访问官方仓库:https://github.com/Significant-Gravitas/Auto-GPT
然后点击 Fork,复制仓库到自己的 GitHub 中:
这一步要注意,建议取消勾选 Copy the master branch only !
因为 master 分支的代码可能是不稳定的。
Fork 成功之后,我们进入到自己的仓库中,把浏览器地址中的 github.com 改为 gitpod.io/# 。
比如我的是地址:https://github.com/rongweihe/Auto-GPT ,改成 https://gitpod.io/#/rongweihe/Auto-GPT ,然后访问,现在就可以一键用 GitPod 来部署项目了。
然后我们就进入到了 GitPod 项目主页,默认第一次会有一个提示,免费每个月 20 个额度,直接接受即可。
进去之后,就可以把这个网页当做自己的电脑(服务器)来使用了,比如使用 VS Code 编辑器来开发。
默认打开分支是 master,如果怕踩坑之类的,也可以选择切换 origin/stable 分支。
如下图:
然后,我们在左侧目录中找到 .env.template 文件,右键修改文件名为 .env ,并且修改 OPEN_API_KEY 为自己的。
因为 Auto-GPT 底层也是向 OpenAI 提问的,所以必须要有 OpenAI 的 key。
修改完成后,在终端中输入 ./run.sh 命令,就会自动安装所需环境和依赖,等着就好~
看到下图中的消息,就表示安装成功了!
然后我们按 ctrl + c 退出程序,直接用 python -m autogpt 命令来启动 autogpt。
比如执行 python -m autogpt --help ,查看 autogpt 的用法和参数说明:
上图中,有几个参数是需要额外关注的,比如:
-c:是否开启连续模式。这是一个非常危险的命令!
表示 autogpt 会不经过你的同意全自动执行,包括但不限于死循环、无限创建文件、占满空间后删除你电脑上的文件等等。
就和人类一样:可能会为了达到目的不择手段!
-l:指定连续执行的次数限制。可以防止死循环。
--speak:开启语音模式。但不是说在浏览器内部播放声音,而是生成音频文件。
OK,了解了这些后,我们来体验一下~
03
牛刀小试
为了对话使用方便,我实战的时候,直接选择了 Auto-GPT 的中文版(官网地址:https://github.com/kaqijiang/Auto-GPT-ZH/ ),使用操作也是和上面的一样的。
先来一个很简单的任务吧,让 autogpt 帮忙 “写一个网站吧,里面包含两个有趣的表情包”。
首先执行 python -m autogpt 命令,然后依次输入 AI 名称、AI 角色和目标:
然后 autogpt 就乖乖滴去工作了,我们可以看到他的想法、计划和下面要做的行动。
比如他打算到网上搜索更多信息,使用 Google 搜索命令。
我们可以输入 y 表示同意他这么做,也可以输入任何内容和建议来影响他的操作。
这里我就同意他吧~
然后呢,这货开始思考,并且认真的列起了计划!好家伙,看起来有模有样的。
创建一个 HTML 文件
添加表情包
生成 HTML 文件
打开 HTML 文件
同意之后,它很快自动生成了 HTML,并且尝试使用 Chrome 浏览器来打开网页,但是我的服务器上面没有可用的 Chrome 浏览器,所以直接报错了。
报错了之后,又开始陷入了思考,,,开始思考哪里不对了?
输入 y 表示允许,然后他就帮我们在工作空间下生成了 index.html 文件:
这个时候我去看它果然直接就生成了一个网站!并且把源码放在了仓库的某个目录下。
但是,打开之后,明显两个图片连接打不开啊,好家伙,这明显是在玩我呢?没有进一步校验图片的链接是否可用性。
那我们人工干预,给它一波反馈。
结果你猜怎么着,很听话的,又给我换了两个看起来可用的图片链接!
太乖了,哈哈,正当我兴致勃勃打开新的网站的时候,发现图片根本不存在呀!
好家伙,这仿佛又是在调戏呢?不听话啊!这次我的态度只能强硬一些,我让他:直接让他生成一个网页,里面包含一个有趣的视频链接!
这次,我滴乖乖,生成的视频链接终于可以访问了,但是当我打开的时候,发现了惊喜。
AutoGPT 给了我一个视频链接,我打开之后,是上面这个样子,这是啥玩意?
一只头上长着两只大耳朵的,像兔子的熊,在草地上和蝴蝶玩起了游戏!也不知道它是怎么找到这个视频的,不过看起来还是挺有趣的。
虽然过程有点小曲折,但不管怎么样,AutoGPT 也算是在短时间内完成了一个网站吧,给它点赞。
这里因为方便展示,我使用的中文版,众所周知,中文的数据训练和效果和英文版的还是有差异的,建议大家实际使用的时候可以优先用英文版。可能效果会更好。
04
思考
AutoGPT 背后的原理是什么?
作为 AI 小白,我自己也花时间研究了一下,我发现最核心的是 AutoGPT 使用“套娃”的概念来递归地调用自己,这是一种让 AI 模型使用其他模型作为工具或媒介来完成任务的方法。
你只需给它定一个目标,剩下的会由自主智能体自己完成。
它就像一个非常好的员工或队友。
不过,如果你愿意,也可以自行设计自主智能体,使其在某些关键决策时刻与你联系,以便你可以即时协作指导它们工作。
「这是原始 AGI(primitive AGI)。值得注意的是,只需将一个 LLM 包装在一个循环中,就可以获得一个自主智能体,它可以自己推理、计划、思考、记忆和学习。如果包装和 prompts 正确,LLM 可以被激发出无尽的潜能和灵活性。虽然整个概念诞生还不到一个月时间,但我已迫不及待地想看看由 LLM 构建的复杂智能体将如何影响世界。」 ——Runway 创始人兼 CEO 陈思琪
搜索引擎的价值是把信息获取的边际成本降为 0。
ChatGPT 的价值是把知识获取的边际成本降为 0。
而 AutoGPT 的价值,可能是把知识整理的边际成本降为 0。
自主智能体如今可被进行非常开放式的诠释和创新。
99% 的用例尚未创建或尝试,未来拥有无穷无尽的可能性,而机会就在你的手中!