生产级 RAG 中的混合搜索与重排序 (opens in new tab)
📌 One-Sentence Summary 本文介绍了一种生产级的方法,通过结合混合搜索(BM25 + 稠密向量)与交叉编码器重排序及元数据过滤,并辅以真实评估指标,来提升 RAG 检索质量。 📝 Summary 本文是关于构建企业级 RAG 系统的系列文章的第三部分。作者从一个真实事件切入:一个知识助手未能检索到关于“死信队列阈值”的特定文档,原因在于仅依赖稠密检索导致该文档排名过低。文章随后系统地解决了这一问题。首先,它解释了由于向量压缩导致的信息丢失,稠密检索为何在精确术语查询上表现不佳。接着,引入了基于关键词的 BM25 作为补充方法,并展示了混合搜索(通过 Weaviate 中的相对分数融合将两者结合)如何提升召回率。作者还提供了一个实用方法,使用带标签的评估集和 RAGAS 指标来调优 alpha 参数。随后,文章通过引入交叉编码器重排序来解决“中间迷失”问题,该方法采用两阶段漏斗:先用双编码器进行广泛检索,再用交叉编码器进行精确重打分。文中提供了使用 LlamaIndex 和 ms-marco-MiniLM-L-6-v2 模型的实现代码。通过 RAGAS 衡量改进...
Read the original article