中文

十亿级向量搜索中性能与索引大小的权衡及其通过二级内存的突破

分布式、并行与集群计算 2024-05-08 v2 数据库 信息检索

摘要

大规模数据集上的向量搜索对于现代在线服务(如网络搜索和 RAG)至关重要,这需要将数据集及其索引存储在 SSD 等二级存储上。在本文中,我们首次刻画了现有基于 SSD 的图和聚类索引在性能和索引大小之间的权衡:为了提高 5.7 倍和 1.7 倍的吞吐量,这些索引必须分别支付相对于数据集大小的 5.8 倍和 7.7 倍的存储放大。根本原因在于 SSD 的粗粒度访问与向量索引所需的小放大细粒度随机读取不匹配。本文认为,二级内存(例如通过 RDMA 或 CXL 连接的远程 DRAM/NVM)是从系统角度解决该问题的强大存储,这得益于其细粒度的访问粒度。然而,将主要为 SSD 设计的现有索引直接放在二级内存上无法充分利用其能力。同时,二级内存仍然更像存储,因此将其用作 DRAM 也是低效的。为此,我们构建了一个以二级内存性能特征为中心的图和聚类索引。通过精心设计的执行引擎和索引布局,我们表明向量索引可以在各种二级内存设备上以数量级更小的索引放大实现最佳性能。基于我们在二级内存上改进的图和向量索引,我们进一步对它们进行了系统性研究,以帮助开发人员为其工作负载选择合适的索引。有趣的是,在二级内存上的发现与在 SSD 上的发现相矛盾。

关键词

引用

@article{arxiv.2405.03267,
  title  = {Characterizing the Dilemma of Performance and Index Size in Billion-Scale Vector Search and Breaking It with Second-Tier Memory},
  author = {Rongxin Cheng and Yifan Peng and Xingda Wei and Hongrui Xie and Rong Chen and Sijie Shen and Haibo Chen},
  journal= {arXiv preprint arXiv:2405.03267},
  year   = {2024}
}