Page 31 - 《软件学报》2026年第3期
P. 31

994                                                        软件学报  2026  年第  37  卷第  3  期


                 的方案, 当前有许多方法探索如何利用分布式场景来实现高效的近似最近邻搜索.
                    (1) 基于算法框架的分布式优化
                    Pyramid [109] 是一个基于  HNSW  的分布式搜索框架. 它支持欧氏距离、余弦相似度和最大内积搜索. 它通过采
                 样数据构建    meta-HNSW, 然后采用图分割算法将图分割为子图, 其分割策略是最小化不同子图之间边的数量. 将
                 数据集中的每个点分配到距离最近的子图中, 从而实现对数据集的分片. 再对每一个分片下的数据集分别构建
                 HNSW  索引. 查询时首先通过      meta-HNSW  定位相关数据子集, 然后分派查询到部分子集来进行查询处理, 通过这
                 种方法能够充分利用计算资源, 提升吞吐率. 在系统架构层面, 它包括                    3  个主要部件: 协调器 (处理查询分派)、执
                 行器 (子  HNSW  搜索) 和消息代理 (Kafka 实现可靠通信), 支持异步处理和容错机制.
                          [110]
                    Auncel  是一个基于     IVF  索引的相似性搜索引擎, 用于解决分布式场景下的无法提供理论性能保证的问题.
                 其核心思想是通过单个查询向量的局部几何特性, 为每个查询构建精确的错误延迟概要 (error-latency profile,
                 ELP). 此概要使  Auncel 能够对适量的数据进行采样, 以处理给定的查询, 满足其错误或延迟要求. 其搜索大致过程
                 和基本的   IVF  索引搜索方法一致, 在完成搜索每个聚簇时额外添加了如下步骤, 利用中间搜索结果和                          ELP  来预测
                 当前的错误率, 如果错误率或者时限满足要求, 就终止搜索返回结果. 其分布式部署方案是将数据分片, 每个工作
                 节点处理本地分片, 领导者节点聚合结果. Auncel 随机选择领导者节点来处理查询. 实验结果显示, Auncel 在满足
                 错误或延迟限制的同时显著降低了查询延迟.
                    (2) 基于硬件的分布式优化

                    SmartANNS [138] 是一个利用  SmartSSD  来解决  10 亿级别数据相似性搜索的方法. 它将数据分配到多个            SmartSSD
                 上, 实现高效的查询. SmartSSD     是一种将处理能力集成到         SSD  中的计算存储驱动器, 可直接在设备上处理数据,
                 减少对   CPU/GPU  传输的需求. SmartANNS   协同架构中主机维护分片质心, 作为全局协调器筛选搜索空间, 每个
                 SmartSSD  对分片数据建立    HNSW  索引执行搜索. 它允许数据复制分配到多块             SmartSSD  中, 并通过离线采样分析
                 分片热度, 优化数据布局, 结合数据局部性和设备负载均衡调度查询, 并通过训练                         GBDT  模型来动态地确定搜索
                 分片范围, 避免冗余计算.
                                         [148]
                    CXL (compute express link)  旨在实现处理器和设备之间的低延迟、高带宽连接, 近年来取得了越来越广泛
                 的关注. CXL-ANNS  [149,150] 是一个利用软硬件协作来支持      10  亿级别向量搜索的方案. 它利用        CXL  将  DRAM  从主
                 机中分离, 将所有的必要数据集放入内存池中, 针对搜索中的低延迟问题, 将访问频率高的点预先缓存在本地内存
                 中, 减少对远程内存池的访问延迟, 对于未缓存的节点, CXL-ANNS                通过预测图的遍历行为, 对即将要访问的节点
                 提前预取, 从而隐藏访问延迟. 进一步地, 通过            CXL  互联的层次化结构将搜索任务分发到多个硬件进行并行处理.
                 通过  3  层优化, 系统实现了对大规模向量数据的高精度低延迟搜索.
                    通过将数据分片处理, 可以有效地降低单机的处理负担, 实现对大规模向量数据的高效检索, 充分利用新硬件
                 的能力来设计搜索架构可以更好地优化向量搜索. 未来将继续探索如何利用分布式来处理大规模数据下的向量检
                 索, 设计高效的分布式索引结构和分布式检索算法是一个重要的研究方向.
                  3.7   面向混合查询场景的优化
                    混合向量搜索 (hybrid vector search) 研究同时考虑向量近似最近邻搜索和属性关键词信息是否满足要求的搜
                 索问题, 以适应多样的复杂查询需求, 提供更准确、更全面的搜索结果. 支持混合搜索是向量数据库的一个重要功
                 能, 为了完成混合搜索, 从搜索的实现上可以分为              4  种  [63] : 先向量搜索后关键词 (post-filtering, 后过滤)、先关键词
                 后向量搜索 (pre-filtering, 先过滤) 、单独搜索后合并、联合搜索. 对于先过滤的方案, 如果具有相同关键词的对象
                 很多, 就会检查大量的数据; 对于后过滤场景, 如果要查询的关键词选择度很低, 就难以搜到相应的结果; 对于合并
                 方案, 其在信息检索重排序阶段可以更灵活, 但是前期的搜索阶段会有很大的性能开销; 对于联合方案, 如何设计
                 高效的索引是很大的挑战. 除了根据实现方式上的分类外, 从场景上还可以分为关键词过滤和范围过滤两类. 下面
                 介绍具体的技术.
   26   27   28   29   30   31   32   33   34   35   36