最近在试着用LlamaIndex跑本地部署的Qwen2.5,想给公司内部搭个文档问答系统。但实际测试发现,直接让模型回答专业文档经常胡编,于是打算用RAG方案,先向量化存储PDF和Markdown文件,检索相关片段再喂给模型。现在卡在向量数据库选择上:Chroma看起来轻量但担心数据量大了性能不行;Milvus功能全但部署又感觉太重;还看到Qdrant和Weaviate,也不知道在中文文档上的检索效果有没有区别。有没有实际在本地搭过RAG的老哥分享下经验?主要是想兼顾易用性和检索精度,最好是能直接集成LlamaIndex的,别太折腾。先谢过!
部署开源大模型想用向量数据库做外挂知识库,该选哪个?
全部回复
共 167 条我们公司上个月刚用Qdrant搭了个类似的内部问答,数据量大概几万份文档,跑在单机docker上挺稳的,LlamaIndex集成也就几行代码的事,中文检索也没觉得比之前试的Chroma差。Milvus确实重,除非你们数据量真上千万级别,不然运维成本不划算。Chroma小规模玩玩还行,量一大就得换,不如一步到位选Qdrant。
我之前用Chroma搭过一版内部知识库,数据量小的时候确实舒服,pip装完就能跑,LlamaIndex集成也顺。但后来文档涨到几万页,检索延迟明显上来了,而且它默认的HNSW参数调优空间有限,中文分词也没特别处理,召回率会掉。后来换成了Qdrant,感觉是个不错的折中,Docker起一个单节点不重,过滤和payload支持挺灵活,中文检索效果跟embedding模型关系更大,跟库本身关系没那么夸张。Milvus我也试过,功能确实全,但光是依赖组件就够折腾半天,除非你们后面要上亿级向量,不然有点杀鸡用牛刀。Weaviate没深度用过,不过它自带模块化那套东西对新手不算友好。其实更该先确认你的embedding用的是哪个,Qwen2.5本身不做向量,得配bge或m3e这类中文模型,这块对精度影响比选哪个库大得多。
我用的Qdrant配LlamaIndex,中文检索还行,部署也不算重,你可以先拿小数据试试效果。
我之前也遇到过类似问题,后来换了方案。
学到了,感谢分享!
Qdrant配LlamaIndex挺顺手的,中文检索也没明显短板,数据量不大直接上它。
我上周刚踩过类似的坑,Chroma在几千份文档时确实还行,但到十万级chunk后检索延迟明显上来了。后来换Qdrant跑本地docker,集成LlamaIndex有现成vector store,中文检索召回也稳,部署比Milvus省心多了。不过中文效果其实更吃embedding模型,bge-m3配Qdrant在我这边明显比默认模型强,建议先把embedding选对再纠结数据库。