← 返回书架人工智能 · 交互式 Wiki
模型工程/ANN 索引与召回资料与边界
生成与检索服务进阶计算演示

想把合成向量上的索引核验接到真实文本,可继续 中文检索完整项目,分别查看指定证据命中与 Flat 近邻召回。

RETRIEVAL / EXACT AND APPROXIMATE

ANN 索引:近邻在哪里被漏掉

固定文档向量,用完整搜索建立参考,再观察倒排列表怎样缩小候选范围。把索引近似、文档相关性和编码版本分别验证,才能解释检索结果的变化。

01 / INVERTED LISTS

IVF 先找列表,再比较列表里的向量

BUILD / ASSIGN

分配文档

每个向量进入最近质心对应的列表,保存向量与 ID。

QUERY / PROBE

选择列表

先算 query 到质心的距离,选 nprobe 个最近列表。

SCAN / RANK

计算候选距离

按同一过滤条件读取候选,再按实际距离取 top-k。

COMPARE / FLAT

与完整搜索对照

同一向量与距离度量下,计算近似结果覆盖了多少精确近邻。

IVFFlat 在选中的列表内使用未压缩向量计算距离;漏掉包含真实近邻的列表仍会损失召回。增加 nprobe 通常增加访问量;搜索全部列表时,这个教学索引应恢复 Flat 结果。

02 / FOLLOW THE CANDIDATES

改变搜索预算,观察哪些文档进入候选

固定二维几何与列表

平方 L2 · 并列按文档 ID
ANN 对当前 Flat 近邻召回
对匹配版本参考的近邻召回
标注相关文档 Recall@k
候选 / 全集文档距离次数

图中方块为质心,十字为 query;颜色表示所属列表,浅色圆为未访问文档,较大圆为返回结果。准确数值与结果同时列在下方。

列表质心query 距离²是否搜索文档
名次当前 Flat / 距离²IVF / 距离²匹配版本参考
全部文档、列表与相关性
ID向量过滤分组列表相关性候选状态
03 / TWO RECALLS

精确近邻和相关文档使用不同分母

ANNRecall@k=∣Ak∩Ek∣∣Ek∣,TaskRecall@k=∣Ak∩R∣∣R∣.\begin{aligned}\mathrm{ANNRecall@k}&=\frac{|A_k\cap E_k|}{|E_k|},\\\mathrm{TaskRecall@k}&=\frac{|A_k\cap R|}{|R|}.\end{aligned}
Aₖ 是 ANN 返回,Eₖ 是同一过滤集合的精确 top-k,R 是该查询的相关文档集合。分母为空时显示未定义。

默认边界查询的相关文档固定为 d04、d06、d09。即使恢复所有精确近邻,top-k 也可能遗漏标注相关文档:这是表示与排序质量的问题。左侧和上方查询未提供相关性标注,只计算近邻召回。过滤发生在排名前,Flat 与 IVF 使用相同过滤集合;不足 k 个结果时保留实际数量。

REAL VECTORS / FILTER BEFORE OR AFTER TOP-K

先取全库前十再过滤,为什么可能只剩三条?

复用中文检索实战保存的 877 段真实文本、36 道问题与固定 BGE 向量。对所有问题应用相同的来源过滤,比较范围内完整排序的前十,与先取全库前 L 条、再按同一条件过滤的结果。L 固定为 10、30、100 和全库 877;不重新编码、不按题目改变过滤规则。

参考的返回数量是 min(10,M),M 为当前范围内实际段落数。范围本身不足十条、候选池过滤后不足十条,以及预先指定的证据已在范围外,是三个不同问题。先检查范围和分母,再解释检索指标。

本实验使用固定的全库精确顺序,所以后过滤结果始终是范围内参考的一个前缀,补足比例与近邻覆盖数值相同。真实 ANN 即使返回够十条,也可能漏掉同范围精确近邻,需要分别测量。

命中证据,仍可能漏掉大半近邻

默认恢复问题的指定证据已在全库前十,来源过滤后却只剩三条。命中一份证据不能证明候选数量或同范围近邻覆盖已完整。

补足结果,仍不保证命中指定证据

扩大到全库候选会恢复同一过滤范围的精确前十,但预先指定的证据也可能排在这十条之外。范围内没有原标注时,条件命中率没有定义,不记成零分检索失败。

来源包保存原始报告、段落与问题顺序、完整原文、实际向量、全部内积与排序、180 个过滤请求及 720 次后过滤结果。过滤是明确的教学来源条件,没有实现租户权限或真实向量数据库的过滤执行器。问题与标注已经在前序实验中被查看,这里用于机制核验,不作为新的独立泛化评估。

04 / ENCODER CONTRACT

向量维度相同,为什么还需要重建索引?

v2 在本例把所有坐标旋转 90°:R(x,y)=(−y,x)。query、文档和质心一起旋转会保留距离;只旋转 query 会改变其相对旧文档的位置。故障模式继续显示结果供诊断,实际服务应检查模型版本、维度、归一化、度量、chunk 与索引版本,并拒绝不匹配组合。

“搜索全部列表后与 Flat 一致”只证明 ANN 没有额外丢失当前空间里的近邻,无法证明这个空间使用了正确的 query/document 接口。升级应使用同版本文档重编码、建索引、离线核验、切换与回滚记录。

05 / WORK & REAL INDEX

候选数、索引大小和真实耗时怎样对应?

npm run lab:ann 在固定 Faiss CPU 环境中创建 Flat 与 IVFFlat,运行同一批查询并保存实际索引。报告列出 nprobe、相对 Flat 召回、预热后批量查询耗时、序列化文件大小和完整环境。实际性能还受维度、列表不均衡、batch、缓存和硬件影响,浏览器的访问次数不能换算成真实毫秒。

HNSW 使用图搜索,efSearch 控制搜索范围;图结构、构建预算和内存与 IVF 不同。后续可在相同数据与质量门槛下比较,不应把 nprobe 与 efSearch 当作相同单位。

适用范围与一手资料

12 个二维向量与预设质心,平方 L2、固定并列规则的 IVF 模拟;v2 采用共同旋转演示版本契约。另用原 877 个真实段落和 36 问的保存 BGE 向量,冻结五种来源范围与四种候选深度,对照范围内精确前十、后过滤、可返回数量和可用指定证据;不重新编码或测 ANN 过滤性能。可选 Faiss CPU 实验另测真实索引,教学候选数不视为实际耗时。

公式与机制的原始依据 · 3 项
知识目录
搜索知识库