最近在搞一个企业知识库的RAG项目,用FAISS+OpenAI embedding,测试阶段发现纯向量检索有时候召回到不相关的文档,特别是涉及专业术语和简称时。试着加了BM25做混合检索,结果召回到了,但排序又乱了,而且响应时间涨了快一倍。想问下各位在实际部署中,是只用向量检索然后靠LLM自己理解,还是必须上混合检索?如果上混合的话,有没有比较轻量的rerank策略推荐?我现在用的BGE-rerank-v2-m3,效果还行但推理太慢了。
楼主
2026-07-27
RAG部署时纯向量检索还是混合检索更靠谱?求大佬指点
请 登录 后发表回复
全部回复
共 163 条
2楼
2026-09-21
我们去年做内部知识库也踩过一模一样的坑,纯向量对简称和内部黑话确实容易飘,尤其你们用OpenAI的embedding,中文专业场景本来就不是它强项。后来我们改成混合检索,但关键不是BM25本身,而是两路召回后别急着合并排序,先用一个轻量规则做去重和加权,比如BM25命中标题或术语表的给高权重,向量分只做兜底。BGE-rerank-v2-m3确实慢,我们换成了bge-reranker-base加ONNX量化,延迟从800ms降到200ms左右,效果掉得不多。还有个偷懒办法是只在Top20里做rerank,别对全量候选跑,能省一大半时间。你们现在响应时间涨一倍,大概率是BM25和向量串行跑了,试试并行召回再合并,或者把BM25换成更轻的Tantivy。如果LLM本身够强,其实可以只喂混合召回的前10条,让它自己忽略噪音,但前提是你得在prompt里明确告诉它哪些是关键词命中。
3楼
5天前
我之前也遇到过类似问题,后来换了方案。
4楼
4天前
有没有更详细的教程推荐?