个人随想-向量数据库,你到底应该选择谁?

image.png

随着大模型的新起,vectorstore这1、2年也非常的火。从以前只能用chroma到现在几十种向量数据库,选都选不过来。

以我接触过的很多公司来说,他们去选择向量数据库的时候,很多都和迷茫,不知道应该选择哪个向量数据库,甚至也不知道市面上有哪些向量数据库,甚至很多公司就随便选了一个差不多的,先用起来再说。

今天,我就抛砖引玉,以我对向量数据库的理解,来为向量数据库选型做一个对比和介绍,大家也可以聊聊你们现在用的是哪款向量数据库。

这里先不看云厂商的vectorstore,因为很多公司由于应用都在阿里云、腾讯云或者其他的云厂商,为了所谓的兼容或者减少运维成本,就直接选了dashvector或者其他的云向量数据库,我们仅来谈谈非云厂商的向量数据库。

同时我们再排除非专业做向量数据库的,比如redis,neo4j,cassandra,solr,clickhouse,elasticsearch,mongodb atlas。毕竟这些存储,不是用来专业做vectorstore的。

那么剩下来,在国内能耳熟能详的,我觉得有以下几个。

  1. pinecone
  2. pgvector
  3. qdrant
  4. milvus
  5. weaviate
  6. chroma

以上排名,不分先后,文章最后,我们根据我的项目经验,给大家稍微介绍一下优劣。

vectorstore选好了,接下来,就要看看从哪些维度来对比:

我们就从以下角度来吧:

1、base

1.1 oss : 是否开源,用户是否可以私有化部署

1.2 License: 采用什么license

1.3 DevLang:开发语言用的什么

1.4 VSS Lanuch: 第一个relase版本的发布时间

2、Search

2.1 Filters:过滤的意思是,在查询的时候,是否可以根据metadata进行过滤。比如大家都会的,在我们的rag高级实战课中介绍过的self-query,就是当用户的问题过来后,我们可以先通过filters过滤掉无用的document,从而达到很好的效果。特别是范围查询的时候,比如一个电影推荐的vectorstore,比如,用户如果问,香港的动作电影。这个时候,filters可以直接按照metadata按照地区和电影类型进行过滤。所以这个filters,一般的vectore,都应该支持。

2.2 Hybrid Search: hybrid search的意思是,我可以通过关键词keyword+向量搜索vector search一起进行搜索,这个在高级的rag中也经常使用,特别是使用RRF获取更多rag的相关结果。比如在电商中,可以先搜索关键词,搜索出来的结果后,再通过品牌,价格区间,评分进行细分,与lucene类似,如果大家以前对搜索有一定研究的话,就可以知道,这个相当于搜索结果再分组,类似与lucene、solr等搜索引擎。

2.3 facets: 与前面说的filters类似,facets也是用来过滤结果的。只是,filters是在查询前过滤,减少搜索范围。而facets用于查询结果出来以后,进一步细分或者分组。

2.4 Geo search :就是地理位置坐标的支持,从而可以快速的计算出多个位置之间的距离和联系。

2.5 Multi-vector:为了实现多视角查询、多模态查询、分层查询、混合语义查询,vectorstore需要支持multi-vector功能。

2.6 sparse: 有的时候,用户已经有特定需求或者已经有了现成的稀疏向量,而不需要依赖vectorstore或系统内置的算法来生成vector。.

2.7 BM25: 是否内置bm25

2.8 full-text : 是否内置全文检索,类似lucene、solr等

3、Models

3.1 Text Model: 是否内置或者插件支持类似sentence-transformers或者 huggingface等文本embedding模型。

3.2 Image Model: 是否支持图像embedding,比如CLIP.

3.3 Struct Model:是否支持struct model,比如user click,graph等。

4、Apis

4.1 langchain :是否支持langchain

4.3 llamaindex: 是否支持llamaindex

4.4 rag: 是否支持rag的全部高级功能

4.5 Recsys: 是否内置推荐系统等功能

5、ops

5.1 Managed: 是否提供云端管理

5.2 Pricing: 是否提供收费服务

5.3 in-process:应用程序级别的

5.4 Multi renant:是否支持多租户

5.5 disk index:是否支持硬盘存储index

5.6 ephemeral index: 在没有部署的情况下, 是否可用,比如Memory的支持。

5.7 sharding:是否支持sharding 负载均衡

5.8 document维度大小:最大支持的vector dims

5.9 int8 quantization:是否支持int8量化

5.10 binary quantization: 是否支持binary量化

5.11 index type: index的类型,比如:flat,flat-bq,hns,freshdiskann等。

接下来,我们2个2个比较一下:

image.png

image.png

image.png

image.png

image.png

image.png

大家可以根据上面的截图,和我上面的指标介绍,按照自己的业务系统对vectorstore的功能和部署方式,来选择您觉得最适合你们的vectorstore。

大家在选择向量数据库的时候,还是需要按照自己的需求来。看看你们的业务是否需要vectorstor的一些高级功能,比如:filter,hybrid search,facets,multi-vector,sparse,bm25等等。

另外,也是特别关键的一点,就是你的数据是否有严格的合规和安全需求,是否允许存储在云上。虽然存储在云上的好处很多,但是如果你们团队对数据资产十分的看中,您也可以选择类似qdrant的vectorstore,自有存储,自有维护。

还是那句话,大家在做向量数据库选型的时候,一定要多对比几个产品,同时一定要清楚公司的业务,到底需要vector提供什么样的能力,在来进行对比。

整个所有向量数据库的对比表格,如果您需要的话,私聊我,我把地址发给您。

关注我,每天带你开发一个AI应用,每周二四六直播,欢迎多多交流。

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值