您当前的位置:首页 > 电脑百科 > 数据库 > 百科

AutoGPT 宣布不再使用向量数据库!向量数据库是小题大作的方案?

时间:2023-10-11 14:36:33  来源:InfoQ  作者:

生成式 AI 促进了向量数据库的火爆,但如今的技术风向变化似乎也挺快。作为全球最著名的 AI 项目之一,AutoGPT 宣布不再使用向量数据库,这一决定可能让不少人感到惊讶。毕竟从一开始,向量数据库就一直协助管理着 AI 智能体的长期记忆。

那么这个基本设计思路怎么就变了?又该由哪种新方案代替?对于大模型应用来说,向量数据库是必要的吗?

事情发展

AutoGPT 是今年 3 月 30 日发布的一种“AI agent(AI 智能体)”,类似的还有 LlamaIndex 和 LangChain。AutoGPT 一发布就名声大噪,上线仅 7 天就在 Github 上获得了 44,000 颗星。相较于之前一遍又一遍向模型输入提示词的用法,它能够自行工作、规划任务、将问题拆分成多个较小的部分、再逐个加以执行。毫无疑问,这是个雄心勃勃的计划。

AutoGPT 的设计思路还涉及一种以嵌入形式管理智能体记忆的方法,外加一套用于存储记忆并在必要时检索的向量数据库。从当时的角度看,向量数据库被认为是整个解决方案当中最重要的组成部分。而且其他通用人工智能(AGI)项目也纷纷采取同样的方法,例如 BabyAGI。

之前在默认情况下,AutoGPT 支持五种存储模式:

  • LocalCache (will be renamed to JSONFileMemory)
  • redis
  • Milvus
  • Pinecone
  • Weaviate

但现在查看 AutoGPT 的说明文档,我们会发现一条令人惊讶的警告消息:

AutoGPT 宣布不再使用向量数据库!向量数据库是小题大作的方案?

AutoGPT 最近刚刚经历了“向量记忆改造”,其删除了所有向量数据库实现,包括 Milvus、Pinecone、Weaviate,仅保留几个负责记忆管理的类。如今,JSON 文件成为存储记忆 / 嵌入的默认方式。

原因是向量数据库没有附加价值?

其实,AutoGPT 的维护者 Reinier van der Leer 于今年 5 月份就在 GitHub 上询问大家对“增加不同存储方式的价值”的看法,因为他们想进行重构,并打算放弃除“本地”内存提供程序(现在称为 json_file)之外的所有东西,同时努力实现 Redis VectorMemoryProvider。

有开发者对此表示赞同,认为如果后端足够好,那么没有理由保留这些向量数据库。“但我建议将 pinecone(如果有优势的话,那也可以是 redis)集成到自定义 JSONFileMemory 中。”

当然也会有反对者,他们认为“向量数据库比当前的 JSON 文件内存系统更高效。它们是为此类任务而构建的,可以简化开发并减少 token 消耗。”Reinier 对此进行了反驳,“这说法太笼统了,是否有例子或假设案例来证明这一点是正确的?”

至于以后要不要恢复向量数据库,该开发团队表示这肯定不是当前的首要任务,况且他们也没发现向量数据库能带来什么特别的附加价值。

在开发内存系统时,我们要关注数据结构,而不是存储机制。使用具有 JSON 持久性是最简单的实现方法,为实验留出了空间。

为什么 AutoGPT 一开始采用但现在又放弃向量数据库?是向量数据库的价值问题还是架构设计问题?InfoQ 询问了流数据库公司 RisingWave(risingwave.com)创始人 &CEO 吴英骏,他认为更多的是设计决策上的事情:

AutoGPT 最开始采用矢量数据库进行矢量存储与查询,相信单纯是为了快速打造产品原型,缩短开发周期。选用矢量数据库进行初代产品的开发可以更快得到高效可靠的矢量存储查询功能。而如今,AutoGPT 选择“放弃”矢量数据库,多半也是发现运维与使用矢量数据库的代价已经超过了其带来的好处。在这种情况下,重新自己造轮子更符合项目发展的长远收益。毕竟,在软件开发过程中,过早优化会带来极高开发成本与风险,导致软件复杂度不可控。

这也正如 AutoGPT 项目维护者 Reinier 所言,AutoGPT 支持多个向量数据库,确实会拖慢开发速度。那么像 AutoGPT 这样的大模型应采用向量数据库并不是必要的吗?对于长期记忆,我们还有其他选择?

该如何选型?

早在 4 月份,就有网友对 AutoGPT 最初的选择提出批评,认为向量数据库是种“小题大做的解决方案”。他的论证过程也很简单:

假设大语言模型需要 10 秒钟才能生成一条结果,即需要存储的单条新记忆。那么我们获得 10 万条记忆的时间周期将为: 100000 x 10 秒 = 1000000 秒——约等于 11.57 天。而即使我们用最简单的暴力算法(Numpy 的点查询),整个过程也只需要几秒钟时间,完全不值得进行优化! 也就是说,我们就连近似最近邻搜索都不需要,更不用说向量数据库了

那么我们应该如何为自己的项目选型?吴英骏老师认为,对于任何大模型应用,是否需要选用矢量数据库,完全取决于该应用对于矢量存储与查询的依赖程度。

“对于需要存储大量矢量的场景,如海量图像检索、音视频检索等,很显然使用矢量数据库可以获得更加强大、专业的功能,而对于数据量并没有那么大的场景来说,还不如使用 Numpy 等 Python/ target=_blank class=infotextkey>Python 库计算来的高效、便捷。实际上,在矢量数据库这个赛道上,也分为轻量级矢量数据库以及重量级矢量数据库等,到底是选择 PostgreSQL 上的 pgvector 插件还是选择一个专用的分布式矢量数据库,也是需要对于特定应用做出具体分析之后再做出决策。”

这个说法也符合如今 AutoGPT 项目的真实选择,使用 np.dot 进行嵌入比较:

AutoGPT 宣布不再使用向量数据库!向量数据库是小题大作的方案?

Andrej Karpathy 也曾在 Twitter 上表达过此类观点。之前他利用 OpenAI 的 API 建了一个大模型应用,有网友问使用了什么向量数据库,Karpathy 表示,不用追风一些“奇特的东西”,使用 Python 库中的 np.array 已经足够了。推文底下当即有人评论说,这种务实的观点应该传播到学术界和整个机器学习社区!

AutoGPT 宣布不再使用向量数据库!向量数据库是小题大作的方案?

写在最后

目前据我们所知,不采用向量数据库的也不止 AutoGPT:比如 GPT Engineer、GPT Pilot 甚至是 GitHub Copilot 等都不使用向量数据库——相反,它们通过最近文件、文件系统内的邻近度或查找对特定类 / 函数的引用来获取相关上下文。

是否选择使用向量数据库要看情况,而 AutoGPT 放弃向量数据库,是朝着正确方向迈出的重要一步,即专注于提供价值、而非深陷技术泥潭。

会不会有一天,向量数据库又将重返 AutoGPT?向量数据库到底算不算是 AI 技术革命中的重要组成部分?或者说,向量数据库 Pinecone 成为 AI 长期记忆方案的愿景,只是一句空洞的口号?或许也有人认为,真正的问题是像 AutoGPT 这样的项目并没能带来任何价值。也许目前我们能够论证的就只有这些,余下的只有靠时间来证明......



Tags:向量数据库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  Search: 向量数据库  点击:(4)  评论:(0)  加入收藏
简易百科之什么是向量数据库
随着大数据时代的到来,数据存储和处理成为了一个重要的问题。传统的关系型数据库已经无法满足一些场景的需求,例如大规模高维数据的处理和分析。在这样的背景下,向量数据库应运...【详细内容】
2024-01-15  Search: 向量数据库  点击:(166)  评论:(0)  加入收藏
腾讯云把向量数据库“卷”到哪一步了?
“不是我不明白,这世界变化快”,崔健在20世纪写下的这句歌词,放在刚刚过去的2023年,也同样适用。技术风向的变化之快,让不少人感到惊讶,向量数据库这一年的潮起潮落,就是一个典型的...【详细内容】
2024-01-14  Search: 向量数据库  点击:(65)  评论:(0)  加入收藏
纯向量数据库和向量插件都有局限,那未来发展有其他方向吗?
作者 | 张颖峰导读:向量数据库的争议差不多一年了,但我们一直缺少一篇能透彻讲解向量数据库相关问题的文章,这导致在这个领域的讨论一直没有得到充分的澄清。在这篇文章中,我们将...【详细内容】
2024-01-11  Search: 向量数据库  点击:(13)  评论:(0)  加入收藏
探秘向量数据库:从原理到商业应用的旅程
当我们谈及数据库技术,大部分人的第一反应可能是传统的关系型数据库,如MySQL、Oracle或SQL Server。这些数据库技术凭借其成熟稳定的关系型数据模型,已经在企业级应用中占据了...【详细内容】
2023-12-28  Search: 向量数据库  点击:(111)  评论:(0)  加入收藏
一文了解托管在亚马逊云科技的向量数据库MyScale
MyScale是一款完全托管于亚马逊云科技,支持SQL的高效向量数据库。MyScale的优势在于,它在提供与专用向量数据库相匹敌甚至优于的性能的同时,还支持完整的SQL语法。以下内容,将阐...【详细内容】
2023-12-28  Search: 向量数据库  点击:(97)  评论:(0)  加入收藏
如何评估向量数据库
导语:没有通用的“最 佳”向量数据库——选择取决于您的需求。评估可扩展性、功能性、性能以及与用例的兼容性至关重要。在当今数据驱动的世界里,非结构化数据的指...【详细内容】
2023-12-26  Search: 向量数据库  点击:(109)  评论:(0)  加入收藏
解读向量数据库
不论是RAG,还是Agent,几乎每个LLM 驱动的应用程序都可能会用到向量数据库。那么,向量数据库是什么?与传统数据库有何不同? 又如何选择向量数据库呢? 本文是老码农关于向量数据库的...【详细内容】
2023-11-27  Search: 向量数据库  点击:(133)  评论:(0)  加入收藏
初识向量数据库与pgvector实践
随着大语言模型的兴起,向量数据库正愈发受到人们的关注。作为对向量数据库的一名小白,近期简单对这一新技术方向做了些了解,特分享给大家。 1. 大火的向量数据库 1).什么是向...【详细内容】
2023-11-17  Search: 向量数据库  点击:(208)  评论:(0)  加入收藏
国内首个向量数据库标准发布
科技日报北京11月15日电 (记者都芃)15日,中国信通院联合腾讯云计算(北京)有限责任公司、中移(苏州)软件技术有限公司等多家企业共同编制的、国内首个向量数据库标准正式发布,...【详细内容】
2023-11-16  Search: 向量数据库  点击:(211)  评论:(0)  加入收藏
▌简易百科推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  京东云开发者    Tags:向量数据库   点击:(4)  评论:(0)  加入收藏
原来 SQL 函数是可以内联的!
介绍在某些情况下,SQL 函数(即指定LANGUAGE SQL)会将其函数体内联到调用它的查询中,而不是直接调用。这可以带来显著的性能提升,因为函数体可以暴露给调用查询的规划器,从而规划器...【详细内容】
2024-04-03  红石PG  微信公众号  Tags:SQL 函数   点击:(3)  评论:(0)  加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...【详细内容】
2024-03-28    51CTO  Tags:NoSQL   点击:(13)  评论:(0)  加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...【详细内容】
2024-03-27  dbaplus社群    Tags:数据库连接池   点击:(12)  评论:(0)  加入收藏
八个常见的数据可视化错误以及如何避免它们
在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可...【详细内容】
2024-03-26  DeepHub IMBA  微信公众号  Tags:数据可视化   点击:(6)  评论:(0)  加入收藏
到底有没有必要分库分表,如何考量的
关于是否需要进行分库分表,可以根据以下考量因素来决定: 数据量和负载:如果数据量巨大且负载压力较大,单一库单一表可能无法满足性能需求,考虑分库分表。 数据增长:预估数据增长...【详细内容】
2024-03-20  码上遇见你  微信公众号  Tags:分库分表   点击:(13)  评论:(0)  加入收藏
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select *...【详细内容】
2024-03-18  dbaplus社群    Tags:SQL   点击:(5)  评论:(0)  加入收藏
应对慢SQL的致胜法宝:7大实例剖析+优化原则
大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什...【详细内容】
2024-03-14  京东云开发者    Tags:慢SQL   点击:(4)  评论:(0)  加入收藏
过去一年,我看到了数据库领域的十大发展趋势
作者 | 朱洁策划 | 李冬梅过去一年,行业信心跌至冰点2022 年中,红衫的一篇《适应与忍耐》的报告,对公司经营提出了预警,让各个公司保持现金流,重整团队,想办法增加盈利。这篇报告...【详细内容】
2024-03-12    InfoQ  Tags:数据库   点击:(26)  评论:(0)  加入收藏
SQL优化的七个方法,你会哪个?
一、插入数据优化 普通插入:在平时我们执行insert语句的时候,可能都是一条一条数据插入进去的,就像下面这样。INSERT INTO `department` VALUES(1, '研发部(RD)', &#39...【详细内容】
2024-03-07  程序员恰恰  微信公众号  Tags:SQL优化   点击:(19)  评论:(0)  加入收藏
站内最新
站内热门
站内头条