最近在做私有知识库的RAG,数据量大概20万条文档切片,用的bge-m3转的向量。试了Milvus和ES的knn检索,top20召回率基本都在60%左右,感觉不太行。我预处理做了去停用词、分词,也试过调整chunk大小(256/512都试过),效果没明显变化。现在怀疑是不是混合检索(BM25+向量)权重没调好,还是说RAG本来就这么拉胯?有做过类似项目的老哥能指点下吗,或者推荐下你们在用的检索策略?真心求教,搞了快两周了有点崩溃。
楼主
21天前
向量数据库和ES都试了,RAG召回率还是上不去,是我用法不对吗?
请 登录 后发表回复
全部回复
共 22 条
2楼
6天前
top20召回率60%其实不算太差,先别急着怀疑混合检索,建议查下chunk重叠率和query改写,这俩对召回影响很大。
3楼
3天前
20万切片top20才60%确实有点低了,感觉问题可能不在检索端。你用的bge-m3本身支持稠密+稀疏+多向量,有没有试过直接用它的稀疏向量做混合,而不是外挂BM25?另外chunk大小不是关键,切片时有没有保留标题和上下文前缀,这个对召回影响挺大的。我之前类似规模的数据,加了heading和父级摘要后召回能涨十几个点,可以往预处理方向再挖挖。