减少 95% 资源的向量搜索 | 使用云搜索的 DiskANN
Source :
mp.weixin.qq.com
Author :
鲁蕴铖 王东宇
当前尖端的向量近邻搜索算法,主要以图搜索算法为主,此类算法为了能够最大化搜索的速度与准确度,需要将对应的索引结构和原始数据存放在内存中,显然这不仅大大提高了成本,还限制了数据集的大小。例如在当前主流的内存型 HNSW 算法下,业界常用的内存估算方式是:向量个数 * 4 * (向量维度 + 12)。那么在 DEEP 10M(96维)的 1 千万数据就需要内存达到 4GB 以上,但是通过 DiskANN 优化后,仅需要 70MB 的内存就可以对海量数据高效的进行检索;在 MS-MARCO(1024 维)的 1.38 亿条记录里,需要内存更是高达 534GB,这样检索 1.38 亿的数据需要 12 个 64GB 的节点。 按照上面的估算公式,到了 10 亿级别就需要大约 100 个节点,到 100 亿级别需要的节点数为 1000 个左右,这个规模的服务在资源成本和稳定性上都面临了极大的挑战。我们在服务客户的过程中,发现相比于低延迟检索需求,大部分客户更关注成本和稳定性