视觉检索头:要确认 VLM 里哪些头在负责"看图",得先把它们关掉
把 20 个注意力头关掉,一个极擅长看图答题的模型会变成什么样?它不会崩溃,也不会报错。你问它"图里那只站在滑板上的狗在哪里",它照样立刻答出一个框,语法工整、坐标齐全,只是框落在了完全错误的位置。对另一类问题它同样给出流利回答,内容却和图像没有半点关系。模型还在"说话",但它已经不再"看"了。
这道开关只有 20 个头,占模型全部注意力头里的不到 3%。论文给它们起名 Visual Retrieval Heads(视觉检索头,VRH),而发现它们的办法,是先亲手把它们拆掉。这篇题为 Retrieval Heads Meet Vision 的论文要回答一个看似基础却长期悬而未决的问题:VLM 把图像切块成 token、与文本拼进同一序列自回归生成,那么"从图像里定位并提取信息",究竟落在哪些注意力头上?答案是,这个问题在纯文本模型里早就有了解法模板,没人把模板带进视觉侧。
模型会看图答题,但它在哪一层"看见"图像?
论文确认"谁在执行视觉检索"的办法,是先动手关掉少数几个注意力头(attention head)。注意力头是 Transformer 里并行计算注意力的小单元,一个模型通常有上千个。这个办法有现成的模板可循:2024 年 Wu 等人的工作发现,长上下文 LLM 里存在一小撮检索头(retrieval heads),干的事可以概括为一句:copy-paste。当答案藏在几千个 token 的上下文里,这几撮头会把大部分注意力钉在答案出现的位置,把那个 token 原样复制到输出里。Text Retrieval Heads
论文把这套"关掉再看"的办法带进 VLM,这项确认的反常结果应声而出:模型没有崩溃,也不会报错。你问它"图里那只站在滑板上的狗在哪里",它照样立刻答出一个框,语法工整、坐标齐全,只是框落在了完全错误的位置。对另一类问题它同样给出流利回答,内容却和图像没有半点关系。模型还在"说话",但它已经不再"看"了。
动手之前,得先找出哪些头可疑。探测法叫 needle-in-a-haystack(大海捞针):把一段唯一的关键信息当"针",埋在几万 token 的无关文本里当"草堆",再统计每个头把注意力"复制"到针上 token 的比例,那就是它的检索分数。顺手交代一句 VLM 的架构:视觉编码器把图像切成 patch、编码成 token,经投影层送进语言模型的骨干,与文本 token 拼在同一条序列里自回归生成。对这样的模型问"图像信息在哪一层被取用",就等价于在上千个注意力头里找出少数几个特殊的。
这批头有三条性质,后来成为整个研究不断复用的母版。第一,稀疏。全模型只有不到 5% 的头检索分数显著。第二,因果必要。把它们剪掉,在几万 token 的上下文里"拔针"找答案的准确率直接跌破一半,而随机剪同样数量的头几乎没影响。第三,内禀且普适。这些头在短上下文预训练的 base 模型里就已存在,继续预训练、chat 微调、甚至转成 MoE 结构都不会把它们换掉。下面这张热图就是第三条性质的证据:

图注:文本检索头热图,每一行是一个模型、每一列是一个注意力头,亮色代表检索分数高。每个 base 模型紧挨着它的变体(继续预训练、chat 微调、稀疏 MoE 化),行与行高度相似,不同模型家族之间差异明显。这批头在预训练时就在,后续训练动不了它们。Text Retrieval Heads
文本侧已经有这样一张完整地图:哪些头在检索、它们有多关键、它们长在哪里。视觉侧的同类问题却一直悬着。图像被切成几百个 patch,以 token 形式进入同一个注意力机制,一切看起来都和文本一样,但"看见"这件事到底发生在哪些头上,此前没有人用同样严格的标准回答过。这就是这篇论文出发的地方:把文本检索头的三件套范式搬进 VLM,看它在视觉上是否成立。
前人也找过"视觉头",差在哪一刀?
"看见"的证据,前人其实找过不少。2025 年的 Localization Heads 工作发现,一个完全冻结的 LLaVA-1.5-7B 里,第 14 层第 24 个头会把注意力稳定钉在指代物体上。平均 attention 看起来满图都是噪声,唯独它极干净。更惊人的是,只用 3 个这样的头,就能达到和专门 fine-tune 过的 grounding 模型相当的定位精度。Localization Heads

图注:来自 Localization Heads 论文的注意力可视化。以多张输入图为行,对照原图、平均 attention、第 14 层第 24 个头等条件。平均 attention 看起来无法定位,而少数几个头把注意力稳定钉在指代物体上。这就是"形状证据"的样子:注意力确实对齐了,但还没有人证明模型依赖它。Localization Heads
这里有个常被忽略的点:VQA 答得好并不等于"在看图"。图像 token 和文本 token 混在同一条序列里,模型完全可以靠语言先验或者 patch 之间的统计巧合蒙对答案,注意力从没真正落到所指物体上。所以要证明"看见了",得先设计一个不真看就答不对的任务,再检查模型内部有没有对应的工作单元。这就是后文 grounding 探测和因果屏蔽的出发点。
但这里有一个致命的认知断层。注意力钉在物体上,只说明这些头"在看",不说明模型"少看不了"。Localization Heads 的证据链是相关性:attention 形状与指代物体对齐、与 ground-truth 的 IoU 相关,但从来没有人把这些头屏蔽掉,看定位是否会崩。另一支工作(Visual Heads)观察得更系统:9 个多模态模型里,视觉相关的头聚集在特定层,与文本检索头"各层都有"的分布截然不同。它画出了"哪些头在参与看"的分布地图,却没回答"看这件事在因果上离不开哪几个头"。Visual Heads
还有两支工作把注意力头分析搬进了更窄的输入域。OCR Heads 处理的是图像里渲染出来的文字,做的是从图像到文本的 copy-paste,与文本检索头在功能上几乎不重叠。OCR Heads VERA 更进一步,处理 PDF、论文这类视觉文档,用熵尖峰定义"检索时刻",但它和 OCR Heads 一样,输入域始终限定在渲染文字和视觉文档。VERA
把四件套放进一张对照表,缺口就清楚了:
| 头类别 | 输入域 | 有无因果验证 | 与 VRH 的关系 |
|---|---|---|---|
| Localization Heads | 通用图像 | 无,只有注意力形状对齐 | 对比基线,被 VRH 的因果屏蔽显著压制 |
| Visual Heads | 通用图像 | 无,未做功能级因果验证 | 并列的"非因果"阵营 |
| OCR Heads | 图像内渲染文字 | 有,但只在文档 QA 上 | 输入域不同,与 VRH 互补 |
| VERA Heads | 视觉文档(PDF 等) | 有,但只在长文档 QA 上 | 同思路、不同模态 |
三个缺口依次浮现。第一,OCR 头和 VERA 头只覆盖渲染文字和视觉文档,从不面对一张普通的自然图像。第二,面对通用图像的 Localization 头和 Visual 头都停留在相关性证据上,没有人追问"某个具体视觉功能在因果上离不开哪几个头"。第三,没人把文本检索头那套"因果、稀疏、普适"的完整范式搬进通用图像。VRH 的位置就在这里:它补的正是"通用图像加因果验证"这一刀。
给注意力头打分也有讲究:选错"从哪打分",因果上是两回事
补这一刀的办法看似简单:给每个注意力头打个分,把高分头屏蔽掉,看 grounding 精度掉多少,掉得狠的就是关键头。但"打分"这个动作本身藏着一个此前没人系统审视的设计空间。论文用一个公式把历史上所有 head-scoring 方法统一起来:对每个头,取一组 query token,统计它们把注意力投给"ground-truth 框内视觉 token"的多少,再跨样本聚合。VRH
写成公式就是:每个头在单个样本上的分数,等于一组 query token 把注意力投给"框内视觉 token"的聚合,再跨样本取平均。
$$\Theta_{l,h}(s)=\frac{1}{|\mathcal{Q}s|}\sum{t\in\mathcal{Q}s}\Phi{j\in\mathcal{K}s}\left[\alpha{l,h}(t,j)\right],\qquad \bar{\Theta}{l,h}=\Omega{s\in\mathcal{S}}\left[\Theta_{l,h}(s)\right]$$
其中 $\mathcal{Q}_s$ 是 query token 集合,$\mathcal{K}s$ 是 ground-truth 框内视觉 token 的集合,$\alpha{l,h}(t,j)$ 是第 $l$ 层第 $h$ 个头里 token $t$ 投给 token $j$ 的注意力,$\Phi$ 与 $\Omega$ 就是那两个聚合轴。探测任务选的是指代表达 grounding:给"左边那只狗"这样的词组,模型输出一个框,输出框与 ground-truth 框的 IoU 不低于 0.5 就算答对。选它当探测器,是因为它对"图像有没有被引用"这件事足够敏感。
公式里藏着三个轴。第一轴是 query token set:打分时从输入 prompt 的 token 出发,还是从模型实际吐出的预测 token 出发。第二轴是 key 聚合:取注意力最大的那个 token,还是把框内所有视觉 token 的注意力求和。第三轴是跨样本聚合:取平均值,还是统计"出现频率"的选中次数。不同的组合就是不同论文各自的配方:文本检索头、OCR 头和 VERA 都从输出 token 打分,差别主要在 key 聚合轴(三者的跨样本聚合都是取平均),比如文本检索头与 OCR 头都取注意力最大的那个 token(argmax),而 VERA 把框内注意力求和(region-sum);Localization Heads 走的是输入 token 打分加频率统计的路线。三个轴的分量并不均等。把打分来源换成输入 token,识别出的头就明显没那么致命,屏蔽后精度掉得明显更少,这是与默认配方之间实打实的差距;而只改 key 聚合或跨样本聚合,找出的头几乎和默认配方一样关键。
论文做了件此前没人做的事:把三个轴挨个替换,在四个 VLM 上对比哪种配方能找到"屏蔽后最致命"的头。结果非常干脆。默认配方,也就是从输出 token 打分、key 求和、跨样本取均值,找到的头被屏蔽后精度掉得最大也最一致;换成从输入 token 打分,找到的头就没那么致命;只改另外两个轴,结果仍贴着默认配方。第一轴是质变,另外两轴几乎无关紧要。VRH

图注:四个 VLM 在 RefCOCO 上、屏蔽各自检测出的 top-20 头后的 grounding 精度对比,虚线是未屏蔽的基线,柱子越低表示找到的头越关键。默认配方(从输出 token 打分)精度掉得最大也最一致;打分来源换成输入 token 后柱子明显抬高、掉得明显更少;只改 key 聚合与跨样本聚合则仍贴着默认配方;随机屏蔽几乎不动。VRH
为什么打分来源这一轴如此关键?直觉是这样:输出 token 是模型真正把答案吐出来的时刻。要答出"狗在滑板左边"的坐标,那一刻模型的注意力必须实际落在图像里狗的位置上,这个依赖是硬性的。而从输入 prompt 打分,测到的大半是"模型读到问题时瞥了图像一眼",这一步与答案的因果关系弱得多。换句话说,prompt 阶段模型可以"预览",生成阶段它才必须"取货"。
这背后正是全文反复强调的方法论分界:注意力形状对齐不等于因果必要。可以把它想成一次最简单的实验:删掉一个变量,看程序还跑不跑得动。删了才崩,说明它确实在起作用;删了不崩,说明它只是摆设。注意反过来不成立,程序没删这个变量时跑得好,从来不能证明它被用到了。前人的工作恰好都停在这一步之前:Localization Heads 证明了"这个变量经常出现、经常被读",VRH 补上的是"删掉它就崩"。VRH 的整套识别流程,就是把这条逻辑机械地跑一遍:
这个"先破坏、再定位"的实验传统可以追溯到 2023 年的 BLIP causal tracing:给图像 embedding 加噪声,再逐层恢复某个位置的激活,看答案概率复原多少。那是因果归因第一次被搬进 VLM,只是粒度停在 layer 和 token。VRH 继承同一精神,把粒度从层压到 attention head,把"加噪恢复"换成"屏蔽测量"。BLIP Causal Tracing
关掉 20 个特殊头,定位精度最高掉约 80 个百分点
配方定了,验证开始。论文在 11 个 VLM、5 个 grounding 基准上做了全面检验,结论由三件套构成:因果、稀疏、普适。
先说因果。屏蔽检测出的 top-20 个 VRH 后,定位精度最高掉约 80 个百分点。叫"约"是因为这个数字随模型和基准浮动。附录里最接近 80 的记录是 InternVL3-8B 在 Toloka 上的 79.6 个百分点,量级一致;个别组合跌幅还略高于 80,如 InternVL3-8B 在 RefCOCO 上 93.6%→8.8%(约 84.8 个百分点)。其中一组数据是这样的:
| Qwen2.5-VL-7B | Toloka | RefCOCO |
|---|---|---|
| 未屏蔽(k=0) | 67.4% | 86.2% |
| 屏蔽 top-20 VRH | 1.1% | 7.5% |
| 屏蔽 20 个随机头 | 67.2% | 86.1% |
这张表值得多看两眼。随机头几乎不掉分,说明模型不是"屏蔽任何头都会伤"的脆弱机器,只有 VRH 是承重墙。而掉到 1.1% 之后模型依然能吐出格式正确的框,说明崩掉的是"看",不是"说"。另有一组渐进数字:同一个模型在 Toloka 上,屏蔽 5 个头时已经掉到 7.0%,屏蔽到 20 个只剩 1.1%,损伤随屏蔽数量加深,说明这一小撮头是叠加承重的,不是某一只在独撑。这个失败模式本身是受控屏蔽实验里的观察:输出保持流利、位置却错得离谱,这与把视觉检索切断后的预期相符。但要注意,这是实验条件下对因果的诊断,不是能从任意输出单方面反推的内部故障定位规则。
再说稀疏。整个模型里只有不到 15% 的头拿到非零分数(≥10⁻³),拿到显著高分(≥5×10⁻³)的只有 0% 到 4%。top-20 个 VRH 约占全部头的 1.7% 到 2.6%,比文本检索头那边"分数高于 0.5 的头不到全部头的 5%"还要更稀薄。Text Retrieval Heads
最后是普适。11 个 VLM 横跨 8 个语言骨干家族,从 Qwen2.5、Qwen3、Llama-3、Gemma 2 到 DeepSeek-MoE、InternLM2.5、GLM、Phi;5 个 grounding 基准分属三个家族(RefCOCO/+/g、RefSpatialBench、Toloka)。最坏情况下掉约 80 个百分点的结论在所有组合上都成立,这不是某个模型的怪癖。同一个打分公式、同一个 top-20 数量,在稠密与 MoE 等差异明显的骨干上反复出现同一现象,足以排除"特定架构的偶然产物"。神经网络的稀疏特化常见于对单个模型的观察,能在横跨 8 个骨干家族、11 个模型的规模上复现的机制研究并不多见。
定量之外,论文给了一张更直观的定性图,展示 VRH 被关掉后模型内部发生了什么:

图注:屏蔽 VRH 前后的定性对比,左侧是 grounding 示例,右侧是 VQA 示例。黄色框标出 ground-truth 所指物体,虚线椭圆标出 VRH 被屏蔽后注意力消失的区域。结果就是左侧出现一个语法合法但位置错误的框,右侧出现流利但内容不符合图像的回答。VRH
注意力从该看的地方消失,语言能力毫发无损。这正是"因果必要"最干净的呈现:不是相关,是去掉就崩。
不止 grounding:这些头其实是跨任务、跨模型的通用电路
三件套证明了 VRH 和文本检索头是同一族机制,但论文真正的新贡献在接下来的四个性质里,它们超出了文本检索头已有的叙事。
第一,跨任务泛化。VRH 是在 RefCOCO 上用 grounding 探测出来的,但把检测出的头屏蔽掉,7 个 VQA 基准(VAW、Spatial457、SpatialRGPT、CV-Bench、MMStar、CountBenchQA、MathVista)上的表现全部受损。这些任务覆盖属性、空间关系、计数、数学,没有一个跟"输出一个框"有关。这说明 VRH 实现的不是 bbox 定位这个具体技能,而是一个更一般的机制:视觉参考解析(visual reference resolution),把文本里提到的对象在图像里找出来并取用。VRH
第二,功能特异性。屏蔽 VRH 后,模型主要犯的错是"语法合法但位置错掉"的框,而"根本解析不出框"的失败占很少。模型保持着"说得流利",丢失的是"指得准确",这和文本检索头被屏蔽后的 "fluent-but-not-factual"(流利但不忠实)失败模式是同一个基因的两种表现。VRH
第三,架构共享。论文挑了三对共享语言骨干的模型组合:Qwen2.5-VL-7B 和 InternVL3-8B 共享 Qwen2.5-7B 语言骨干,Qwen3-VL-8B 和 InternVL3.5-8B 共享 Qwen3-8B,Magma-8B 和 LLaVA-NeXT-Llama3-8B 共享 Llama-3。每对模型的视觉编码器、投影层、指令微调全都不同,只有语言骨干相同。结果,高分头出现在近乎相同的层和头位置;把 A 模型检测出的 top-20 头原样屏蔽到 B 模型的对应位置,效果和屏蔽 B 自己的头一样灾难。最极端的一对:Magma 从 68.8% 掉到 0.0%,LLaVA-NeXT 从 85.8% 掉到 5.8%。这些同骨干对表明,头位置与共享语言骨干高度相关,与"其受后续多模态对齐影响较小"的解释相符;VRH 因此更像一处可以跨模型迁移的电路,而非某个 VLM 独有的实现细节。

图注:同骨干 VLM 对上的 VRH 一致性。上排是三对模型的 layer-head 分数热图,高分头出现在相近的层和头位置;下排是跨模型屏蔽曲线,把一方的 top-20 头迁移到另一方对应位置屏蔽,跌幅与屏蔽对方自己的头相当,远大于随机头。VRH
打个比方:同一栋楼换了门面装修、换了管道,但承重墙还在同样的位置。骨干相同,关键头的坐标就相同。不过这个比方描述的仍是相关性:头位置与共享骨干高度相关,与"多模态对齐阶段对头改动不大"的图景相容,因果关系还无从谈起。对工程来说这已经是好消息:同一骨干上的不同 VLM 可以共享可解释性结论,研究透一个,就能顺藤摸到另一家。
第四,稳定可检测。识别的鲁棒性相当惊人:只用单个随机选的输出 token 打分,得到的 top-20 与用全部输出 token 几乎一致,屏蔽后精度同样落在 7.2% 对 7.5%;最少 5 到 10 个评分样本就能复现同一组 top-20,而参考集用了 200 个样本。这条性质很关键:如果换个打分样本结果就翻天,top-20 列表里就掺杂了大量噪声;样本少到 5 到 10 个仍复现同一组头,说明这套电路的存在不依赖统计巧合。
四个性质合起来指向一个结论:VRH 不是为"画框"专门训练出来的工具,而是模型理解"文本所指与图像所指是同一个对象"这项基础能力的载体。正因为如此,在 grounding 任务上生出来的这些头,才会在完全不需要输出框的 VQA 任务上依然因果。
找到这一小撮机制单元,能做什么、还看不到什么?
找到一小撮可干预、可迁移、可复现的机制单元,最直接的问题就是:能拿来干什么?论文真正做出来、验证过的应用只有一个。附录里,作者把"屏蔽 VRH 的模型"当作负样本生成器:同一个问题,完好模型和屏蔽 VRH 的模型各答一遍,前者当正样本、后者当负样本,用 DPO 微调。结果 grounding 精度平均提升 0.78 个百分点,论文自己的措辞是 "modest but consistent"(温和而稳定),而且用随机头做负样本的对照组效果更弱。这个幅度谈不上惊艳,但它是全文唯一跑通全程的应用:从识别出那 20 个头,到把它们变成训练信号,再到精度回升,每一步都有实验数据兜底。VRH
除此之外,KV-cache 压缩、test-time 干预是论文点名的可能方向,没有任何数据支撑,属于待验证的设计假设;幻觉诊断则更多是教程层面的延伸设想(论文并未点名这一方向)。它们各自背后有一条自洽的推论,比如既然这些头如此关键,压缩 KV-cache 时就不该动它们。文本检索头那边,这些方向确实都已有对应的实践先例,但那是纯文本侧的结论;搬到视觉侧能不能成立,论文没有给出任何验证。
边界也很清楚,两条局限论文自己写明。第一,所有干预都只作用于 attention,没有做 activation patching,也就没有拆开更精细的电路;第二,所有实验都是单图场景,多图、视频、交错图像文本一概未覆盖。有意思的是,同期发表的两篇工作正好在补第一刀,而第二刀还空着,属于明确的未来工作。两条局限与同期工作的对应关系,可以收成一张小表:
| VRH 论文的局限 | 现状 |
|---|---|
| 只动 attention,没拆精细电路 | Pathways 与 Where To Look? 已用 activation patching 介入 |
| 只测单图,未覆盖多图、视频 | 仍是空白 |
Pathways 从整个 VLM 信息流的角度,用因果 patching 证明视觉信号有两条并行的路:direct pathway 让最后的输出 token 直接读图像 token,text-mediated pathway 则先经 query token 中转,敲掉一条、模型可以走另一条兜底。它和 VRH 是同一台机器的两个粒度,一个是层与 token 之间的路由,一个是骨干内部的头。Pathways
Where To Look? 则堵在另一头:把因果 tracing 做到 vision encoder 内部的每个 token。结果出人意料,"因果重要"和"空间定位"几乎不相关。在 100 个样本上,因果贡献与目标框重叠的相关系数只有 0.062;有某个 token 的因果贡献高达 0.718,它与目标区域的重叠却只有 0.049。模型"看得到"的区域,和真正驱动答案的区域,不是同一个地方。Where To Look?
在一个方向上,这个发现把可解释性从"事后叙事"变成了可操作信号,证据就是那 0.78 个百分点:知道是哪 20 个头在承担视觉检索,就能把这份知识变成训练信号。至于在训练时定向增强这些头、在推理时介入它们、在压缩缓存时绕开它们,都还停留在设计假设阶段。幻觉治理、长上下文视觉问答、模型压缩,因此多了一个精确到单个 head 的潜在把手,但每一项都等着被验证。机制发现的价值,正在于把"模型为什么错"从玄学变成可定位、可干预的工程问题,而"可干预"这三个字,DPO 演示已经给出了第一份实据。
把这三份工作拼起来,一幅更完整的图浮现出来。VRH 给出了骨干内部第一个可验证、可干预的视觉检索单元;Pathways 标出它所在的路径结构;Where To Look? 则提醒,因果路径与空间直觉之间可能隔着很远。确认哪些头在"看图",必须先把它们关掉,这件事听起来像破坏,做起来是研究。而正是这种破坏性的严谨,让"模型到底在哪里看"从一句哲学追问,变成了一张可以动手修改的电路图。
想深入可以读原文:Retrieval Heads Meet Vision: Uncovering How VLMs Locate and Extract Visual Information,见 arXiv:2608.27417
参考文献
- Retrieval Heads Meet Vision: Uncovering How VLMs Locate and Extract Visual Information(arXiv:2608.27417):https://arxiv.org/abs/2608.27417
- Retrieval Head Mechanistically Explains Long-Context Factuality(arXiv:2404.15574):https://arxiv.org/abs/2404.15574
- Your Large Vision-Language Model Only Needs A Few Attention Heads For Visual Grounding(arXiv:2503.06287):https://arxiv.org/abs/2503.06287
- Unveiling Visual Perception in Language Models: An Attention Head Analysis Approach(arXiv:2412.18108):https://arxiv.org/abs/2412.18108
- How Do Large Vision-Language Models See Text in Image? Unveiling the Distinctive Role of OCR Heads(arXiv:2505.15865):https://arxiv.org/abs/2505.15865
- VERA: Identifying and Leveraging Visual Evidence Retrieval Heads in Long-Context Understanding(arXiv:2602.10146):https://arxiv.org/abs/2602.10146
- Pathways of Visual Information Flow in Vision-Language Models(arXiv:2607.03358):https://arxiv.org/abs/2607.03358
- Towards Vision-Language Mechanistic Interpretability: A Causal Tracing Tool for BLIP(arXiv:2308.14179):https://arxiv.org/abs/2308.14179
- Where To Look? : Causal Tracing of Vision Encoders in VLM(arXiv:2608.10758):https://arxiv.org/abs/2608.10758