ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

8.Reranker重排序是什么为什么向量检索后还要再排一次

8.Reranker重排序是什么为什么向量检索后还要再排一次 Reranker 重排序是什么为什么向量检索后还要再排一次码海寻道 · 大模型、智能体与 RAG 工程组件系列第 8 篇一个 RAG 系统通常不会把向量数据库返回的第一条结果直接交给大模型。更常见的做法是先用 Embedding 快速召回一批候选再用 Reranker 对候选重新排序最后只把最相关的少量片段放进上下文。这就是两阶段检索第一阶段快速召回 问题 → Embedding → 向量库 → Top K 候选 第二阶段精细排序 问题 候选片段 → Reranker → Top N 高相关结果Reranker 的价值不在于“再生成一个答案”而在于更精细地判断某个候选片段到底是否真正回答了当前问题。工程上Reranker 通常是一个独立的 Cross-Encoder 或排序模型服务。它与 Embedding 服务的输入输出不同Embedding 一次处理一段文本并输出向量Reranker 一次接收“问题 候选片段”对并输出相关性分数。因此它更准确但也更耗计算不能把所有文档都直接送进去。一、为什么向量检索还不够Embedding 检索把问题和文档分别转换成向量再通过距离或相似度找到候选。它速度快适合在大量数据中进行初筛但它通常只能用一个压缩后的向量表示整段内容。当问题包含多个条件时单个向量可能难以准确表达全部细节“只有正式员工可以申请试用期员工不适用申请时间必须在入职满六个月后。”文档 A 可能主题上非常相似但漏掉了“试用期不适用”文档 B 可能相似度稍低却完整包含这个限定条件。只看向量距离文档 A 可能排名更靠前。Reranker 的作用就是重新把问题和候选文本放在一起比较关注它们之间更细粒度的相关性。二、Reranker 与 Embedding 的区别对比项Embedding 模型Reranker 模型输入方式文本分别编码问题与候选文本成对输入输出向量相关性分数主要用途大规模快速召回小规模候选精排计算成本相对较低通常更高是否适合全库比较适合通常不适合典型位置第一阶段第二阶段可以这样理解Embedding 像是在城市地图上快速找到可能的几个街区Reranker 像是在这些街区里逐栋确认哪一栋真正符合条件。如果候选只有几十条Reranker 的精细比较是可接受的如果让它直接比较几百万条文档延迟和成本通常无法接受。三、Reranker 是如何工作的典型输入是一个问题和一个候选文本对问题试用期员工可以申请年假吗 候选片段员工年休假申请应在系统中提交部门负责人审批后生效……Reranker 输出一个相关性分数候选 A → 0.42 候选 B → 0.87 候选 C → 0.18系统根据分数重新排序再选择 Top N 结果。与 Embedding 不同Reranker 可以在一次计算中同时观察问题和候选文本的词语、句法、条件与语义关系因此往往更容易识别细节。但这也意味着它需要对每个问题—候选对单独计算成本更高。四、为什么要“先召回再重排”主要是为了平衡效果和效率。假设知识库有 100 万个文本片段向量检索100 万 → 100 条候选 Reranker100 条 → 10 条结果 大模型上下文使用 10 条如果让 Reranker 比较 100 万个候选精度可能很好但系统几乎无法满足普通问答的响应速度。两阶段检索把不同模型放在最适合的位置向量检索追求覆盖率和速度Reranker 追求候选排序质量大模型追求基于少量高质量上下文生成答案。五、Top K 和 Top N 如何设置第一阶段的 K 应该大于第二阶段的 N向量召回 Top 50 ↓ Reranker 排序 ↓ 保留 Top 510K 太小真正相关的文档可能没有进入候选Reranker 再强也无法找回K 太大Reranker 的计算成本和延迟会增加。N 太小可能丢失回答所需的上下文N 太大则会把无关片段继续带进 Prompt。参数不能脱离数据讨论。应根据 RecallK、最终答案质量、延迟和 Token 成本联合评估。六、Reranker 不会修复所有召回问题Reranker 只能重新排序已经召回的候选不能凭空找到未进入候选集的文档。如果正确文档的向量相似度太低或者权限过滤、分区设置、关键词处理导致它没有被召回Reranker 无法补救。因此排查顺序应该是正确文档是否存在 ↓ 是否被正确解析和切分 ↓ 是否生成了有效向量 ↓ 是否被向量检索召回 ↓ Reranker 是否把它排到前面 ↓ 大模型是否正确使用了它不要把所有“回答错误”都归因于 Reranker。七、Reranker 与关键词检索如何配合企业知识库经常需要同时关注语义和精确词项语义检索找到“意思相近”的文本BM25 或全文检索找到产品编号、错误码、条款号和专有名词Reranker 对合并后的候选进行统一排序。向量召回 Top 30 关键词召回 Top 30 ↓ 去重、合并、权限过滤 ↓ Reranker Top 10 ↓ 大模型生成这种混合召回通常比单独依赖某一种检索信号更稳健尤其适用于代码、产品目录、规章制度和包含大量编号的文档。八、Reranker 的成本从哪里来Reranker 的主要成本包括计算成本每个问题都要与多个候选进行成对计算候选数量越多计算量越大。延迟成本如果串行处理每个候选响应时间会随 K 增加生产实现通常会使用批量推理、并发或 GPU 加速。API 调用成本外部 Reranker API 可能按输入 Token、请求次数或候选数量计费。运维成本本地部署需要管理模型、显存、并发、队列和版本。因此Reranker 不应该默认加在每个检索场景里。对数据量小、查询简单、向量召回已经稳定的应用可以先不使用对多条件、长文档和高准确率场景Reranker 的收益通常更明显。服务化时要关注批处理和输入长度一个可落地的 Reranker 服务至少需要处理候选去重 ↓ 权限过滤 ↓ 截断过长的候选文本 ↓ 按 batch_size 组成问题-文档对 ↓ 模型推理 ↓ 返回 score、chunk_id、模型版本和耗时不要把“Top 100”理解成必须对 100 个超长原文全文推理。可以先按 Chunk 长度、重复内容和文档权限做预处理并设置最大输入 Token。截断策略必须可追踪否则同一候选在不同服务版本中可能得到不同分数。Reranker 服务还应设置超时和降级策略模型服务不可用时可以暂时使用向量分数、关键词分数或缓存结果但要在日志中记录降级原因避免用户以为系统始终使用了精排。九、Reranker 的分数如何使用Reranker 分数可以用于排序也可以辅助设置阈值但不能直接当作绝对可信度。不同模型的分数范围、分布和含义可能不同有的分数范围是 0 到 1有的可能是任意实数有的只保证排序不保证分数具备概率含义。不要把一个模型的阈值直接复制给另一个模型。应使用业务评测集观察分数分布再决定低于阈值是否拒答Top N 取多少是否进入人工审核是否改走关键词或外部搜索。十、两阶段检索的伪代码defretrieve(query,vector_store,reranker,top_k50,top_n8):candidatesvector_store.search(query,top_ktop_k)ifnotcandidates:return[]pairs[(query,item.text)foritemincandidates]scoresreranker.score(pairs)rankedsorted(zip(candidates,scores),keylambdaitem:item[1],reverseTrue,)return[itemforitem,_inranked[:top_n]]生产实现还要加入元数据和权限过滤候选去重批量调用超时与重试分数阈值引用来源保留无结果时的降级处理。十一、什么时候值得使用 Reranker适合使用的场景问题包含多个条件或否定关系文档内容相似但答案差异很细向量召回结果经常排序不稳定企业知识库对准确率要求较高有足够资源承受额外延迟。可以暂缓使用的场景数据量很小检索链路仍处于验证阶段查询是严格关键词匹配当前瓶颈在文档解析或权限过滤延迟要求极低且额外收益尚未证明。十二、上线前检查清单明确 Reranker 解决的是排序问题不是召回问题第一阶段召回 K 足够覆盖正确文档第二阶段保留 N 与上下文窗口匹配候选已经完成权限和租户过滤使用批量推理或并发控制延迟分数阈值基于真实数据标定统计增加 Reranker 后的准确率、延迟和成本失败时可以降级到向量检索或关键词检索Reranker 服务设置了批量大小、最大输入长度、超时和降级记录 Reranker 模型版本、候选数量和推理耗时保留文档来源和页码便于最终引用不将 Reranker 分数直接解释为概率。结语向量检索负责找候选Reranker 负责挑重点Reranker 的核心价值可以用一句话概括让系统不只找到“可能相关”的内容还能在候选中更准确地排出“最值得交给模型”的内容。它与 Embedding 不是替代关系而是速度与精度之间的分工。先用向量检索扩大覆盖再用 Reranker 缩小范围最后让大模型基于少量高质量片段回答才是更常见的生产级 RAG 链路。下一篇完成第二篇章最后一个主题《大模型上下文窗口、Token 与成本开发者必须理解的三个概念》参考资料Milvus DocumentationBasic Vector SearchMilvus DocumentationEmbedding OverviewHugging Face DocumentationTokenizerLangChain DocumentationRetrieval本文为“码海寻道”原创技术文章。Reranker 模型的输入长度、评分方式、价格和部署方法会因实现不同而变化使用前请查阅对应模型的最新文档。
返回列表