状态化视觉编码器:让视觉语言模型的视觉编码器具备跨图像记忆 Stateful Visual Encoders for Vision-Language Models
在视觉编码器内注入跨图交叉注意力,使每张图编码依赖历史视觉特征。
前置知识
视觉语言模型 (VLM)
VLM 由视觉编码器 $f_V$、连接器 $W_{Proj}$ 与大语言模型 $f_L$ 组成。图像切成 patch 经 $f_V$ 得特征 $Z=f_V(I)$,再映射为视觉 token 送入 LLM 与文本一起推理。Qwen3-VL、InternVL、Gemma-3 均属此类。
本文改造的对象正是 VLM 中的视觉编码器,需先理解视觉 token 如何流向 LLM,才能看懂在编码阶段注入跨图像交互的作用。
无状态/状态化视觉编码器
无状态编码指每张图像独立通过视觉编码器,编码时不参考任何其它图像,跨图比较完全留给 LLM。状态化编码则让当前图像特征依赖历史图像特征,使细粒度差异在进入 LLM 前就被显式放大。本文称后者为 Stateful Visual Encoder (SVE)。
本文核心就是把无状态编码器改造为状态化,理解两者差异是把握论文动机与全部贡献的前提。
交叉注意力 (Cross-Attention)
注意力中 query 与另一序列的 key/value 配对。本文用当前图像 token 作 query ($Q_t=Z_tW_Q^{cross}$)、上一张图 token 作 key/value ($K_t=Z_{t-1}W_K^{cross}$),让当前特征检索历史特征,区别于同源的自注意力。
Cross+FFN 是论文筛选出的最佳状态化设计,看懂交叉注意力的 Q/K/V 来路才能理解方法与消融结果。
零初始化 (Zero Initialization)
把新增模块的输出投影初始化为零矩阵 ($W_O^{cross}=0$、$W_2^{cross}=0$),使训练开始时新分支对特征零扰动、保留预训练编码器行为,再逐步学到状态条件。这一思想与 ReZero、AdaLN-Zero 一脉相承。
消融显示去掉零初始化退化最严重(点距 MAE 从 0.56 升到 1.13),它是稳定 SFT 的关键配方组件。
停止梯度 (Stop-Gradient)
对历史特征通路施加停止梯度 $K_{t-1}=\text{stop grad}(Z_{t-1})W_K^{cross}$,使梯度只更新当前 query 分支,而不回流到被当作检索上下文的历史特征,借鉴自 BYOL/SimSiam,避免表示塌缩与历史特征的共适配。
停止梯度是论文优化配方的核心组件之一,消融证明它对空间聚合任务有正向作用。
研究动机
现有开源 VLM 普遍沿用静态图像-语言建模的架构:每张图像独立通过视觉编码器,视觉比较只在语言模型内部发生,视觉编码器本身是无状态的。问题在于许多视觉变化极其细微——胸片上新增或部分吸收的病灶、卫星图里新出现的小结构、编辑图像里仅局部属性的改变——这些任务关键的细节在被送入 LLM 比较之前就可能被编码器抹平。现代 VLM 的视觉编码器(Qwen3-VL、Qwen3.5、GLM-4.6V-Flash、InternVL3.5、Gemma-3)大多用语言对齐(CLIP、SigLIP)或自监督目标预训练并逐图独立施加,逐图编码会无意中抑制比较所需的细粒度差异。多图 VLM(MANTIS、LLaVA-NeXT-Interleave、LLaVA-OneVision、Idefics3、VILA)普遍采用晚融合,把跨图比较推给 LLM;长视频或流式 VLM 则在编码之后才引入记忆库、token 压缩或 KV-cache。虽存在专用变化检测编码器(Capt-Diff、DUDA、MCCFormer),但它们面向特定任务而非通用视觉编码。
本文的目标是本文目标是设计一种状态化视觉编码器 (Stateful Visual Encoder, SVE),在不替换视觉骨干、不从头重训整个 VLM 的前提下,把跨图像交互直接注入视觉编码器内部,使当前图像的视觉表示在被序列化为 LLM token 之前就条件化于历史图像特征。作者希望这种早期跨图比较能放大任务关键但语义上微弱的视觉变化,并验证三点:(1) 在受控合成任务(跨图空间聚合、多目标视觉差分、视觉轨迹行为克隆)上能否稳定超越无状态基线;(2) 该方法是否对输入分辨率($256^2$–$768^2$)、模型规模(0.8B–9B)和 VLM 骨架(Qwen3-VL、Qwen3.5、GLM-4.6V-Flash、InternVL3.5、Gemma-3)保持鲁棒;(3) 在真实世界的纵向放射、精细图像比较与遥感变化描述三类任务上能否超越无状态基线并匹敌甚至超过专用模型。
与已有工作不同的是,既有路线要么把跨图比较完全推迟到 LLM(晚融合多图 VLM),要么用从头训练的专用时空骨干做视频或变化检测(I3D、MViT、TimeSformer、InternVideo2、VideoPrism、Perception Encoder、OneVision-Encoder),要么在编码之后再加记忆机制。本文的独特切入角度是:既不重训骨干、也不在 LLM 之后补救,而是直接在通用图像编码器内部引入因果跨图条件——当前图像检索并融合上一张图像的 token,而未来图像仍不可见,恰好匹配交互式场景同时保留既有 VLM 视觉接口。作者进一步用一个'复制权重+零初始化输出+停止梯度'的工程配方,让新增模块在不破坏预训练特征分布的前提下逐步学到状态依赖,从而把状态化能力作为轻量插件嫁接到现成 VLM 上,而非要求重新预训练整个模型。
核心方法
SVE 的整体直觉是:与其等 LLM 来比较两张图,不如让视觉编码器在编码当前图时就'看一眼'上一张图。技术路线是给预训练 ViT 的每个 block 插入一个轻量的跨图像交互模块,使当前图像的 patch token 能检索历史图像的同层 token,并在送回原始自注意力与 FFN 之前完成变换。作者先提出四种候选设计——Self-Ext(把历史特征拼进自注意力 KV 集合)、AdaLN-Zero(用历史特征池化向量经自适应归一化调制自注意力与 FFN)、Cross(插入完整 token 级交叉注意力)、Cross+FFN(在交叉注意力后再加一个 FFN)——并用三个受控任务筛选。最终选定 Cross+FFN:每层先用当前 token 作 query、历史 token 作 key/value 做交叉注意力,再接一个 FFN,输出经残差合并回当前 token 流,然后照常进入原始预训练自注意力与 FFN。第一张图没有历史,则回退用自身 $Z_1$ 作 key/value 源。
核心创新点是把'状态'引入一个原本被设计为无状态的图像编码器,且采用因果方向:当前图像只能注意过去的视觉特征,未来图像不可见,这既贴合交互式智能体设定,又避免训练时泄露答案。与已有方法的本质区别有三:其一,专用变化检测或视频编码器是为特定任务或时空建模从头训练的,而 SVE 是嫁接到通用图像编码器上的可插拔状态化层,保留预训练 VLM 接口;其二,晚融合多图 VLM 把比较丢给 LLM,SVE 则把比较提前到视觉骨干内部,在差异被抹平前显式放大;其三,作者用'从同层自注意力复制 $W_{Q,K,V}^{cross}\leftarrow W_{Q,K,V}^{self}$、输出投影 $W_O^{cross}=0$ 与 $W_2^{cross}=0$ 零初始化、对历史特征通路停止梯度'的配方,使新模块在训练初期恒等于恒等映射,避免扰动预训练分布,这是把状态化能力安全注入现成 VLM 的关键。
方法步骤详情
SVE 训练分四步。第一步初始化:从同一 block 的预训练自注意力复制交叉注意力输入投影 $W_{Q,K,V}^{cross}\leftarrow W_{Q,K,V}^{self}$,输出投影置零 $W_O^{cross}=0$;新增 FFN 复制首层 $W_1^{cross}\leftarrow W_1^{self}$、第二层置零 $W_2^{cross}=0$。第二步条件化:每层以当前特征 $Z_t$ 作 query、前驱特征 $Z_{t-1}$ 作 key/value,$Q_t=Z_tW_Q^{cross}$、$(K_t,V_t)=(Z_{t-1}W_K^{cross},Z_{t-1}W_V^{cross})$,首图回退用 $Z_1$ 作源;其余设计如 Self-Ext 把源扩为 $[Z_t;Z_{t-1}]$、AdaLN-Zero 用前驱池化向量调制。第三步优化:对历史分支停止梯度 $K_{t-1}=\text{stop grad}(Z_{t-1})W_K^{cross}$,梯度只更新当前 query 分支。第四步用三个受控任务筛选并消融配方,再做真实任务验证与特征分析。
技术新颖性
技术新颖性可归纳四点。第一,第一次系统地把'状态化'作为通用图像编码器的可插拔改造来研究,并对比四种设计(Self-Ext/AdaLN-Zero/Cross/Cross+FFN)给出明确结论,而非像专用变化检测那样绑定特定任务。第二,'复制权重+零初始化输出+停止梯度'的组合配方是关键工程贡献:它使新增交叉注意力与 FFN 在训练初期对预训练特征分布零扰动,消融证明去掉零初始化退化最严重(点距 MAE 从 0.56 升到 1.13),去掉停止梯度和位置编码也有损害。第三,因果方向的状态化(只看过去、不看未来)既匹配交互式设定,又能用于轨迹行为克隆这类需要部分可观测性的任务,区别于双向的视频编码器。第四,作者用容量控制基线 Self+FFN(同样参数量但不注意历史)隔离了'真状态化'与'仅仅加参数',证明收益来自跨图检索而非容量膨胀,并通过特征分析显示更新是空间稀疏的,多数 token 几乎不变、少量 token 吸收大部分跨图变化。
实验结果
受控任务上 Cross+FFN 全面领先。空间聚合(Table 1)平均 MAE 从无状态 1.15 降到 0.72、点距 MAE 1.17→0.56 增益最大,另两种设计 Self-Ext、AdaLN-Zero 则不及或仅接近基线。CLEVR 差分(Table 2)CIDEr 529.5→543.9、Acc 91.1→92.7;VisGym 四任务 perplexity 全降(PR 2.074→1.944)。消融(Table 3/4)显示零初始化最关键(点距 MAE 0.56→1.13),其余组件各有贡献。泛化(Fig. 4/Table 5)表明 SVE 在 256²–768²、0.8B–9B 上稳定超越基线,跨五种骨架均提升,Gemma-3 增益最大(BLEU-4 +8.0、CIDEr +45.6)。真实任务上 Medical-Diff-VQA CIDEr 145.1→178.9、Change Acc 86.83→89.21;ImgEdit 对基线 209:171 胜出;LEVIR-CC 综合 $S_m^*$ 79.60→80.46,超过全部专用模型(SACNet 79.97)。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| 跨图空间聚合(点距/面积估计) | MAE/RMSE(×10⁻²,越低越好) | Cross+FFN 平均 MAE 0.72 / RMSE 0.96;点距 MAE 0.56 | 无状态基线平均 MAE 1.15 / RMSE 1.60;点距 MAE 1.17 | 平均 MAE 下降 0.43,点距 MAE 下降 0.61(约 -52%),是所有设计里最强 |
| 多目标视觉差分 (CLEVR-Multi-Change) | CIDEr / Change Accuracy(越高越好)、PPL(越低越好) | Cross+FFN CIDEr 543.9、Acc 92.7、PPL 1.219 | 无状态 CIDEr 529.5、Acc 91.1、PPL 1.229 | CIDEr +14.4、Acc +1.6、PPL -0.010 |
| 视觉轨迹行为克隆 (VisGym 四任务) | Perplexity(越低越好) | Cross+FFN:MSR 2.111、PR 1.944、MRC 1.193、MRO 1.203 | 无状态:MSR 2.162、PR 2.074、MRC 1.204、MRO 1.205 | 四任务 perplexity 全部下降,PR 下降 0.130 最显著 |
| 配方消融(空间聚合点距) | MAE(×10⁻²) | 完整 Cross+FFN:0.56 | 去掉 $W_{O,2}$ 零初始化:1.13 | 零初始化带来 0.57 的差距,是单组件影响最大的消融 |
| 跨 VLM 骨架泛化 (CLEVR) | BLEU-4 / CIDEr / Change Accuracy | SVE 在 Qwen3-VL/Qwen3.5/GLM-4.6V/InternVL3.5/Gemma-3 上均提升 | 各自的无状态 SFT 基线 | Gemma-3-4B 增益最大:BLEU-4 +8.0、CIDEr +45.6、Acc +7.9 |
| 纵向放射 (Medical-Diff-VQA) | CIDEr / Micro-F1 / Change Accuracy | +SVE:CIDEr 178.9、Micro-F1 32.20、Change Acc 89.21 | Qwen3.5 4B (SFT):CIDEr 145.1、Micro-F1 31.55、Change Acc 86.83 | CIDEr +33.8、Micro-F1 +0.65、Change Acc +2.38 |
| 遥感变化描述 (LEVIR-CC) | 综合分 $S_m^*$(B4/M/R-L/C 均值) | Qwen3.5 4B + SVE:$S_m^*$ 80.46 | 无状态 79.60;最强专用模型 SACNet 79.97 | 比无状态 +0.86,且超过全部专用模型取得 SOTA |
局限与改进
作者未设独立 Limitations 小节,但我观察到若干限制。首先,SVE 的状态只回溯一张图($Z_{t-1}$),对长序列多步变化(如多轮智能体、长视频)是否需要更长记忆未讨论。其次,所有实验基于监督微调 (SFT),未评估 zero/few-shot 或在更大 LLM 预训练规模下的表现,状态化收益在预训练阶段是否同样成立仍未知。第三,消融主要在受控合成任务上完成,真实任务(放射、编辑、遥感)缺少配方级消融,难以确认同一配方在真实域是否最优。第四,跨图注意力按层插入带来额外计算与显存开销(原文未报告 FLOPs/延迟),且需修改 ViT 前向(首图回退、停止梯度),与某些 VLM 训练框架的兼容性需自行验证。第五,特征分析虽显示更新稀疏,但未给出 token 级稀疏化或加速方案;空间聚合等任务上 Cross+FFN 已接近上限,更难任务下的天花板未测。第六,ImgEdit 评估依赖 MLLM 判官 (Claude-Opus-4.7),存在判官偏置风险。
独立分析的弱点
独立分析的弱点:(1) 只回看一张前驱图,对需要多步历史(导航、长视频)的交互明显不够,改进方向是引入记忆队列或可学习记忆 token,把多张历史特征压缩后作 key/value 源。(2) 交叉注意力按层全插入,计算随分辨率与历史长度增长,改进方向是用稀疏注意力或门控,只对'更新热'的 token 做跨图读取(Fig. 5c 已显示更新本就稀疏)。(3) 真实任务未做配方消融,存在过度工程风险,建议在放射/遥感任务上也报告 Self-Ext、AdaLN-Zero、Self+FFN 的对比。(4) 停止梯度只作用于历史分支,但当前 query 与历史共用复制来的 $W_{K,V}$ 投影,是否应解耦或共享未探究。(5) 评估多在单一数据集,建议补充跨域 zero-shot 与标准多图基准,并补 FLOPs/参数/精度三维帕累托对比。
未来方向
作者隐含方向是把状态化推广到更通用的多图/视频与更大规模。可延伸方向有:(1) 扩展记忆深度,把因果单步条件升级为可变长记忆(类似流式 VLM 的记忆库),支持长轨迹与长视频,同时保留'未来不可见'的因果性。(2) 在预训练阶段引入状态化而非仅 SFT,验证早期跨图对比能否带来更强表示,可能需要构造多图对比预训练目标。(3) 把 SVE 与现有 token 压缩或记忆机制(He 等、Zhang 等、Diko 等的流式 VLM)结合,研究'编码内状态'与'编码后记忆'的互补性。(4) 探索更高效的稀疏跨图读取:基于 Fig. 5c 的稀疏性,用门控或路由只让少量 token 访问历史,降低长序列成本。(5) 拓展到 GUI agent、自动驾驶序列等真实交互场景,验证状态化对决策类任务的收益。(6) 与最新视频/图像统一编码器(Perception Encoder、OneVision-Encoder)正面对比,厘清 SVE 在'图像序列'与'视频'之间的适用边界。
复现评估
复现评估分四方面。开源情况:论文给出项目主页 statefulvisualencoders.github.io,但正文未明确代码/权重是否已发布;多数 VLM 骨架(Qwen3-VL、Qwen3.5、GLM-4.6V、InternVL3.5、Gemma-3)为开源权重,受控任务引擎(CLEVR-Multi-Change、VisGym)与真实数据集(Medical-Diff-VQA、ImgEdit、LEVIR-CC)基本可获取。算力需求:主实验以 Qwen3.5-4B 为骨干做 SFT,并扩展到 0.8B–9B、跨五种骨架、多分辨率,总训练量可观,但状态化模块本身参数很轻。复现难度:核心改动集中在 ViT 前向——需在每个 block 插入交叉注意力+FFN、实现首图回退、停止梯度、权重复制与零初始化;对熟悉 VLM 训练栈的团队属中等难度,指标均为标准度量可独立核对。
论文图表
左侧是无状态编码器:每张图独立编码为视觉 token 再交给 LLM 比较;右侧是状态化编码器:在每个 block 让当前图像的 token 注意上一张图像的特征(左到右因果方向),从而在视觉骨干内部实现早期跨图比较。强调了'当前只能看过去、未来不可见'的方向性。
这张图一句话讲清了无状态与状态化编码器的本质区别,是理解论文动机与核心思想的最直接视觉证据。