A Comparative Analysis of Efficient Similarity Search in Qdrant as a Vector Database and FAISS as a Vector Search Library
本研究通过实验证明,在特定的单核条件下,使用 20,000 个向量的数据集,配置为 IndexFlatL2 的 FAISS 显著优于基于 HNSW 的 Qdrant 本地模式(Local Mode),其延迟降低了约 24.9 倍且吞吐量更高,从而突显了专业化向量检索库与面向数据库系统之间的性能权衡。
原始论文采用 CC BY 4.0 许可(https://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
在数字世界中,计算机正越来越多地通过将文字转化为长串数字来学习理解含义,而非仅仅通过阅读文字。想象一个巨大的、无形的空间,其中的每一个概念、图像或文本都表示为空间中的一个点。在这个空间里,距离较近的点代表相似的事物,而距离较远的点则代表截然不同的事物。这种方法使机器能够快速找到相关信息,驱动着从理解用户意图的搜索引擎到推荐合适电影的推荐系统等一切技术。然而,随着这些点的集合增长到数百万甚至数十亿规模,寻找与新查询最匹配项的过程变成了一个巨大的计算挑战。如果计算机必须逐一将一个新的问题与存储的每一项进行对比,这个过程对于实际应用来说会太慢了。为了解决这个问题,研究人员开发了两类主要的工具:一种是纯粹为提高搜索匹配速度而设计的专门库,另一种是能够永久存储数据并提供过滤和管理等额外功能的完整数据库。
亚美尼亚欧洲大学的杜希克·霍夫塞皮扬(Dukhik Hovsepyan)最近的一项研究旨在衡量这两种方法在现实世界中的性能差异。研究人员将一个名为 FAISS 的专门搜索库与一个名为 Qdrant 的向量数据库进行了对比。为了确保测试的公平性,实验在一个受控环境中进行,两个系统被要求解决完全相同的问题:在两万个项目组成的集合中,找出与给定查询最相似的十个项目,其中每个项目由一百二十八个不同的特征进行描述。测试是在单个计算机处理器核心上运行的,以隔离出搜索机制本身的原始速度,而不受多个处理器协同工作的干扰。
结果显示,这两种配置在原始速度上存在显著差距。专门的库 FAISS 被配置为执行精确搜索,这意味着它会计算到每一个项目的距离,以保证获得最准确的答案。在这种设置下,它平均仅用不到 0.4 毫秒即可完成单次查询。这使得它每秒可以处理超过 2500 个查询。相比之下,数据库系统 Qdrant 运行在一种将数据存储在磁盘上的本地模式下,并使用一种不同且更快但属于近似的方法来导航数据。在这些特定条件下,Qdrant 回答每个查询平均需要近 10 毫秒,导致其吞吐量仅为每秒 100 个查询左右。该专门库在每秒能回答的问题数量以及回答单个问题的耗时方面,都比数据库快了大约 25 倍。
然而,这项研究强调,这种差异并不意味着其中一种技术在所有情况下都具有绝对优势。实验的设计初衷是比较特定的配置,而非该软件的全部潜力。该库作为一种纯粹的内存内搜索工具进行了测试,而数据库在测试时则开启了其存储和管理功能,尽管这些额外功能并不是速度测试的重点。数据库方法提供了速度测试未能衡量的显著优势,例如在计算机关闭后仍能将数据安全保存在硬盘上的能力、根据日期或类别等其他信息过滤结果的能力,以及作为一个凝聚的系统来管理大规模数据集的能力。相比之下,该库是一个专为单一任务构建的引擎:尽可能快地寻找最近邻,而这通常是以需要将所有数据保存在计算机的临时内存中为代价的。
研究人员总结道,观察到的性能差距是实验中所使用的特定配置的特征,而非适用于所有情况的基本法则。如果数据集更大、计算机拥有更多处理器核心,或者数据库是以独立服务器而非本地工具的形式运行,这些数字很可能会发生变化。该研究提供了一个清晰的基准,表明对于单处理器上的简单直接搜索任务,专门库可以比处理相同工作的数据库系统快得多。然而,对于需要永久存储数据、根据复杂规则进行过滤或管理大规模集合的应用,数据库提供了专门库所不具备的更广泛的工具集。两者之间的选择取决于优先考虑的是对简单问题给出绝对最快的答案,还是在更大型、更复杂的系统中管理和检索数据的能力。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。