Page 71 - 《软件学报》2026年第3期
P. 71
1034 软件学报 2026 年第 37 卷第 3 期
300–600 之间时, LFU 与 FIFO 策略的缓存命中率基本持平. 这是由于 LFU 策略假设高频访问数据在未来仍具有
较高访问概率, 而 FIFO 则假设新加载数据更可能被再次访问. 在当前的搜索模式下, 查询过程中频繁访问的是新
近加载的数据, 导致早期加载的数据逐渐被淘汰, 两种策略在效果上趋于一致. 然而, 当优先队列长度继续增加至
700–2 000 时, LFU 策略的命中率与性能优势逐步显现. 原因在于, FIFO 仅依据加载时间做出替换决策, 容易淘汰
部分虽加载较早但仍具有较高访问频率的“历史热点”顶点, 进而降低了缓存利用效率. 而 LFU 能够更准确地保留
频繁访问的关键顶点, 有效提升整体缓存命中率和搜索性能.
k 值的影响分析
6.5 不同
本节统计了 GoVector (即 GoVector-hybrid)、Starling 和 DiskANN 在不同 Top-k (k 取值为 10、100、500 和
1 000) 设置下, 在保证 99% 召回率前提下所达到的查询吞吐率 (QPS), 实验结果如图 12 所示. 实验结果如下.
当 k=10 时, GoVector 的 QPS 是 DiskANN 的 2.47–4.18 倍, 是 Starling 的 2.49–2.58 倍.
当 k=100 时, GoVector 的 QPS 是 DiskANN 的 3.69–4.03 倍, 是 Starling 的 2.18–3.46 倍.
当 k=500 时, GoVector 的 QPS 是 DiskANN 的 2.17–2.34 倍, 是 Starling 的 1.71–3.69 倍.
当 k=1000 时, GoVector 的 QPS 是 DiskANN 的 1.86–2.50 倍, 是 Starling 的 1.77–4.36 倍.
3 000 800
GoVector Starling DiskANN GoVector Starling DiskANN
600
200
2 000 100
QPS 100 QPS 400 50
1 000
500 1 000
200 500 1 000
0 0
10 100 500 1 000 10 100 500 1 000
Top-k Top-k
(a) DEEP (b) GIST
图 12 召回率为 99% 时不同 k 值对应的 QPS 表现
上述结果充分说明, 无论在何种候选集大小设置下, GoVector 均展现出较高且稳定的查询性能, 在确保高召
回率的同时显著提升了系统的吞吐能力, 充分验证了 GoVector 在多样化检索精度需求场景中的通用性和高效性.
7 总 结
本文针对基于磁盘的向量近似最近邻搜索 (ANNS) 问题, 提出了一种基于向量相似性的 I/O 高效向量缓存策
略, GoVector. 该方法依据 ANNS 搜索过程的两个阶段设计了静态-动态相结合的混合缓存机制: 静态缓存部分预
加载入口顶点及其若干跳邻居, 用于加速初始阶段的近邻区域定位; 动态缓存部分在搜索过程中自适应地缓存候
选顶点及其在向量空间中相似的邻近顶点, 以提升相似向量搜索阶段的命中率. 此外, GoVector 还引入了基于向
量相似性的索引图重排序策略与自适应数据读取机制, 以增强缓存数据的空间局部性, 进一步提升查询吞吐率与
I/O 命中率. 实验结果表明, GoVector 在多个公开数据集上均显著优于当前主流的磁盘索引方法 (如 DiskANN 与
Starling), 展现出良好的性能优势. 然而, 混合缓存机制中静态与动态缓存的容量比例依赖于人工经验设定, 难以在
不同查询负载和数据分布下实现最优配置. 在未来工作中, 我们计划引入查询感知与系统监测驱动的自适应缓存
调整策略, 以自动调节静态与动态缓存的比例, 进一步提升混合缓存机制的通用性与鲁棒性.
References
[1] Asai A, Min S, Zhong ZX, Chen DQ. Retrieval-based language models and applications. In: Proc. of the 61st Annual Meeting of the
Association for Computational Linguistics, Vol. 6 (Tutorial Abstracts). Toronto: ACL, 2023. 41–46. [doi: 10.18653/v1/2023.acl-tutorials.6]

