基于异构内存的亿级向量数据近似最近邻搜索(HM-ANN论文笔记)

个人主页

简介

论文题目:HM-ANN: Efficient Billion-Point Nearest Neighbor Search on Heterogeneous Memory,2020年发表在NeurIPS会议上。论文在异构内存(HM)上优化实施基于近邻图的ANNS算法实现高效单机亿级搜索。

主要内容

论文指出当前大规模ANNS受到内存限制,一些压缩方案损失了精度。

本文主要利用数据和内存(HM)的异质性,不压缩数据,实现了单节点亿级ANNS。主要是借助新型硬件HM,它包含快内存(fast memory, but small)和慢内存(slow memory, but large)。(DiskANN用的是慢存储,slow storage)

异构内存(Heterogeneous Memory)

普遍由PMM和DRAM构建。PMM单机容量可达6TB,延迟可能是DRAM的3倍,带宽是DRAM的1/6。PMM有两个模型:Memory Mode和App-direct Mode,在Memory Mode中,DRAM作为缓存,运行在该模型下的应用不需修改(类似在原内存运行)。在App-direct Mode中,我们可显式控制对PMM和DRAM的访问。一般,PMM比SSD快大约80倍,比DRAM慢3倍。

动机

纯内存近邻图ANNS算法在Billion-scale规模数据上内存需求大难以适用于容量有限的DRAM中。一些数据压缩方案存在精度损失导致召回率低。本文旨在保留近邻图低延迟和高召回,通过HM缓解近邻图算法对DRAM容量高要求。

论文的方法

(1)索引构建

Top-down insertions

与HNSW构建过程类似。构建出的分层图索引,最底层在PMM中,上层在DRAM中。

Bottom-up promotions

(上一步产生的上层删除)就是重新生成上面构建的分层图索引的上层(本文认为HNSW的上层相当于随机从最底层取样的顶点构建,这样会导致在最底层搜索路径较长,而最底层放在PMM中时存在更高搜索延迟),本文采用一种high-degree promotion策略,把最底层中out-degree较高的顶点(hub)放在上层。之前的研究工作指出:hub点能提供更好的可导航性,大部分顶点之间的最短路径将经过hub点。在上层放置hub点有利于缩短搜索的平均路径长度。

(2)搜索

在L1层(倒数第二层)之上的层搜索与HNSW类似(1-greedy search),在L1层的搜索将为L0层获取多个入口(efsearch),在L0上的搜索是并行执行的,即从多个入口并行开始执行搜索(多个1-greedy search)。此外,在L1上搜索时也会异步将efsearch里面顶点的邻居从PMM中预先迁移到DRAM中,以进一步提升搜索效率。

实验结论

(1)总体而言,HM-ANN在billion-scale和million-scale数据集上均优于参与比较的几个算法。

(2)消融研究,high-degree promotion比random promotion更有效;Parallel L0 search本身提升不明显,需要与其它优化结合;parallel L0 search和high degree promotion一块对性能提升更明显;从slow memory到fast memory的数据预取也提升了性能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值