拓展阅读

让检索提供真正需要的证据

学习切分、混合召回、重排与代码结构。

推荐阅读 09 / 12本地中文导读

对应资料:Introducing Contextual Retrieval [S096]

沿着对象与状态理解本章

检索排名只说明候选顺序,不说明事实已经成立。下图固定两份候选排名逐项融合,再加入版本与证据判断;如果答案需要两个条件,只召回其中一个还不够。

下方图解的固定输入在“输入与适用条件”中声明。它用于解释本章机制,不与本章其他独立例子的数值暗中接续。

动态图解 · F29

从两个候选列表,走到可用证据

“相关”与“足以回答”中间还差哪几步?

多个检索入口可能互补。融合处理“哪些候选值得优先看”;重排对少量候选作更细比较;证据核验处理“这段话是否真的支持当前结论”。三个阶段目标不同,不能用一个相似度分数替代全部判断。

RRF通过名次而非原始分数融合候选列表的方法。
重排对召回后的候选重新作相关性排序。
证据充分性材料能否支持问题要求的结论和条件。

输入与适用条件:本图独立排名算例:关键词[A,B,C]、语义[B,C,A]、k=60。所有候选始终不变,不接用其他章节的排名数据。

1 / 5 · 两种搜索给出不同名次

第1步,共5步

窄屏可左右滑动图形,或点击“放大图形”。文字解释紧随图后。

从两个候选列表,走到可用证据:两种搜索给出不同名次候选 / 关键词名次 / 语义名次A13B21C32本例融合只使用名次,不伪造原始搜索分数。

固定三个候选:关键词排名A、B、C;语义排名B、C、A。两种原始分数不在同一量纲,不能盲目相加。

本步状态由图形与说明共同给出。

默认静止。用“下一步”看完解释再继续;播放到最后一步自动停止。键盘聚焦播放器后,可用左右键逐步查看、空格播放/暂停。图中颜色辅助区分,含义同时用文字注明。

为什么需要

精确词项与语义线索各有盲区,组合能提供互补候选。

怎样实现

先融合候选,再核实原文与元数据,必要时补查缺失证据。

可能的代价与误解

提高Top-k可能把更多无关内容塞入上下文;检索器成绩提升不一定带来任务成功率提升。

如何判断是否做对

分别测召回、排名和最终回答支持度;不要只测最终一项或只测搜索分数。

检索质量从原始材料开始

本篇对应Contextual Retrieval。检索不是只选一个向量数据库,而是从来源、切分、索引、查询、召回、重排到上下文拼装的一条链。[S095][S096]

原始材料过期,检索再准也只会更快找到旧事实。切分丢了“仅v3适用”的条件,模型可能正确引用错误范围。因此证据需要来源、版本和足够上下文。

给孤立片段补上可证实背景

原创片段:“默认关闭,升级后开启。”它缺少字段和版本。若原文明确说明是normalize_paths从v2到v3的迁移,可以补充这些信息;若原文没说,不能自行编造。

Contextual Retrieval的思想是帮助片段保留所属背景,再结合检索与重排。文章的实验收益有特定条件,不能当作所有代码库的固定提升。[S096]

词项与向量怎样互补

错误码、符号和路径适合精确匹配;语义检索帮助不同表述的意图匹配。include与exclude语义相近但行为相反,版本与否定条件尤其需要核查。[S098][S102]

RRF按名次融合多个列表,不直接相加不同分数。重排进一步判断候选相关性,但无法补回所有召回器都漏掉的证据。[S097]

用小例子计算检索指标

假设正确判断需要文件A和B,返回A、X、Y,则Precision@3为1/3,Recall@3为1/2。虽然找到了一个相关文件,任务仍可能因缺B而失败。所有数值均为原创教学例子。[S110]

再假设候选中有A、B,但拼装只保留A。召回阶段成功,Agent输入仍不充分。这说明评价必须跨越候选、排序和上下文三个环节。

代码检索的递进路径

先找字段与入口,再找定义、引用和调用关系,再读测试与历史,最后运行复现。Tree-sitter提供语法结构,LSP提供语言服务,两者不自动证明运行时行为。[S103][S104][S105]

完成本篇后,应能为一次错误回答定位:来源错、索引缺、查询偏、重排删、截断漏,还是模型误用。这样的诊断比无条件扩大Top-k更有价值。

继续深入:第8章 · 检索与代码智能 或阅读拓展阅读目录8.2的逐项讲义。所有链接均为本地内容。

运行示例 · G09

ColBERT的“每个查询Token找最好匹配”怎样算

输入与条件。两个查询向量q1=[1,0]、q2=[0,1];文档A有d1=[0.8,0.6]、d2=[0,1],均单位长度。

步骤与对象内部动作中间结果 / 新状态
1q1逐项点积q1·d1=0.8,q1·d2=0本行取最大0.8。
2q2逐项点积q2·d1=0.6,q2·d2=1本行取最大1。
3汇总两个查询位置的max相加MaxSim=1.8。
4对照文档B仅一个向量[0.707107,0.707107]得分约1.414214,A更高。
5交叉编码器区别把查询和文档联合送入模型不是固定做这个max规则,能建模更复杂的交互但通常更贵。

把过程连起来。单向量召回、多向量后交互和联合编码重排的计算路径不同。

边界与反例。仅展示MaxSim数学核心,省略标记、投影、索引优化;点积条件已声明,不能代替真实模型打分。

依据与适用范围:[DERIVE]。示例输入和场景由本书明确设定。

记录保存在本机浏览器。

输入关键词即可检索。

↑ ↓ 选择 Enter 打开Esc 关闭 · 仅本地搜索

阅读设置

阅读设置仅保存在本机浏览器,不上传任何数据。