跳到主内容
快讯直播
AI智模界
AI 词典

IVF 索引:先粗聚类,再细找的向量检索加速法

IVF 索引(Inverted File Index,倒排文件索引)是一种近似最近邻(Approximate Nearest Neighbor, ANN)索引:先把向量粗聚类成若干簇,查询时只到最可能的几个簇里找,而不是全库比对。

生活里可以这样理解:一个大型仓库按品类分成很多区,每个区有指示牌。要找一款耳机,先看指示牌,直接去“数码区”“影音区”这几个最像的区翻,不用走遍全仓。IVF 的“区”就是簇,指示牌是簇中心,区里的货架清单就是倒排列表。

建索引时,通常用 k-means 把向量聚成 nlist 个簇,每个向量归到最近的簇中心,并记录在对应倒排列表里。查询时,先算查询向量到所有簇中心的距离,挑最近的 nprobe 个簇;只在这些簇内做精确距离计算,返回 top-k 邻居。nprobe=1 最快但容易漏掉其他簇里的近邻;nprobe 增大,召回率上升,计算量也上升。nlist 和 nprobe 是关键参数,需要按数据规模和延迟要求调。

和相邻概念的区别:

方法怎么找特点
暴力检索与所有向量算距离精确,数据大时慢
IVF先找最近簇,再簇内算快,可能漏;适合大规模
HNSW(Hierarchical Navigable Small World)在图上逐跳靠近目标通常高召回、低延迟,内存更大
PQ(Product AI 词典:Quantization">Quantization,量化">乘积量化)压缩向量,用近似距离省内存,常与 IVF 组合成 IVF-PQ

核心区别是:IVF 是“分而治之”的粗筛结构;HNSW 是“导航图”;PQ 是“压缩编码”。三者可以组合使用。

实际意义:在语义搜索、推荐、图像检索和 RAG(Retrieval-Augmented Generation,检索增强生成)里,向量数量动辄百万千万,全量比对不现实。IVF 让系统用可控的召回损失换速度。从业者要关注聚类训练、增量更新、删除后倒排列表维护,以及数据分布变化后重建索引。普通人可以把它理解成:搜索快,不是因为算得更多,而是因为先排除了大部分不用算的。具体实现和参数以官方页面为准。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。