分享免费的编程资源和教程

网站首页 > 技术教程 正文

Qdrant向量数据库之基于图的搜索算法HNSW大白话总结

goqiw 2024-09-12 16:16:35 技术教程 55 ℃ 0 评论

HNSW:Hierarchical Navigating Small World

回忆Qdrant跟HNSW有关的参数:m,ef_construct,hnsw_ef阅读以下内容:

1.HNSW采用近似Redis跳表的思想

在高层跳过大量离目标点较远的点,从而快速定位到离目标较近的点,从而缩小搜索范围。

在构图时采用启发式搜索选择连接邻居节点,从而防止出现不连通图的情况。搜索过程中维护动态list,从而减少遗漏的情况。

2.基于图的向量检索算法在向量检索的评测性能比较优秀

如果注重检索算法性能,并容忍一定的空间成本,多数场景下推荐基于图的检索算法。

HNSW是一种典型的应用广泛的图算法,很多分布式检索引擎都对HNSW算法进行了分布式改造,以应用于高并发大数据量的线上查询。例如Qdrant,Milvus

3.HNSW的缺点

除了保存数据之外,还需要一定的内存维护图的关系,而且每个节点分配固定的内存,其中有些没有使用而造成一定的浪费。

4.HNSW限定了每层图上结点的最大度数m跟性能正相关。

一般m的合理范围在[2,200]。

m越高,对具有高维特征(信息密度较低,数据点之间距离较远,可能存在大量无关信息)的数据集来讲,性能越好;

m越低,对具有低维特征(信息密度较高,数据点之间距离较近,有助于发现数据之间的关系)的数据集来讲,性能越好。

5.建索引时可以指定efConstruction

efConstruction越大,构造时间越长,index 质量越好。

检索时可以用ef来指定搜索范围,ef值越大,搜索范围越大,搜索时间也越长,一般和efConstruction值搭配调节。

注意:efConstruction增加的过快并不能提升index quality。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表