理想重排上界
Perfect labels can improve ordering only inside the candidate pool.
本地计算 / 模拟本地教学实验,不调用外部 API。合成示例不能替代生产环境测量。
学习指南与本课目录
LEARNING CONTRACT理解 → 实现 → 研究
目标:解释本课机制、复现一个例子、测试一个失败案例。读完不自动代表掌握。
- 理解层:写明假设、形状/单位和一个反例。
- 实现层:复算数值例子并检查边界。
- 研究层:在匹配预算下比较一个替代方法。
02 · 预测与配置
技术场景说明、参数名称与参考答案目前为英文。
03 · 检查证据
方法与参考资料
Lexical score counts matching query terms (not BM25). Dense score is cosine on supplied 2D vectors, not a live embedding model. RRF combines ranks. Optional reranking uses known relevance labels as an oracle upper-bound, not a trained reranker. Empty query ties preserve document order.
Text / 原始公式
score=w/(k+lexicalRank)+(1−w)/(k+denseRank); DCG=Σ(2^rel−1)/log₂(rank+1)
An oracle reranker leaks labels intentionally; never report it as learned model performance.
Reciprocal Rank Fusion · SIGIR 2009 ↗练习题
retrieval-4 / 01What does “Oracle reranking ceiling” test?
Perfect labels can improve ordering only inside the candidate pool.
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 02Which computation produces the result in “Oracle reranking ceiling”?
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 03What is the baseline configuration for “Oracle reranking ceiling”?
{"query":"KV cache memory","documents":"[\n {\n \"id\": \"D1\",\n \"text\": \"KV cache stores keys and values for generation\",\n \"vector\": [\n 1,\n 0.1\n ],\n \"relevance\": 3\n },\n {\n \"id\": \"D2\",\n \"text\": \"Cache restaurant menu and opening hours\",\n \"vector\": [\n 0.1,\n 1\n ],\n \"relevance\": 0\n },\n {\n \"id\": \"D3\",\n \"text\": \"Grouped query attention reduces memory\",\n \"vector\": [\n 0.95,\n 0.2\n ],\n \"relevance\": 2\n },\n {\n \"id\": \"D4\",\n \"text\": \"KV cache memory footprint depends on sequence length\",\n \"vector\": [\n 0.8,\n 0.3\n ],\n \"relevance\": 3\n },\n {\n \"id\": \"D5\",\n \"text\": \"Tokenization splits input text\",\n \"vector\": [\n 0.4,\n 0.8\n ],\n \"relevance\": 0\n }\n]","x":1,"y":0.1,"weight":0.5,"k":60,"retrieve":5,"top":3,"rerank":1}
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 04What numerical result should you check for “Oracle reranking ceiling”?
{"Recall@k":1,"nDCG@k":1}
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 05How would you run a controlled comparison for “Oracle reranking ceiling”?
Keep the supplied fixture and other settings fixed; change weight. Compare Recall@k and nDCG@k while varying candidate pool and fusion weight.
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 06What failure could invalidate a conclusion from “Oracle reranking ceiling”?
An oracle reranker leaks labels intentionally; never report it as learned model performance.
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 07Is “Oracle reranking ceiling” a benchmark of a deployed language model?
No. Lexical score counts matching query terms (not BM25). Dense score is cosine on supplied 2D vectors, not a live embedding model. RRF combines ranks. Optional reranking uses known relevance labels as an oracle upper-bound, not a trained reranker. Empty query ties preserve document order.
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 08Which evidence should you report for “Oracle reranking ceiling”?
Compare Recall@k and nDCG@k while varying candidate pool and fusion weight. Export inputs, engine, result and method; distinguish synthetic fixtures from observed production data.
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 09How can another researcher reproduce “Oracle reranking ceiling”?
Open retrieval-4, reset the preset, retain the exact inputs and run. The calculation is deterministic for identical inputs.
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →retrieval-4 / 10What is the next validation step after “Oracle reranking ceiling”?
An oracle reranker leaks labels intentionally; never report it as learned model performance. Test the hypothesis on a representative held-out workload and document a baseline, success metric and stopping rule before claiming deployment readiness.
Original teaching answer / local derivation. Method reference: Reciprocal Rank Fusion · SIGIR 2009 ↗
打开实验 →假设、参考实现与验收
加权倒数排名融合从排名 1 开始。给定相关性是 oracle 重排器,不是训练模型。零向量余弦采用软件哨兵值;实际检索索引不得泄漏标签。
已复核引擎公式、场景预设及数值保护。固定种子的合成输入不是生产基准。
运行前:预测一个边界情况
Perfect labels can improve ordering only inside the candidate pool.
提示:隔离假设
固定基线输入,只改变一个参数或边界;同时比较数值与声明单位。单例通过仅验证该样例。
最小可运行算例
将算例及所链接模块保存在同一目录。使用 Node.js 22 或更高版本,然后运行 node retrieval-4.mjs. 无需第三方运行依赖。
import {calculate,network} from './academy-core.mjs';
const params={
"query": "KV cache memory",
"documents": "[\n {\n \"id\": \"D1\",\n \"text\": \"KV cache stores keys and values for generation\",\n \"vector\": [\n 1,\n 0.1\n ],\n \"relevance\": 3\n },\n {\n \"id\": \"D2\",\n \"text\": \"Cache restaurant menu and opening hours\",\n \"vector\": [\n 0.1,\n 1\n ],\n \"relevance\": 0\n },\n {\n \"id\": \"D3\",\n \"text\": \"Grouped query attention reduces memory\",\n \"vector\": [\n 0.95,\n 0.2\n ],\n \"relevance\": 2\n },\n {\n \"id\": \"D4\",\n \"text\": \"KV cache memory footprint depends on sequence length\",\n \"vector\": [\n 0.8,\n 0.3\n ],\n \"relevance\": 3\n },\n {\n \"id\": \"D5\",\n \"text\": \"Tokenization splits input text\",\n \"vector\": [\n 0.4,\n 0.8\n ],\n \"relevance\": 0\n }\n]",
"x": 1,
"y": 0.1,
"weight": 0.5,
"k": 60,
"retrieve": 5,
"top": 3,
"rerank": 1
};
const result=calculate('retrieval',params);
console.log(result.metrics);测试与迁移
Perfect labels can improve ordering only inside the candidate pool.
在下方笔记记录输入、代码版本、期望值和实测值;再构造违反上述假设的反例,解释原结论为何不再成立。
下载完整代码包(.tar.gz) · 完整参考代码与回归检查预测、检验与证据记录
展开答案前先预测一个结果;练习后记录差异和迁移测试。记录仅存本地,在不同语言版本间共用。
打开记录/导出/清除 →数学复核范围逐篇记录,不代表完成论文实证复现;可在笔记中记录疑似错误。 复核范围