nprobe 网格搜索
nprobe 网格搜索
import faiss, numpy as np
d = 256
index = faiss.IndexIVFFlat(faiss.IndexFlatL2(d), d, 128)
index.train(np.random.rand(100000, d).astype("float32"))
index.add(np.random.rand(500000, d).astype("float32"))
q = np.random.rand(100, d).astype("float32")
for nprobe in (1, 4, 8, 16, 32, 64):
index.nprobe = nprobe
D, I = index.search(q, 10) # 记录 recall@10 与 p95 延迟nprobe 与 nlist 配对比曲线更能说明问题:nlist 变大后,同一 nprobe 覆盖比例会变小。