[LAB 12 · CLIP延伸:缓存与检索(近似索引选读)](/course/notebooks/921eeaf784284ce19568c6ca7619b55a.html) # 4 · 缓存节约什么,不能节约什么? [独立阅读](/course/notebook-blocks/304aa2a46d41405db647924c1a08d5c0.html) 并入相关学习路径 同一CLIP缓存、exact/IVF搜索、延迟/扫描量、区域交互基线 ## 4 · 缓存节约什么,不能节约什么? 下表是同一 $N=24,Q=12,d=512$ 任务的解析工作量,不是把未执行的全部逐对编码写成实测。每次“样本编码”指一个图片或一条文字通过对应编码器;批处理调用可以一次处理多个样本,二者不相等。 | 组织方式 | 图像样本编码 | 文字样本编码 | 相似度计算 | 可复用内容 | | --- | --- | --- | --- | --- | | 每对都重编码 | 288 | 288 | 288 个512维点积 | 无 | | 双编码器缓存 | 24(入库一次) | 12 | 288 个512维点积 | 图像向量可跨查询复用 | | 新增一条查询 | 0 | 1 | exact为24个点积 | 原图像库不变 | | IVF nprobe=1 | 入库同上 | 查询同上 | 每查询8个中心点积+平均4.17个图片点积 | 中心、倒排表、图片向量 | 图片矩阵为 $24×512×4=49,152$ 字节;8个中心另占16,384字节,倒排 ID 另占192字节(保存基准使用的 int64)。这没有计入 Python 对象、图片文件和模型权重,不能直接称整个服务的内存。 2026-09-22 的全部实测编码还包括候选与关系扩展,共 36 个图像样本和24条文字,分别以9个图像批次和1个文字批次编码;另做两对逐对重编码核验(额外2图+2文),与缓存点积最大差8.94×10⁻⁸。将CLIP按配对重复调用,算的仍然是 $f(I)^\top g(T)$,并没有出现图文联合注意力。 这次36图编码含预处理共2.726秒、24文共0.205秒,是一趟本地CPU墙钟时间,不含模型加载/下载,不能当作稳定线上延迟。代码另行测量缓存搜索分布,已经在上表展示。更换模型、revision、预处理或图片内容会使旧缓存失效;只增加候选文字不会改变已有图片向量。