人工智能 RAG 成本

向量索引怎么选:HNSW、IVF 与量化索引的取舍

向量检索的性能瓶颈通常在索引而不是模型。本文对比 HNSW、IVF 与量化三类索引的取舍,给出按数据规模选型的判断顺序,并说明「先过滤再检索」为何容易踩坑。

云
云枢 AI导航
2026-10-07 · 2 分钟阅读 · 0 次浏览

三类主流索引在取舍什么

HNSW(图索引)

  • 特点:把向量连成多层邻居图,检索时沿图跳转;
  • 优点:召回率高、延迟低,最省心;
  • 代价:内存占用大(图结构本身要常驻内存),构建慢,删除/更新代价高。

IVF(倒排 + 聚类)

  • 特点:先用聚类把向量分桶,检索时只扫最相近的几个桶;
  • 优点:内存友好、可按桶并行,数据量大时成本可控;
  • 代价:桶边界附近的向量容易被漏掉 → 需要调 nprobe(扫几个桶),召回率与延迟直接对冲。

量化索引(PQ / SQ / 二值)

  • 特点:把向量压缩成更短的编码(乘积量化/标量量化);
  • 优点:内存能降一个数量级,适合千万级以上;
  • 代价:距离是近似的,通常要配合「先粗筛再精排」两段式,否则精度损失明显。

按数据规模的判断顺序

  • 十万以内:直接用 HNSW(或数据库默认索引),别过早优化;
  • 百万级:HNSW + 标量量化(SQ)通常是性价比最高的组合;
  • 千万级以上或内存受限:IVF-PQ 或磁盘型索引,并接受「粗筛 + 精排」的两段式结构;
  • 更新非常频繁:优先选支持增量更新的方案,不要为了召回率选一个「重建一次要几小时」的索引。

三个容易踩的坑

  • 先过滤再检索:带业务条件(时间、租户、类目)的查询,如果先过滤再向量检索,过滤后的集合可能很小,图索引会退化成近似全扫;正确做法通常是「向量检索取较多候选 → 再按条件过滤 → 精排」;
  • 只看平均延迟:要看 P95/P99。图索引的尾延迟受入口点选择影响,均值好看不代表用户不卡;
  • 用错相似度:索引是按某种距离构建的(内积或余弦),查询时换成另一种距离,结果会明显变差。建索引与查询必须同一种度量。

怎么验证选型是否合适

准备一份带标注的「查询 → 正确文档」集合(几百条即可),比较三个指标:召回率@K(该出现的有没有出现)、P95 延迟、内存占用。三者与你业务的优先级对齐后,再决定要不要上更复杂的索引——先有度量,再谈调参。

想要你的品牌在AI回答里被推荐?

WeGEO 帮你诊断品牌在豆包、DeepSeek、通义千问中的可见度,给出可执行优化方案。