本页章节
想把合成向量上的索引核验接到真实文本,可继续 中文检索完整项目,分别查看指定证据命中与 Flat 近邻召回。
RETRIEVAL / EXACT AND APPROXIMATE
ANN 索引:近邻在哪里被漏掉
固定文档向量,用完整搜索建立参考,再观察倒排列表怎样缩小候选范围。把索引近似、文档相关性和编码版本分别验证,才能解释检索结果的变化。
IVF 先找列表,再比较列表里的向量
分配文档
每个向量进入最近质心对应的列表,保存向量与 ID。
选择列表
先算 query 到质心的距离,选 nprobe 个最近列表。
计算候选距离
按同一过滤条件读取候选,再按实际距离取 top-k。
与完整搜索对照
同一向量与距离度量下,计算近似结果覆盖了多少精确近邻。
IVFFlat 在选中的列表内使用未压缩向量计算距离;漏掉包含真实近邻的列表仍会损失召回。增加 nprobe 通常增加访问量;搜索全部列表时,这个教学索引应恢复 Flat 结果。
改变搜索预算,观察哪些文档进入候选
固定二维几何与列表
平方 L2 · 并列按文档 ID图中方块为质心,十字为 query;颜色表示所属列表,浅色圆为未访问文档,较大圆为返回结果。准确数值与结果同时列在下方。
| 列表 | 质心 | query 距离² | 是否搜索 | 文档 |
|---|
| 名次 | 当前 Flat / 距离² | IVF / 距离² | 匹配版本参考 |
|---|
全部文档、列表与相关性
| ID | 向量 | 过滤分组 | 列表 | 相关性 | 候选状态 |
|---|
精确近邻和相关文档使用不同分母
默认边界查询的相关文档固定为 d04、d06、d09。即使恢复所有精确近邻,top-k 也可能遗漏标注相关文档:这是表示与排序质量的问题。左侧和上方查询未提供相关性标注,只计算近邻召回。过滤发生在排名前,Flat 与 IVF 使用相同过滤集合;不足 k 个结果时保留实际数量。
先取全库前十再过滤,为什么可能只剩三条?
复用中文检索实战保存的 877 段真实文本、36 道问题与固定 BGE 向量。对所有问题应用相同的来源过滤,比较范围内完整排序的前十,与先取全库前 L 条、再按同一条件过滤的结果。L 固定为 10、30、100 和全库 877;不重新编码、不按题目改变过滤规则。
参考的返回数量是 min(10,M),M 为当前范围内实际段落数。范围本身不足十条、候选池过滤后不足十条,以及预先指定的证据已在范围外,是三个不同问题。先检查范围和分母,再解释检索指标。
本实验使用固定的全库精确顺序,所以后过滤结果始终是范围内参考的一个前缀,补足比例与近邻覆盖数值相同。真实 ANN 即使返回够十条,也可能漏掉同范围精确近邻,需要分别测量。
命中证据,仍可能漏掉大半近邻
默认恢复问题的指定证据已在全库前十,来源过滤后却只剩三条。命中一份证据不能证明候选数量或同范围近邻覆盖已完整。
补足结果,仍不保证命中指定证据
扩大到全库候选会恢复同一过滤范围的精确前十,但预先指定的证据也可能排在这十条之外。范围内没有原标注时,条件命中率没有定义,不记成零分检索失败。
来源包保存原始报告、段落与问题顺序、完整原文、实际向量、全部内积与排序、180 个过滤请求及 720 次后过滤结果。过滤是明确的教学来源条件,没有实现租户权限或真实向量数据库的过滤执行器。问题与标注已经在前序实验中被查看,这里用于机制核验,不作为新的独立泛化评估。
向量维度相同,为什么还需要重建索引?
v2 在本例把所有坐标旋转 90°:R(x,y)=(−y,x)。query、文档和质心一起旋转会保留距离;只旋转 query 会改变其相对旧文档的位置。故障模式继续显示结果供诊断,实际服务应检查模型版本、维度、归一化、度量、chunk 与索引版本,并拒绝不匹配组合。
“搜索全部列表后与 Flat 一致”只证明 ANN 没有额外丢失当前空间里的近邻,无法证明这个空间使用了正确的 query/document 接口。升级应使用同版本文档重编码、建索引、离线核验、切换与回滚记录。
候选数、索引大小和真实耗时怎样对应?
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 项
- Faiss · Faiss indexesFlat、IVFFlat、nprobe 与 HNSW 搜索范围;正文于 2026-10-28 核对
- The Hitchhiker's Guide to Testing Statistical Significance in NLP (2018)配对、重采样与指标差异检验
- Matryoshka Representation Learning (2022)多维度前缀联合训练,非任意向量可直接截断