大多数RAG管道仍然跳过重排序,尽管这项技术解决了搞垮生产系统的核心问题:bi-encoder检索返回的是相似的块,而不是相关的块。像BAAI/bge-reranker-v2-m3这样的cross-encoder将查询和文档一起读取,而不是分别编码它们,捕捉到像"500美元/晚"与"便宜酒店"相矛盾这样的细微差别,而bi-encoder完全错过了这些。像Cohere和Pinecone这样的公司已经将此作为标准实践,提供rerank-v4.0-pro和bge-reranker-v2-m3作为生产服务。
两阶段模式已经成为前沿方法:用快速的bi-encoder或BM25撒大网以获得高召回率,然后用cross-encoder对顶级候选者进行精确排序,测量实际相关性。这不是理论——这是构建生产AI的团队如何避免从错误段落到达你的LLM时开始的幻觉螺旋。数学很简单:bi-encoder在比较之前将语义压缩为固定向量,丢弃了决定文档是否真正回答查询的交互信号。
多个消息来源证实了向multi-query和重排序架构的转变,Azure AI Search将复杂查询分解为并行子查询,企业系统使用基于共识的结果聚合。这种模式有效是因为它利用了速度-准确性权衡:bi-encoder用于规模,cross-encoder用于精度。
如果你的RAG结果"还行但不太好",不要先追求更好的embedding模型。用LangChain的ContextualCompressionRetriever接入像BGE这样的重排序器,对比你当前的管道进行基准测试,看着精度跳跃。实现很简单,性能提升是可测量的,跳过它意味着你把检索质量留在了桌子上。
