# 检索为什么能缓存:每张图编码一次,查询再比较 [独立阅读](/course/blocks/retrieval-cache-interface.html)**课堂上下文:从哪个问题来** 检索把同一个比较空间用于一组已有图片。图库向量可复用,查询只需编码一次再搜索;页面前三张结果来自已有真实缓存。工作量、相关性指标和近似索引在说明与 LAB12 中展开;检索系统的进一步组织留待第八讲。 设图库有 $N$ 张图,收到 $Q$ 条文字查询。双编码器的图像输出不依赖当前查询,所以可以先计算图库矩阵 $V\in\mathbb R^{N\times d}$,查询到来时只计算文字向量 $u$,再用 $Vu$ 得分。这把“理解输入的深度编码”和“在现有表示中比较”分成两段。 若每个图文对都重新分别编码,需 $NQ$ 次图片样本编码和 $NQ$ 次文字样本编码;有缓存则是 $N+Q$。本课程 $N=24,Q=12$,两者为 576 与 36 次样本编码。它是解析工作量,不是秒数;一个批次调用可以同时编码多个样本。 缓存并没有消除搜索本身。exact 查询仍要与全部 $N$ 向量做点积;float32 图库矩阵占 $4Nd$ 字节。本例 $24\times512\times4=49,152$ 字节,不含图片、模型、ID 与索引。改变 checkpoint、预处理或图片内容需要重建对应缓存;只新增文字候选不改变旧图片向量。 P59 使用已有 24 项缓存显示猫查询的前三项:`chelsea-center90`、`chelsea-full`、`chelsea-right90`。24 项其实来自六张照片的四种相关裁剪,不能当成 24 张独立语义样本。它足以观察排名与缓存复用;更大的索引工程属于第八讲和 LAB12 的选读部分。 图内标签与数值:6 张来源照片 × 4 个相关视图 = 24 项;查询:“a photo of a cat.”;文字编码一次;与 24 个已保存图像向量比较;1 chelsea-center90;2 chelsea-full;3 chelsea-right90;已有结果:精确检索的前三项都是猫图变体;复用 2026-09-22 本地真实 CLIP 缓存;24 项含相关裁剪,不是 24 个独立来源。本轮未运行模型。 查询对应的前三张结果来自已经保存的真实 CLIP 缓存。 查看对应图解状态 - 6 张来源照片 × 4 个相关视图 = 24 项 - 查询:“a photo of a cat.” - 文字编码一次 - 与 24 个已保存图像向量比较 - 1 chelsea-center90 - 2 chelsea-full - 3 chelsea-right90 - 已有结果:精确检索的前三项都是猫图变体 - 复用 2026-09-22 本地真实 CLIP 缓存;24 项含相关裁剪,不是 24 个独立来源。本轮未运行模型。查询对应的前三张结果来自已经保存的真实 CLIP 缓存。 [查看对应图解状态](/#/l3-r2-p59/0)[查看完整图解](/#/l3-r2-p59/0) ## 继续阅读与实验