Lecture 033 · 实际的近似索引:先路由到簇,再在簇内精排
3 · 实际的近似索引:先路由到簇,再在簇内精排
并入相关学习路径
同一CLIP缓存、exact/IVF搜索、延迟/扫描量、区域交互基线
3 · 实际的近似索引:先路由到簇,再在簇内精排
本实验实现 IVF-Flat,而不只是打印一个标为 ANN 的 Recall。首先对归一化图像特征做固定 seed=17 的 spherical k-means,得到 8 个中心;每张图分配到 cosine 最大的中心,倒排表保存该簇内真实图片 ID。查询时先计算到 8 个中心的分数,只打开最近的 nprobe 个簇,然后对候选图片的原 float32 向量计算精确 cosine 并排序。
近似发生在“哪些簇被打开”,不是候选内部的打分。一个本来应在 exact 前三的图只要被放进未打开的簇,就可能漏检。nprobe 增大通常减少这种遗漏,但候选扫描增多;当 nprobe=8 时所有桶都打开,应恢复 exact 的相同排名。本例以图片 ID 作为相同分数的固定次序,避免把平分的排序差异误认为近似错误。
下面是真正参与当前实验的聚类代码;完整脚本还有文件核验、向量缓存和结果保存。