RAG系列之——Rerank到底解决了什么问题?

发布时间:2026/7/17 6:16:08
RAG系列之——Rerank到底解决了什么问题? 项目中使用 RAG 时不知道大家有没有遇到过这样的问题检索环节召回了很多“看起来相关”的片段但真正有用的却排在后面。把这些初筛之后的片段喂给大模型由于内容太多大模型返回的结果往往效果很差。Rerank 就是专门用来解决这类问题的。一RAG 链路中Rerank 在哪个环节大家来看以下流程图通过 BM25 向量检索进行初步召回后我们在后续环节加入 Rerank进行初步筛选之后的精排。比如我们通过 BM25 向量检索召回20个结果而这20个结果又太多我们想进一步筛选之后再给到大模型。这个时候使用 Rerank可以将这20个结果再排个序最终根据我们的要求从中再次筛选出 Top-K 个结果。这很像考研先通过笔试把各科成绩超过国家线的学生筛选出来BM25 向量检索再通过面试详细聊一聊这个学生跟该专业的匹配程度给每个同学打分后根据录取名额按最终分数从高到低录取 Top-K 个学生。二. Rerank 到底在判断什么前面文章我们讲过向量检索原理是将 query 向量和 chunk 向量求余弦相似度看的是两个向量在语义空间中的距离。而 Rerank 更像是把 query 和 chunk 一起输入模型由模型来判断这个 chunk 对回答 query 帮助有多大Rerank 判断的不是相似而是“可回答性”和“证据价值”。举个例子用户提问“公司报销往返车票需要提交哪些材料”候选片段 A:“往返车票包含机票、高铁票以及打车费用。”候选片段 B:“员工报销往返车票时需要提供行程单、发票和付款凭证。”如果只用向量检索两个片段都会被召回并且没有先后顺序但使用 Rerank 之后片段 B 就能被排在片段 A 前面因为 A 能够回答问题。三常见 Rerank 方法Cross-Encoder Rerank这种方法就是我们上面讲的把 query 和 chunk 拼在一起输入到 Rerank模型中计算相关性分数再根据分数进行排序。这种方法优点是效果好根据分数进行排序结果一目了然可解释性强缺点也很明显query 需要跟每个 chunk 计算相关性分数速度会比较慢。这种方法适合对初筛结果进行二次排序。Rerank 常见模型有BGE-Reranker这是目前国内使用最多的开源 Reranker它的最大优势是可以本地部署免费使用另外它在中文下效果非常好缺点是速度慢。Cohere Rerank目前仅支持付费 API 调用效果非常好属于第一梯队对多语言支持很好唯一缺点就是贵。Jina Reranker近两年热度非常高速度快适合 Agent、Code Search 和大型知识库缺点是商业化场景需要许可证。Voyage Rerank对于英文支持非常好但是中文环境不如 BGE比较适合海外产品。2.LLM Rerank顾名思义也就是直接让大模型判断哪些片段最相关。这种方法更加灵活但是消耗 token更贵也更慢另外稳定性不一定好。这种一般适合问题比较复杂的场景当你初筛得到的结果比较少或者需要详细解释排序理由的时候可以采用这种方式。当然你可能会问反正 RAG 检索出来的结果最终还是要丢给大模型那为什么在最终调用大模型之前再多调一次大模型进行 Rerank 呢直接在最后环节把这个过程包含进去不就行了好问题可以这么做并且很多轻量化的 RAG demo 就是这么干的。但是生产环境不建议这么做主要是以下几个原因首先两个阶段目标不一样Rerank 阶段主要是根据候选 chunk 对于回答问题的证据价值进行排序而最终回答阶段是让大模型基于上下文回答用户问题。如果把两件事情混在一块大模型容易“边看边答”效果反而不好。其次Rerank 阶段通常是在 Top-20、Top-50 甚至 Top-100 中筛选出 Top-5 或者 Top-10如果一股脑把还未筛选的大量 chunk 硬塞给大模型容易导致 prompt 膨胀无关 chunk 会稀释模型注意力干扰大模型做出正确回答。另外生产场景使用大模型评测是不可忽视的关键环节如果把 Rerank 和最终回答环节放在一起如果最终效果不好那到底是 Rerank 出了问题还是回答环节效果不行这个时候你就会发现只有把两者拆开结果才更加可控更可评估。最后一点如果将两者分开Rerank 可以使用更小、更便宜的模型因为 Rerank 对于模型的要求没有最终回答环节那么高模型参数量小一点不会对结果产生很大影响但是节省下来的可是非常可观的一笔费用。四如何评估 Rerank 有没有用真实业务场景下我们一般先构建评测集为每个问题标注正确的参考文档或者 chunk评测集大小可以根据业务复杂度和构建成本进行选择。之后对比“有 Rerank”和“无 Rerank”时以下几个指标有没有改善RecallK在前 K 个检索结果中有没有包含正确文档或者 chunk包含取1不包含取0最后取平均它不关心排第几只关心前 K 中有没有。MRRMean Reciprocal Rank平均倒数排名它关心的是第一个正确结果排在第几位计算公式MRR 1 / 第一个正确结果的排名它回答了正确结果是不是排的足够靠前而这正是 Rerank 的核心作用NDCGNormalized Discounted Cumulative Gain归一化折损累计增益它比前两个指标更细它既考虑结果是否相关也考虑越靠前的正确结果价值是否越高是对整体排序质量的评估。当然以上是检索/排序环节的指标我们也可以根据最终回答环节的效果比如加入 Rerank 后大模型回答质量是否有所提高来判断 Rerank是否有用。五什么时候用 Rerank?讲到这里想必大家对于什么时候需要使用 Rerank 已经有比较深入的认识了。当你想提升上下文质量减少无关 chunk 干扰想在召回环节多一点最终喂给 LLM 少一点时就可以使用 Rerank把有限的上下文窗口留给最有证据价值的内容。六、Rerank 的代价和坑当然Rerank 也不是无脑就能加我们也要考虑成本。候选 chunk 越多Rerank 就会越慢从而延长模型最终回答问题的耗时。不管使用 API Rerank 还是 LLM Rerank系统整体成本都会增加。如果召回阶段没有找到有价值的 chunk那 Rerank 效果再好对于最终回答质量也毫无帮助。Rerank 是精排不是魔法它依赖召回阶段给它一批“至少有希望”的候选项。七一个推荐的实践配置结合我的经验给你一个工程建议学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】