HNSW 有哪些缺点,与 IVF 相比有哪些优劣?

考查重点:图导航与聚类分桶的成本。HNSW 用图导航,查询快但图占内存且维护贵;IVF 需聚类并探桶,漏桶影响召回,比较时固定压缩与预算

本题目录

参考答案

核心回答

HNSW把向量组织成多层邻近图,通过上层快速导航、底层扩大搜索找到近邻;IVF先按训练出的聚类中心分桶,查询时只探查一部分桶。HNSW的主要代价是图连接的内存、构建和维护成本;IVF的主要代价是聚类训练及漏探正确桶造成的召回损失。

比较时要先明确是IVF_FLAT还是IVF_PQ,以及是否使用压缩、磁盘和过滤。不能把IVF_PQ节省向量存储的优点,全部归给未压缩的IVF_FLAT,也不能预设所有规模下HNSW都更快。

HNSW有哪些不足

除向量本身外,还要存多层连接;较大的连接数通常增加索引空间、构建工作及维护成本。查询扩大候选探索可提高召回机会,但也会增加计算和尾部延迟;近似搜索不承诺精确Top-K。

频繁删除、更新或高选择性过滤会影响有效图遍历,具体结果取决于数据库的标记删除、压缩重建与过滤实现。HNSW支持增量插入并不等于任何高频更新业务都无需维护,也不能一概说所有产品都不支持删除。

IVF的取舍是什么

IVF_FLAT保留原始向量,在选中桶内做精确距离比较;近似性来自只搜索部分桶。探查桶越多,召回机会越高,扫描成本也通常上升;桶分布不均时,延迟可能受大桶影响。

IVF需要训练或构造聚类中心,新增数据与训练分布偏离时需重新评估。IVF_PQ进一步压缩桶内向量,降低存储和距离计算成本,但带来额外量化误差;是否保留原向量并精确重排也会改变内存与质量。

怎样选型和调参

用同一数据、距离和过滤条件,以精确搜索结果为基准,对比相同召回目标下的P50/P95延迟、吞吐、索引大小、构建时间及更新成本。内存充足且追求低延迟可先评估HNSW;更看重内存与批量构建时可比较IVF,海量压缩场景再加入IVF_PQ等方案。

HNSW关注连接数、构建探索宽度和查询探索宽度;IVF关注桶数与探查桶数。参数名称和更新规则随实现不同,不把某库的默认值当算法常数;也不按“百万用谁、千万用谁”机械选型。

常见追问

为什么过滤后只返回很少结果? 可能是近似候选先截断再过滤,也可能过滤限制了图遍历;先确认执行策略,再比较扩大搜索、迭代扫描、按租户分区或精确回退。

参考资料

相关面经

2 篇

字节跳动

后端开发工程师(AI / Agent 方向)
二面
查看原面经 →
HNSW索引有什么缺点?对比IVF索引优劣?

京东

大模型算法工程师
查看原面经 →
IVF和HNSW的差异?

收录题集

1 个来源,共1 份题集

RAG 知识库

沉默王二 · 王二讲 Agent · 1 条原题

查看题集 →

相关题目

4 题