最近在搞一个基于知识库的RAG小项目,数据量不大,大概几十万条文本,想用向量数据库存embeddings。看了不少教程,Milvus功能全但部署好像挺重,Qdrant轻量但怕后面扩展麻烦。我主要用Python和LangChain,有没有大佬能说说实际体验?比如召回率、维护成本这些,或者有没有其他更省心的选择?先谢过了!
向量数据库选型纠结中,Milvus和Qdrant哪个更适合新手做RAG?
全部回复
共 167 条几十万条文本其实不算大,Qdrant单机跑完全没问题,docker起个服务也就几分钟的事,真要后面数据涨了再迁也不难。Milvus那套etcd加pulsar的依赖链对新手来说光排错就够喝一壶的。召回率这块两者都调默认参数的话差别不大,关键看你的embedding模型和chunk策略。我自己的项目用Qdrant快一年了,LangChain的接口封装得挺顺,维护基本就是定期清一下wal日志。你要是特别在意省心,其实Chroma也行,但查询复杂点就有点吃力。
数据量不大真没必要上Milvus,Qdrant单机跑起来省心多了,后期真不够再迁也不迟。
几十万条这个量级其实不大,我个人觉得Qdrant完全够用,docker起个服务也就几分钟,LangChain集成也顺。Milvus那套分布式配置对新手来说确实容易劝退,维护成本不是开玩笑的。要我说你先用Qdrant把RAG流程跑通,等真到几千万条再考虑迁移也不迟,召回率这俩在数据量小的时候真没感觉出明显差别。
数据量不大的话真没必要一开始就上Milvus,光那个docker-compose配置就够折腾半天。我之前也是纠结这俩,最后选了Qdrant,本地跑个python客户端就完事了,LangChain集成也顺滑,召回率这玩意儿其实更看embedding模型和分块策略,跟库本身关系真没那么大。等真要到百万级再考虑迁移也不迟,而且Qdrant的cloud版也挺省心的,先把手头项目跑起来比啥都强。
你这数据量其实不用纠结,Qdrant单机跑起来完全够用,等真到瓶颈再换也不迟。
几十万条数据用Qdrant完全够,我上次本地Docker跑起来十分钟就搞定了,LangChain也有现成的集成,召回率跟Milvus差别不大。Milvus功能确实是全,但那个etcd加MinIO的组合对小项目来说有点杀鸡用牛刀,维护起来心累。你要是没啥集群需求,先Qdrant跑起来,真到了千万级再考虑换也不迟,反正embedding数据迁移成本不算高。
几十万条Qdrant足够了,部署简单还省心,后期真不够再换Milvus也不迟。