拥有自我意识的AI:AutoGPT
1、引言
ChatGPT在当下已经风靡一时,作为自然语言处理模型的佼佼者,ChatGPT的优势在于其能够生成流畅、连贯的对话,同时还能够理解上下文并根据上下文进行回答。针对不同的应用场景可以进行快速定制,例如,在客服、教育、娱乐等领域中,ChatGPT可以作为智能助手为用户提供便捷的服务和娱乐体验。
从GPT-3到GPT-4,我们可以看到在高级推理,输入设置,微调行为和理解更长的上下文信息等方面,ChatGPT在不断的优化训练中已经取得了显著的进展。
但是针对于这种交互式的GPT模型,我们更希望看到能像电影里的人工智能,拥有自我意识,可以进行自我学习和进化。不需要通过频繁的引导和交互,我们只需要简单提出一个目标,AI就能自主的完成所有的执行规划和逻辑处理,并不断进行自我论证和优化,最后完成我们提出的目标。
那么今天它来了,它就是ChatGPT的进化版本:AutoGPT。
2、什么是AutoGPT?
AutoGPT 是一个实验性开源应用程序,它利用 OpenAI 的GPT-4语言模型来创建完全自主和可定制的 AI 代理。它于 2023 年 3 月 30 日由 Toran Bruce Richards 发行。
Toran 是一名游戏开发商,并创立了一家名为 Significant Gravitas 的游戏公司。
在短短的一个多月时间里,AutoGPT的Git项目已经获得了超过120万的star,作为 GPT-4 完全自主运行的首批示例之一,AutoGPT 突破了 AI 的可能性界限。
与其他 AI 工具相比,AutoGPT 是独一无二的,因为它独立运行,这意味着你不再需要操纵模型来满足你的需求。相反,你只需要写下你的目标,然后 AI 会为你完成剩下的工作。因此,AutoGPT 从根本上改变了 AI 与人类之间的交互方式,人类不再需要发挥积极作用,同时仍然保持与 ChatGPT 等其他 AI 应用程序相同或更好的结果质量。
3、AutoGPT 如何工作?
AutoGPT 基于自主 AI 机制工作,其中 AI 系统创建不同的 AI 代理来满足特定任务,其中包括:
- 任务创建代理:当你在 AutoGPT 上输入目标时,第一个与任务创建代理交互的 AI 代理。根据你的目标,它将创建一个任务列表以及实现这些目标的步骤,并将其发送给优先级代理。
- 任务优先级代理:收到任务列表后,优先级 AI 代理会确保顺序正确且符合逻辑,然后再将其发送给执行代理。
- 任务执行代理:完成优先级排序后,执行代理将一个接一个地完成任务。这涉及利用 GPT-4、互联网和其他资源来获得结果。
上述代理之间相互通信。所以当执行代理完成所有任务,结果不理想时,它可以与任务创建代理通信,创建新的任务列表。三个代理之间的迭代循环,直到完成所有用户定义的目标。
AI 代理的行为也显示在用户界面上,将它们分为四组:思想、推理、计划、评判。
- 思想(THOUGHTS):AI 代理分享它对目标的想法。
- 推理(REASONING):AI 代理推理如何开展并实现它的想法。
- 计划(PLAN):AI代理通过分析,列举了所要完成任务的计划。
- 评判(CRITICISM):AI进行自我评判,纠正错误并克服任何限制问题。
通过共享此计算流程,AutoGPT 可以进行反复尝试论证,并进行针对性的优化处理,可以在没有任何用户干预的情况下克服所遇到的所有问题。
4、AutoGPT和ChatGPT的对比?
虽然底层的 LLM 模型是相同的,但是 AutoGPT 和 ChatGPT 之间还是有不少区别。
4.1 实时洞察
ChatGPT 使用的最新 GPT-4 模型是在与 GPT-3.5 相同的数据上训练的,该数据仅到 2021 年 9 月,你无法使用 ChatGPT 获得实时数据信息,因为你无法访问网站和在线平台来获取信息和提取信息。
相比之下,AutoGPT 可以访问互联网。它不仅可以上网冲浪,还可以验证来源是否合法。此外,AutoGPT 可以访问任何平台来执行任务。例如,如果你要求 AI 研究销售产品的前景并发送外联电子邮件,它会直接使用你的 Gmail 帐户起草并发送电子邮件。
4.2 内存管理
上下文窗口对于语言模型给出准确答案非常重要。但在像 GPT-4 这样的 LLM 中,窗口有 4000 到 8000 个令牌的限制。因此,如果要求超出限制,模型可能无法正确遵循所有指令,或者可能偏离正切并提供不可靠的输出。
相比之下,AutoGPT 擅长短期和长期内存管理。通过使用数据库,本地Cache和Redis进行内存管理,可以存储大量上下文信息或以前的经验,让AI模型做出更好的决策。
4.3 图像生成
AutoGPT 能够生成图像,因为它可以使用多种图像生成引擎,默认使用DALL-E 。如果你想为你的 AI 代理启用图像生成功能,你需要访问 DALL-E 的 API。尽管是多模式输入方式,但此功能目前在 ChatGPT-4 中不可用。
3.4 文字转语音
你可以通过在命令行中键入python -m autogpt –speak在 AutoGPT 上启用文本到语音转换。但是每次与 AutoGPT 交互时都必须输入命令。你还可以通过将 AutoGPT 连接到多功能 AI 语音软件 Eleven Labs,为语音添加不同的声音。
5、AutoGPT 的局限性
毫无疑问,自主性为AI系统增加了一个新的维度。同时,我们也不能忽视AutoGPT的局限性和风险。下面列出了你必须知道的一些关键限制。
5.1 成本高昂
虽然功能令人惊叹,但 AutoGPT 的实用性可能会让你失望。由于 AutoGPT 使用昂贵的 GPT-4 模型,因此即使是小任务,完成每个任务的成本也可能很高。这主要是因为 AutoGPT 在特定任务的步骤中会多次使用 GPT-4。
5.2 经常陷入循环
用户在使用 AutoGPT 时面临的最常见问题是它陷入循环。如果这种情况持续超过几分钟,则可能意味着你必须重新启动该过程。发生这种情况是因为 AutoGPT 依赖 GPT-4 来正确定义和分解任务。因此,如果底层LLM返回结果不足以让 AutoGPT 采取任何行动就会出现反复尝试的问题。
5.3 数据安全性
由于AutoGPT经过充分授权,能自主运行并访问你的系统和互联网,例如使用你的twitter账号,登录github,使用搜索引擎等,因此你的数据可能会被泄露。AutoGPT没有安全代理,所以你在使用 AutoGPT 时必须小心,如果没有给出正确的说明和安全指南,你不能让模型继续运行。
5、如何安装 AutoGPT?
与其他人工智能工具不同,AutoGPT 没有简单的注册程序来访问其平台和功能。在开始使用 AutoGPT 之前,你必须下载各种软件以满足要求。以下是详细的步骤要求:
第一步:下载必备软件
首先你需要有一个Git账号,同时需要安装Python3.1.0或者更高版本,此外你必须还能熟练使用常用的shell命令或者有Docker容器进行项目启动和配置。
第二步:设置你的 OpenAI API 密钥
如果你还没有,请创建一个 OpenAI 帐户(当然如果你在国内想要创建账号不是一件简单的事情,你可以参考网上其他文章进行账号申请)。打开OpenAI帐户后,打开USER – API keys转到 API 密钥选项卡。你将看到一个用于创建密钥的选项。单击它,然后复制密钥。
第三步:克隆最新版本的AutoGPT
(1)clone项目
打开命令行工具通过命令git clone https://github.com/Torantulino/Auto-GPT.git 将项目clone到本地
(2)执行安装
通过命令cd Auto-GPT && ls -al进入目录后,可以看到有很多的文件,其中一个文件是 requirements.txt。在此文件中,你将看到运行 AutoGPT 所需的模块。
要安装这些模块,可以使用命令pip install -r requirements.txt 进行下载安装。
(3)修改配置
通过命令vim .env.template your-openai-api-key),配置完成后执行mv .env.template .env 使配置生效
其他相关的配置可以参考表格按需进行
LLM PROVIDER | 可以配置OPENAI_API_KEY,是否使用AZURE |
LLM MODEL SETTINGS | 可以配置openAI提供的token限制,避免过度调用成本浪费 ,默认4000-8000 |
LLM MODELS | LLM 底层语言模型,默认可以选择GPT-4或者gpt-3.5-turbo |
MEMORY | 内存管理,可以配置local,redis,PINECONE,MILVUS等 |
IMAGE GENERATION PROVIDER | 图像生成,可以配置图像大小和图像生成引擎:dalle,HUGGINGFACE,STABLE DIFFUSION WEBUI |
AUDIO TO TEXT PROVIDER | 语音转文字,可以配置HUGGINGFACE |
GIT Provider for repository actions | github配置,通过配置github api key用于访问和管理github |
WEB BROWSING | 搜索引擎管理,可以配置不同的浏览器:firefox,chrome,safari,搜索引擎:google等授权open api用于访问互联网获取信息和管理访问深度 |
TTS PROVIDER | 文本转语音,可以配置MAC OS,STREAMELEMENTS,ELEVENLABS来进行文本转语音 |
TWITTER API | twitter账号管理,管理配置你的twitter账号,配置token用于访问对应的api |
AUTO-GPT – GENERAL SETTINGS | AutoGPT的一些默认配置,例如存放目录,开关,user Agent ,AI settings等 |
(4)开始使用
在完成以上配置以后,就已经完成了AutoGPT的基本配置,这时候就可以通过命令python -m autogpt 开启你的AutoGPT之旅 !
从上图可以看出,AutoGPT需要你为AI取一个名字[Name],一个角色定位[Role],同时你可以为它制定目标[Goals](最多5个目标,如果你仅有一个目标就直接回车)。
在你制定完成目标以后,AutoGPT会进行自主思考并分析你的目标[THOUGHTS],思考完成后开始理解并推理如何去完成这个目标[REASONING],然后开始自主拆解成具体的计划[PLAN],最后会提出评判[CRITICISM] 用以保证 AI 代理纠正错误并作出正确的决断。
完成以上的行为规划后,AutoGPT会提示它将要作出的指令和动作[NEXT ACTION], 里面包含具体执行的命令[COMMAND]和参数[ARGUMENTS],用户可以在此时可以对风险命令进行识别,避免出现数据泄露等预期外的风险,这里可以通过y或者n进行授权或者拒绝AutoGPT接下来的指令动作。
AutoGPT会通过以上步骤,进行多次循环,由于AutoGPT可以存储上下文和历史经验,所以每一次都会根据反馈结果进行更深入的思考,制定出更优的方案,最后列举他要执行的计划,反复尝试和补充,直到达到你预期的目标。
AutoGPT会通过以上步骤,进行多次循环,由于AutoGPT可以存储上下文和历史经验,所以每一次都会根据反馈结果进行更深入的思考,制定出更优的方案,最后列举他要执行的计划,反复尝试和补充,直到达到你预期的目标。
(5)Docker使用
当然,你也可以使用docker运行 :
// 最简单的方式就是通过docker-compose
docker-compose build auto-gpt
docker-compose run --rm auto-gpt
// 使用docker命令构建
docker build -t auto-gpt .
docker run -it --env-file=.env -v $PWD:/app auto-gpt
你可以传递额外的参数,例如,运行方式–gpt3only和–continuous模式:
// docker-compose
docker-compose run --rm auto-gpt --gpt3only --continuous
// docker
docker run -it --env-file=.env -v $PWD:/app --rm auto-gpt --gpt3only --continuous
6、总结
与传统的文本生成技术相比,我们发现AutoGPT的能力进化令人震惊,它可以通过分析你的目标,自动拆解成它需要执行的任务,并在执行的过程中根据已有的经验和决策不断优化完善和总结,同时AutoGPT获取信息的手段也非常丰富,它能通过搜索引擎搜索,github,网页工具等渠道下载和提炼所需要的信息,通过本地缓存,语音转化,图像生成等插件能力,最终完成你所设立的目标。这种自我意识,自我迭代和更新的形态已经非常接近于电影《流浪地球》里的moss这种人工智能!
最后问题来了,这篇文章是AutoGPT自动生成的吗?