生产 RAG 中的混合搜索和重新排名

当语义搜索对于 RAG 来说还不够时,生产 RAG 中的混合搜索和重新排名一文首先出现在 Towards Data Science 上。

来源:走向数据科学

,我们收到基础设施团队的一位平台工程师的投诉,当被问及消息队列消费者的重试政策时,我们的内部知识助理自信地给出了错误的答案。这看起来是一个简单的问题,助理应该给出一个有据可查的答案,但我错了。

系统返回关于带抖动的指数退避的三段响应。一切都是准确的,但没有一个是她所要求的。她想要的实际文件描述了六个月前发生生产事故后我们为一项特定服务实施的自定义覆盖。该文档反复使用“死信队列阈值”这一短语。我们的嵌入模型认为“指数退避”和“死信队列阈值”在语义上足够接近。

我检查了检索日志,发现她需要的文档位于结果中的第 11 位,位于传递给模型的前十名之外。系统并未未能索引或检索它,但它的排名低于其他十个文档。

在本文中

  • 为什么仅靠密集检索是不够的
  • BM25:它是什么,为什么它仍然重要,以及它出了什么问题
  • 混合搜索:将两者结合起来
  • 交叉编码器
  • 实施重新排名
  • 衡量影响
  • 元数据过滤
  • 将它们放在一起
  • 关于 RAGAS 的最后一点说明
  • 密集向量的问题

    这是 RAG for Enterprise 系列的第 3 部分,如果您错过了前面的部分,我强烈建议您先查看它们:RAG for Enterprise 知识库实用指南和 Your Chunks Failed Your RAG in Production

    密集检索的工作原理是将文本转换为高维向量并查找向量在几何上接近查询向量的块。如果两段文本在上下文中含义相似,那么它们的向量应该在嵌入空间中位于附近。

    BM25:它是什么以及它有什么帮助

    混合搜索:两者结合