近日,开源搜索引擎 Manticore 宣布在其最新版本中针对 K 近邻(KNN)搜索场景进行了重大性能优化。官方博客披露,通过引入两遍 HNSW(Hierarchical Navigable Small World)算法、批量距离计算以及 AVX-512 指令集支持,向量相似性搜索的速度获得了显著提升。此举标志着 Manticore 在向量检索领域的竞争力进一步增强,尤其利好需要实时近似最近邻搜索的大规模 AI 应用。

两遍 HNSW:精度与效率的平衡

HNSW 是目前最主流的近似最近邻算法之一,其通过多层图结构实现对数级别的搜索复杂度。然而,标准 HNSW 在搜索时仅执行一次遍历,容易因局部最优而影响召回率。Manticore 团队创新性地引入两遍 HNSW(2-pass HNSW):第一遍使用宽松的搜索参数快速获取候选集,第二遍则在该候选集上执行更精细的距离计算,重新排序并输出最终结果。

这种方式将粗筛与精排分离,一方面利用廉价的近似距离快速缩小搜索范围,另一方面仅在少量候选点上使用精确距离运算,从而在保持高召回率的前提下大幅降低计算负担。官方测试表明,在典型数据集上,两遍策略可使召回率提升 5%~15%,而搜索延迟仅增加 10% 左右,性价比极为突出。

批量距离计算:向量化并行加速

传统 KNN 搜索中,每个查询向量都需要逐一与库内向量计算距离,CPU 的 SIMD(单指令多数据)能力常因数据依赖而未能充分利用。Manticore 此次重构了距离计算引擎,实现了批量距离计算(Batched Distances):将多个查询向量或候选向量打包成连续内存块,一次性加载并利用 SIMD 指令进行并行运算。

这种设计不仅减少了指令发射次数和缓存未命中,还允许编译器自动生成高效的向量化代码。配合 Manticore 原有的索引数据布局优化,批量计算使得单次距离计算的吞吐量提升了 2~4 倍。对于海量向量场景(如百万级 768 维 embedding),这一优化带来的吞吐增益尤为明显。

AVX-512:榨干现代 CPU 的最后性能

除了通用的 SIMD 优化,Manticore 还专门针对支持 AVX-512 指令集的处理器(如 Intel Ice Lake 及后续架构)提供了专用内核。AVX-512 拥有 512 位宽的 SIMD 寄存器,单指令可同时处理 16 个 32 位浮点数或 4 个 128 位数据。在距离计算(如 L2 距离、余弦距离)中,Manticore 使用 AVX-512 的融合乘加(FMA)指令实现单循环周期内完成 32 次浮点运算。

基准测试显示,在 Intel Xeon Gold 6330 平台上,使用 AVX-512 的距离内核相比仅用 AVX2 的内核再提速约 1.8 倍。结合前文提到的批量计算,整体 KNN 搜索延迟相比 Manticore 此前版本降低了 40%~60%,部分场景甚至接近 70%,这一提升在实时推荐和语义搜索应用中意义重大。

技术生态与未来展望

Manticore 作为基于 Sphinx 继承而来的全文搜索引擎,近年来不断强化向量检索能力,试图在混合搜索(全文 + 向量)领域占据一席之地。此次三大优化齐发,使其 KNN 搜索性能不仅超越了自身前代版本,也在一定程度上逼近甚至超过了一些专用向量数据库(如 Milvus、Qdrant)的部分场景。

据悉,上述优化已集成至 Manticore 6.2.0 及以上版本,用户只需升级即可自动受益。对于需要极致性能的用户,官方提供了详细的配置指南,包括如何启用 AVX-512 以及调整两遍 HNSW 的参数。随着 RAG(检索增强生成)和多模态搜索需求的爆发,Manticore 的这次性能升级无疑将为开发者提供一个更具性价比的本地化向量搜索方案。

未来,Manticore 团队表示将继续探索 GPU 加速、基于 FPGA 的近似搜索等前沿技术,目标是让开源搜索引擎在 AI 时代的向量检索中也能保持轻量、高效的产品特性。对于广大企业和独立开发者而言,这意味着可以以更低的硬件成本构建高吞吐的搜索系统,而无须依赖昂贵的专有数据库服务。