乐趣区

关于人工智能:AutoGPT-迈向智能体的第一步从信息增强和上下文理解开始

Auto-GPT 的呈现,意味着 AI 曾经可能在没有人工烦扰的状况下独立地实现指标工作。这个在 GitHub 中一直发明历史的我的项目,正以惊人的速度倒退着、变动着。

这样前沿又带有科幻色调的技术我的项目,引起了各方关注,开发者、投资人、媒体人,难掩对 Auto-GPT 的激情。作为相干畛域的技术开发者,咱们天然也不例外。

明天,咱们将带着对它连月以来的摸索和实际,和大家探讨 Auto-GPT 的背地原理、局限性及其背地的解决方案。

Auto-GPT 到底是什么?

Auto-GPT 是一个开源的自动化人工智能的试验我的项目,利用 LLM 来拆分工作与打算工作,并配合从属的额定可执行指令来达成用户提供的指标。

艰深点来了解,Auto-GPT 应用以 GPT 为代表的大语言模型(LLM)和人类反馈来剖析和合成大型工作,并将特定的命令调配给这些已被合成的小工作且主动执行,同时命令执行后果又会作为下一轮认知解决的输出。上述程序会反复进行,直到 Auto-GPT 实现工作。

由此,咱们便能够意识到,Auto-GPT 整体有两个外围局部:LLM 和命令集。一方面,LLM(如 GPT),负责认知解决。另一方面,Auto-GPT 内置了十分多命令组件,比方文件读写、代码剖析、搜寻能力、网页剖析等等。加之 Auto-GPT 目前反对第三方的插件式开发,命令集得以大大拓展。据悉,目前它曾经能够反对向必应、百度等进行搜寻。乏味的是,这些插件和命令很多也是依赖于大语言模型得以实现,例如网页和代码剖析能力等。

能够说,LLM 就是 Auto-GPT 的“大脑”,叠加各种插件 buff 加成的命令集就像是 Auto-GPT 的“手”和“感官”,它们相互配合,使得所有颠三倒四。

向量数据库——当下最为风行的 Memory 加强神器

尽管 Auto-GPT 能够主动执行工作,但它在了解信息和存储上下文方面仍有肯定的局限性。

在自主 AI 程序中,为了实现用户设定的指标,必然会产生多个步骤。然而,这些步骤并不能独自发给 GPT 模型,否则将失落上下文。如果没有上下文,自主程序无奈判断以后执行动作是否正确,也就很难向凑近最终的指标。这里的上下文相似于训练模型中的 loss;然而,如果每个步骤都把所有历史音讯发送给 GPT 模型,用户设定指标的复杂程度将受到极大的限度。过于简单的工作必然须要被拆解成更多小步骤进行解决。这会导致天然历史对话变得长,其 token 数量也会减少,使得 token 数量超出 LLM 可解决的范畴。

为此,开发者们在 Auto-GPT 中也尝试过两种计划来加强其信息存储和对上下文的理解能力。

其一,应用 LLM 对 Memory 进行 Summary。这是以后 Auto-GPT 正在尝试的一种计划,便于管制 Memory 的规模。其劣势显而易见,即在小规模的状况下能够播种不错的成果,每次传导给大模型的 prompt 概括度会更高。不过,该计划仍然会受制于 token 数量,除了老本昂扬以外,Auto-GPT 实现的工作复杂度也不会太高。

其二,利用向量数据库来保留 Memory。除了保留记忆,向量数据库也能承当起检索相干 Memory 的角色,流程大抵如下:

  • 在每个步骤运行实现时,将 command 信息和执行后果数据进行 embedding 操作,插入向量数据库中;
  • 在进行下一次工作生成、构建 context 时,获取历史窗口中的音讯;
  • 将上述历史音讯全副作为向量数据库搜寻的输出,而后获取 topk 的历史音讯。这些 topk 的历史音讯绝对于之前固定窗口的上下文信息跨度将减少。同时,依据这些类似信息,自主程序将得悉之前与以后动作相似的执行后果,这样就可判断之前行为对于实现工作是否无益,从而更加精确地生成下一个 command 的信息。

只管计划二也存在肯定的局限性,不过它仍是以后最为通用的一种计划。

如何将【记忆神器】集成到 Auto-GPT 中?

在最近更新的 Auto-GPT 版本中,Auto-GPT 临时只反对第一种计划来了解上下文,想要体验向量数据库的小伙伴能够应用一个历史版本进行体验,链接为:【https://github.com/SimFG/Auto-GPT】。

在实现上述筹备后,大家就能够应用 Milvus 试水了。

作为寰球最受欢迎的开源向量数据库的代表,Milvus 可能解决数百万、数十亿向量的大型数据集。因而,有需要的小伙伴能够依照下述形式将 Milvus 与 Auto-GPT 进行集成。

  1. 拉取 Milvus 的 Docker 镜像并应用 Docker Compose 装置;
https://github.com/milvus-io/milvus/releases/download/v2.2.8/milvus-standalone-docker-compose.yml
docker compose up -d
  1. 在 python 环境中装置 pymilvus 客户端;
pip install pymilvus==2.2.8
  1. 更新 .env 文件。
MEMORY_BACKEND=milvus

当然,如果感觉部署和保护 Milvus 比拟麻烦,举荐大家应用 Zilliz Cloud,能够提供开箱即用的向量数据库服务,轻松帮你治理 Auto-GPT 的内存。

Zilliz Cloud 在寰球范畴内领有宽泛的用户根底,是 OpenAI 指定的 ChatGPT Retrieval 插件提供者。目前已笼罩 AWS、GCP,往年 6 月底行将登陆阿里云,国内其余几朵云也在筹备中。

以下是在 Auto-GPT 中应用 Zilliz Cloud 的办法:

  • 登陆或注册 Zilliz Cloud 的账号(https://cloud.zilliz.com/signup),当初注册即可获赠价值 $100 的 credit,享受 30 天收费试用的福利,绑定领取形式可获赠价值总计 $400 的 credits;
  • 创立一个数据库并获取公共云端点;
  • 装置 pymilvus 运行 pip install pymilvus==2.2.8,用下述命令更新 .env 文件:
MEMORY_BACKEND=milvus
MILVUS_ADDR=your-public-cloud-endpoint
MILVUS_USERNAME=your-db-username
MILVUS_PASSWORD=your-db-password

写在最初

不可置否,向量数据库为 Auto-GPT 的联合对于加强 Auto-GPT 的能力至关重要。不过,正如前文所言,这背地存在肯定的局限性。例如:

  • 从向量数据库中获取 top-k 音讯时没有进行过滤,类似度极低的信息可能会对 GPT 模型产生误导,从而减缓实现预设指标的速度;
  • 上下文数据只能进行增加和查问,退出清理性能会更好;
  • 无奈自定义 embedding 模型,目前只能应用 OpenAI 提供的 embedding 接口。

当然,向量数据库和自动化 AI 的联合远不止如此,仍有诸多可能性:

首先,能够设想到的是将来自动化 AI 可能具备主动纠错的能力,在其发现错误后,主动纠错能够通过快照的形式复原进入谬误路线前的记忆。此时,应用向量数据库来为快照复原以及谬误路线提供标记就是一个不错的计划。

其次,以后自动化 AI 的 Memory 构造依然偏线性,然而事实世界中的简单业务不太可能被线性地实现,Memory 可能是树状甚至是图状的构造。此时,咱们须要整顿及存储简单的 Memory,向量数据库就是一个很好的抉择。

再者,存储总是比计算便宜,将来自动化 AI 会产出大量的重复性数据(可能是同一个 AI Agent 的,也可能是十分多 AI Agent 的反复行为),应用向量数据库作为缓存能够大幅降低成本与进步响应速度。目前,曾经有针对响应的解决方案呈现,例如 GPTCache(点击理解更多)。

点击获取 Auto-GPT 相干 PPT 和视频解说。

(本文作者系 Zilliz 软件工程师付邦、叶祯)


  • 如果在应用 Milvus 或 Zilliz 产品有任何问题,可增加小助手微信“zilliz-tech”退出交换群。
  • 欢送关注微信公众号“Zilliz”,理解最新资讯。

本文由 mdnice 多平台公布

退出移动版