跳至项目正文
Qingping Champ
全部项目
ANN 索引研究项目2025-2026

Adaptive Index

根据查询需要,灵活调整扫描量的向量索引

查询难度不同,负载也在变化,扫描深度和分区结构能否随之调整?

查询通过 IVF 质心定位候选分区,持续扫描直到估计召回率达到目标

项目背景

固定 nprobe 为每个查询探测相同数量的分区,未区分查询难度;持续的数据插入、删除和负载变化,也会让 IVF 分区逐渐失衡。这个研究系统以质心路由和可选的额外层级为基础,结合每个查询的召回率目标、滚动负载观测和实测扫描成本表,在线调整搜索范围,并在明确的维护检查点调整分区结构。

处理流程

定位分区,估计召回率,达标停止

  1. 01质心路由
  2. 02有序候选分区
  3. 03更新召回率估计
  4. 04Top-k ID 与距离

设计取舍

根据实测成本维护分区

滚动窗口积累足够的命中记录后,系统在设定的维护时机,综合扫描延迟、分区大小和命中情况作出调整:拆分成本高的分区,删除部分分区并重新分配其中的数据,再优化受影响的邻近分区,无需重建整个索引。

按召回率目标决定扫描量

扫描过程中,系统根据当前第 k 近邻半径的变化,实时更新召回率估计;估计值达到设定目标后,便停止扫描。这样,简单查询和困难查询就不必采用相同的扫描深度。

索引结构与计算一起优化

C++ 搜索实现支持批量扫描和多线程,也可启用 AVX-512 与 NUMA 局部性优化。索引结构和距离计算放在一起调优,让两者相互配合。

设计原则

设计原则与使用限制

  • 观测工作负载变化
  • 估计召回率达标后停止扫描
  • 在线决定分区维护方式
  • 索引与计算协同设计
下一个项目

Anera