最近在做一个企业内部知识库问答的RAG项目,文档量大概有几十万篇,主要是PDF和Word。前期用ChromaDB搭了个原型,但检索速度越来越慢,而且感觉余弦相似度的结果不太准。现在想换一个生产可用的向量数据库,看了Milvus和Weaviate,感觉Milvus社区更活跃但部署有点重,Weaviate上手快但听说中文支持一般。我的场景主要是中文文档,需要支持混合检索(关键词+向量),而且后面可能要接大模型做rerank。有没有实际用过这两款的朋友?哪个更适合中小团队快速落地?先谢过各位大佬。
RAG项目用Milvus还是Weaviate?求过来人给点建议
全部回复
共 10 条之前做知识库时也在这俩之间纠结过,最后选了Milvus。你说的部署重确实存在,但官方helm chart跑起来其实还行,而且它那个混合检索(BM25+向量)在中文场景下比Weaviate的混合搜索更灵活,尤其是做rerank时Milvus的迭代兼容性更好。不过如果团队运维人力紧,Weaviate的轻量和内置图查询确实香,就是中文分词得自己调一下。建议先拿几百篇文档压测下Milvus的GPU版,实测下召回率再决定。
Milvus部署确实重,但中文混合检索比Weaviate稳,中小团队建议先试试Milvus lite版。
Milvus部署确实重,但中文混合检索性能很稳,推荐用pymilvus的GPU索引加速。
Milvus部署确实重,但混合检索和中文支持比Weaviate稳,中小团队可以考虑托管版省心。
Milvus部署确实重,但社区资源多,中文支持也更好,我们团队就是用它做的混合检索。
看你描述的场景,Milvus的混合检索和中文支持更稳,但部署确实得花点精力,预算够就上。
Milvus部署确实重,但中文支持比Weaviate稳,你这量级还是上Milvus吧。
正好两个都用过,分享点实际感受。Milvus部署确实重,但如果你团队有运维能力,它的性能上限很高,几十万文档量级下检索延迟很稳,而且官方对中文分词和混合检索的支持在持续优化,尤其是2.4之后的版本,BM25+向量混合查询效果挺不错。Weaviate上手确实快,docker-compose几分钟搞定,但中文场景下它的默认段落切分和tokenizer偶尔会抽风,需要自己调一下模型和schema,尤其你后面要做rerank的话,Milvus的批量查询和filter能力会更顺手。不过话说回来,如果你追求快速落地且不想养一套k8s,可以试试Zilliz Cloud(Milvus的托管版),省心很多。另外一个小建议:不管选哪个,都提前把文档切块策略和embedding模型跑通,很多检索不准其实不是数据库的锅,而是chunk和embedding没对齐。
做过类似的项目,最后选了Milvus。中文场景下它的IK分词器配合BM25效果比Weaviate的默认混合检索好不少,而且几十万文档这个量级上Milvus的性能优势很明显,部署重但用K8s或者Zilliz Cloud能省心。建议你直接上Milvus,前期花点时间搭环境,后面rerank和扩展都更顺滑,Weaviate在小规模数据上快,但中文和混合检索这块真要踩坑。
Milvus部署是重了点,但中文支持比Weaviate稳,混合检索也能用,建议直接上Milvus。