RRF 融合后还要不要重排:先画候选召回上限

发布时间:2026/10/25 6:03:10

RRF 融合后还要不要重排:先画候选召回上限 RRF 能把不同检索通道的排名合到一起但它不能把没召回的文档变出来。重排器也是一样。很多“换了重排模型还是答错”的问题实际发生在候选池形成之前。10 月 8 日Qdrant 与 Pento 发布了 miniCOIL EN-ES 的双语稀疏检索研究预览尝试让英语与西班牙语的概念共享稀疏槽位。这提醒我们稀疏与稠密检索的差异不只是两组分数范围语言、词项和模型训练方式都会影响漏召回的类型。该预览没有提供中文业务的效果保证。官方文章先检查“有没有”再检查“排第几”对于一条有人工相关性标注的查询先算候选池是否覆盖正确文档再检查最终 Top-k 的顺序。若标注答案是文档 E而两路候选只含 A、B、C、D任何重排分数都无法修复这个遗漏。RRF 对某个文档的贡献是1 / (k rank)其中 rank 从 1 开始。各通道内部应该先去重不然重复 ID 会被当成多份证据。k、每路深度、融合后的截断深度需要一起实验没有一个参数能对所有查询都处在帕累托前沿。下面只实现确定性的排名融合。它没有生成随机模型分数也不在输出上伪装成 Cross-Encoder 推理。图中 E 位于候选池外它表示召回遗漏。不要把这张示意图理解成某个模型的性能结果代码中的顺序完全由两份人工给定的列表决定。from collections import defaultdict def rrf(rankings, k60): if k 0: raise ValueError(k must be nonnegative) scores defaultdict(float) for ranking in rankings: unique list(dict.fromkeys(ranking)) for rank, doc_id in enumerate(unique, 1): scores[doc_id] 1.0 / (k rank) return sorted(scores, keylambda d: (-scores[d], d)) def candidate_recall(candidates, relevant): if not relevant: raise ValueError(query has no relevance judgment) return len(set(candidates) relevant) / len(relevant) rankings [[A, B, B, C], [C, A, D]] fused rrf(rankings) assert len(fused) 4 and fused[0] A assert rrf([[A, A]]) rrf([[A]]) assert candidate_recall(fused, {E}) 0.0 assert E not in fused print(fusedA,C,B,D; missed candidate E remains unrecoverable)例子跑通以后还要验证什么这段代码已在本地 macOS、CPython 3.9.6 下运行实际输出为fusedA,C,B,D; missed candidate E remains unrecoverable。它验证的是例子中的数据约束与分支不包含线上服务的吞吐或延迟测量。未运行 BM25 索引、miniCOIL、向量库或 Cross-Encoder未测 GPU 或并发性能。接入真实系统后需要分别记录每路深度、候选并集召回率、融合召回率、重排质量和排队耗时。改一个参数时其他条件与评测查询应固定不要同时换模型、向量与分块后把收益全归给 RRF。延伸阅读miniCOIL EN-ES2026 年 10 月 8 日的研究预览说明双语稀疏表示的尝试与限制。Qdrant Hybrid Queries查阅融合与多阶段查询语义实际 API 仍需按部署版本验证。
延伸阅读

更多相关文章

2026/10/25 6:03:10

199_负载突变下转速环积分饱和的恢复过程设计

从一个反复烧驱动模块的现场说起 几年前做过一台大惯量旋转台的项目,电机通过减速机构拖动一个偏心负载。空载调试一切正常,转速环响应干脆利落。但是一旦把真实负载挂上去,做突加突卸测试,问题就来了:每次负载突然卸掉的瞬间,转速会猛地冲上去,超调大得吓人,紧接着驱…

2026/10/25 6:03:10

198_弱磁区电压裕量不足时的电流分配策略调整

一个把母线电压吃干榨净的现场 早年间做一套宽调速范围的永磁同步驱动项目,样机在额定转速以下跑得四平八稳,温升、噪声、效率都在预期内。问题出在往高速推的阶段:转速刚越过基速不久,控制器就开始报母线电压利用率异常,同时相电流波形上出现明显的削顶畸变,转矩输出像…

2026/10/25 6:03:10

197_电流环与速度环带宽配比失当引起的振荡现象

前年冬天,有个做卷绕设备的项目找到我。他们的机器在低速运行时一切正常,但产线速度提上去之后,张力就开始周期性波动,幅度越来越大,最后设备自己保护停机。现场工程师换了张力传感器、检查了机械传动、甚至把电机都拆下来重新对中,折腾了快两周,问题依旧。 我到现场之…

2026/10/25 7:03:13

AI实时绘画技术解析:从原理到商业应用

1. 项目概述:AI实时绘画的跨界革命去年夏天在上海某商场的一场品牌快闪活动中,我亲眼见证了AI实时绘画的魔力:当孩子们在数位板上随意涂鸦时,大屏幕上的AI系统实时将潦草线条转化为精美的海底世界,现场排队体验的人群一…

2026/10/25 7:03:13

可编程AI场控系统:直播技术革命与工程实践

1. 项目概述:可编程直播系统的技术革命直播行业正在经历从"人力密集型"向"技术驱动型"的转型。传统直播依赖人工场控的弊端日益凸显:人力成本高、反应速度慢、风格固化。我们团队开发的这套可编程AI场控系统,通过模块化设…

2026/10/25 6:58:13

AI增强数据分析系统:架构设计与实战应用

1. 项目概述:AI如何重塑数据分析工作流过去三年间,我参与了7个不同行业的AI数据分析系统落地项目,从最初简单的报表自动化到如今复杂的预测建模,见证了AI技术如何逐步改变传统数据分析的作业方式。这个AI辅助数据分析系统本质上是…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/25 0:02:22

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/25 0:02:23

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/25 0:02:23

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑