faiss索引调研(五)—— faiss优化 & 总结

IndexFalt(暴力搜索)

  1. 当N(搜索最近邻个数)< 20 且向量的维度是4的倍数,循环遍历一遍向量空间,使用SSE指令集计算向量的相似度。
  2. 否则使用OpenMP多线程并行计算

IndexIVF(相似搜索)

针对暴搜基础上:

  1. 向量空间聚类:
  2. 相似搜索:对于输入的向量x,先从K个聚类中心中寻找nprob个最相似的中心点,从而将搜索空间从全量缩小到nprob个类别的子空间。
    假设这里k = 1000,nprob=10,那这里的搜索速度相对于暴力搜索会快接近100倍,当nprob==k时,其效果和暴力搜索一致。
    总结:相似搜索是损失很少量的精度(召回),大幅度提升效率的一致策略。

IndexIVFPQ

基于IndexIVF,使用Product Quantizer技术做向量的压缩。

总结:损失一定的精度,节省内存。

comments powered by Disqus