FlagEmbedding icon indicating copy to clipboard operation
FlagEmbedding copied to clipboard

BGE-M3 混合搜索如何配合向量库使用呢?

Open Littlecowherd opened this issue 1 year ago • 1 comments

根据技术文档中提到的数据,采用三种方式联合检索的情况下有明显的性能优势。我不太理解这里的混合搜索如何和向量库一起使用。

如果是 RAG 应用,存在大量的文本,是需要提前做嵌入的。这时候是先按 Dense 向量存储,查询的时候先粗筛 TopK * n 然后再对粗筛的数据应用混合搜索筛选出 TopK,再对 TopK 应用 Rerank ?

希望能得到您的解答,非常感谢🙏

Littlecowherd avatar Jan 31 '24 09:01 Littlecowherd

一些RAG库中即成了混合检索/多路召回,例如:https://docs.llamaindex.ai/en/stable/examples/vector_stores/PineconeIndexDemo-Hybrid.html 主要流程是多个索引分别检索top-k文本,把所有结果汇总再根据分数加权求和进行重排(或者使用bge-reranker模型进行重排)。 我们进行测试的时候使用的是pyserini进行的稀疏检索,faiss进行向量检索,colbert多向量只用在了重排阶段。后续测试脚本会开源。 但抱歉的是,如何在已有的流行的RAG开源库中直接使用bge-m3的多种方式,我们还没有尝试。之后会尽快与社区一起把这块做好。

staoxiao avatar Jan 31 '24 17:01 staoxiao

感谢解惑,希望 BGE 能越做越好

Littlecowherd avatar Feb 01 '24 01:02 Littlecowherd