向量存储数据库该如何选择?
目前了解到的向量存储数据库有如下几种,主要的场景就是 RAG 开发,知识库数据量应该不算特别多,哪种更适合?
chroma 、
elasticsearch 、
Milvus 、
neo4j 、
opensearch 、
pinecone 、
qdrant 、
redis 、
vespa 、
weaviate 、
pgvector
elasticsearch
Milvus 这玩意好像是专门的向量数据库
chroma 、Milvus 。
postgres + 插件(PGVector / Svector ) pigsty.cc/zh/blog/pg/pg-eat-db-world/
#1 据说不咋好用啊
Milvus
最近我们也要搞 RAG ,也在这块选呢,大家也帮忙参考参考,最好能支持混合检索的
点乘和欧氏最好都能支持的
pg 也支持
Casibase ( github.com/casibase/casibase )是一套开源的基于 Web 的 AI 知识数据库,直接带有 RAG 聊天功能,也自带向量数据库。GitHub 已达到 2000+ stars ,欢迎体验~
先用 es ,大而全,文档多。唯一缺点是延迟相对高。有痛点的时候再蹚其它的坑
我用过 milvus 和 lancedb ,milvus 功能比较全面,lancedb python api 方便,适合快速开发小 deme 做测试用
milvus 是最火的那个
写个简单的测试集评估一下呗。当然也要结合你的应用场景,比如你想弄个简单的客户端程序,弄个 ES ……同样,你要部署于阿里云,opensearch 就是现成的。如果你用诸如 LangChain / LlamIndex 连接上述库写个测试不难的。
已经熟悉 pg 了,直接用了 pg + pgvector
看你数据量,10w 以下 pg+vector 没啥问题。然后你可以参考 dify 的选择看:他们之前是 weaviate ,现在说是推荐 qdrant 。 docs.dify.ai/v/zh-hans/getting-started/readme/features-and-specifications他们在一个 issure 中似乎提到了切换的原因,但我懒得去翻连接了
个人推荐 Milvus 性能很可以的
大项目用 Milvus ,小项目用 sqlite+faiss, 单文档用 csv+numpy
没人提 qdrant 吗
实际项目下来 es 最佳,pgvector.rs 其次,mivlus 等专门的向量库通用性太差,需求稍微复杂一点都不支持,而且做到后面往往需要混合搜索(传统搜索+向量搜索),这种 es 无敌
数据量不大的话用 milvus 最好,这个搜索速度和准确度都是最高的那一档,唯一的问题是 milvus 所有数据都存在内存里,数据量大很容易 OOM
不愧是最先进的开源数据库。明年估计也要搞类似东西了,先储备起来
pg + pgvector +1
Python的创造者Guido在最近一篇关于为什么Python里没有 Tail Recurssion Elimination (暂译:尾递归优化)的文章中提到一个我们可能经常听…
国外的云平台,还有开源项目很多都是基于 Ubuntu 的 国内的公司好像都喜欢用 Centos ? 之前听大佬们说,CentOS 中文社区多,出了问题,中文解决方案多。 这…
最近在学 react,遇到一个问题请教一下,假如组件都是用 function 定义的,如果页面的结构是这样的: 我想在 toolbar 中的一个 button 点击事件中获取…