[LAB 12 · CLIP延伸:缓存与检索(近似索引选读)](/course/notebooks/921eeaf784284ce19568c6ca7619b55a.html) # 3 · 实际的近似索引:先路由到簇,再在簇内精排 [独立阅读](/course/notebook-blocks/62a7fe6e03324fd9877c139c11e4ce0e.html) 并入相关学习路径 同一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 作为相同分数的固定次序,避免把平分的排序差异误认为近似错误。 下面是真正参与当前实验的聚类代码;完整脚本还有文件核验、向量缓存和结果保存。