最近在做一个RAG问答项目,文档量大概几十万级别,一开始用的FAISS本地跑,但老板说要支持线上多人并发,让我调研向量数据库。我看了两天文档,越看越迷糊。Milvus开源免费但感觉部署有点重,还得搭配etcd、MinIO那些;Pinecone用起来是真简单,但按量计费,我们这量估不准,怕月底账单爆炸。还有看到什么Qdrant、Weaviate,好像也很火?我就想存个向量加metadata过滤,然后做相似度检索,TopK大概20条。有没有用过的大佬说下,中小团队搞生产环境,到底选哪个坑比较少?现在卡在这个选型上,后面开发都推不动了。
向量数据库到底该怎么选?Milvus和Pinecone快把我整懵了
全部回复
共 26 条几十万量级真不用纠结,先上Qdrant单机顶住,等量大了再拆,部署比Milvus轻多了。
别光看Milvus和Pinecone,你这个量级和场景Qdrant其实挺合适,单机就能跑,Docker起个服务,metadata过滤和TopK检索都够用,部署比Milvus轻多了。Pinecone确实省心但费用真不好控,我们之前试过一波,查询量一上来账单肉疼。Milvus那套etcd加MinIO对中小团队运维成本偏高,除非你团队有人专门搞K8s。建议先用Qdrant顶着,等量真涨到百万级再考虑分布式迁移也不迟。
我们团队当时也是这个纠结,最后选了Qdrant。主要看中它Rust写的,单机部署比Milvus轻太多,而且自带payload过滤,不用像Milvus那样还得单独搭etcd那些。不过要是你预估数据量会涨到千万级,还是得回头上Milvus。
Pinecone那个计费确实容易踩坑,尤其并发和存储分开算,月底看到账单直接心肌梗塞。建议你先把TopK和QPS峰值定下来,用qBittorrent那种压测脚本跑一下FAISS的极限,再决定要不要上分布式。
另外你可以看看Weaviate,它的混合搜索挺适合RAG的,而且有官方K8s operator,但前提是你团队有人熟悉容器编排。
我们团队之前也卡在这,最后选的Qdrant,Docker起个服务就能跑,Rust写的性能也稳,几十万向量没压力,metadata过滤比Milvus直观多了。Pinecone确实省心但那个计费跟开盲盒似的,后来算了笔账,自建半年省下的钱够加两台服务器了。你FAISS已经在用了,迁移到Qdrant基本改个接口就行,建议先拿真实数据跑个压测,看并发和延迟能不能扛住。
我们团队最后选了Qdrant,Docker起个实例就够用,几十万向量完全扛得住,别被Milvus那套吓住。
几十万量级真不用纠结,FAISS加个分片都能扛,非要上库的话Qdrant单机模式够你撑到几百万,部署比Milvus轻多了。Pinecone计费确实坑,尤其metadata过滤多的时候cost涨得吓人。你重点看下Qdrant的payload索引,TopK20这种查询基本秒回,而且不用管etcd那堆依赖。另外Weaviate也试过,但文档和社区活跃度不如Qdrant,排错时候有点抓瞎。