跳转至

CASA: Cross-Attention over Self-Attention for Efficient Vision-Language Fusion

会议: ECCV2026
Paper: https://eccv.ecva.net/virtual/2026/poster/5264
PDF: https://media.eventhosts.cc/Conferences/ECCV2026/pdfs/9656.pdf
代码: https://github.com/kyutai-labs/casa
项目: https://kyutai.org/casa/
领域: 视觉语言模型效率
关键词: 交叉注意力、视觉语言融合、KV 缓存、窗口化记忆、流式视频描述

一句话总结

CASA 通过受控实验重新评估交叉注意力,用不进入语言主干的图像表示和可替换的窗口视觉 KV 支持高效融合;Helium1 设置下普通 CA 的受控流式吞吐为 6.8 FPS、插入式为 1.2 FPS,但复杂信息图理解仍有明显性能差距。

研究背景与动机

主流视觉语言模型把视觉编码器输出直接插入文本序列,让图像和文字共同经过语言模型的自注意力与前馈网络。这种方案不需要另造融合模块,而且图像表示可以逐层细化,后续文字也能回看历史图像。然而,高分辨率图像和连续视频会持续增加序列长度:付出的不只是一次视觉编码成本,还有每层语言主干计算与不断累积的 KV 缓存。

交叉注意力把图像放在文本序列之外,按需为文本提供视觉信息,看起来正适合实时视频。但以往 CA 模型在图表、文档等任务上往往不如插入式模型,于是出现视觉 FFN、门控或额外寄存 token 等补强设计。这里有一个尚未被分离的问题:差距究竟来自融合机制本身,还是来自骨干、数据和训练实现不同?如果在不匹配的条件下比较,增加模块可能只是弥补训练管线的差距,却又失去 CA 原有的效率优势。

CASA 因而不是提出一套复杂的新模块,而是把 CA 与插入式自注意力的区别拆成五项可检验的架构选择,再分别从纯文本 LLM 训练 VLM、从已有 VLM 转换架构,并验证实时视频应用。核心 idea:让文本承担跨时刻的信息传递、让当前图像仅作为可替换的交叉注意力来源,在现代训练管线下重新衡量这种融合方式能保留多少能力、节省多少成本。

方法详解

整体框架

输入是图像或逐帧视频,以及相应的文本指令。Qwen2.5-VL 视觉编码器先产生视觉 token;这些 token 留在语言序列之外,在各 CA 层投影为视觉键和值。文本侧仍经过因果自注意力,同时通过并行 CA 读取当前窗口的视觉来源,两路输出相加后继续进入语言主干,最终生成回答或实时描述。

流式场景每到一帧就切换视觉窗口,而不是把新图像永久追加到语言模型的 KV 缓存。旧画面只能通过此前受视觉条件影响的文本隐藏状态继续传递,连续帧之间尤其依赖图像后的分隔 token。下图展示窗口化基线;联合文本与视觉的 CA 变体在第二个设计中说明。

%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400}}}%%
flowchart TD
    A["图像或新视频帧"] --> B["视觉编码器"]
    B --> C["静态视觉来源"]
    T["文本指令与分隔符"] --> D["并行注意力融合"]
    C -->|当前视觉 KV| D
    D --> E["窗口化历史传递"]
    E --> F["回答或实时描述"]
    E -.->|后续窗口的文本 SA| D

关键设计

1. 静态视觉来源:不让每个图像 token 穿过整条语言主干

“静态”指视觉编码器输出在语言模型深度方向上不被持续更新,不是说视觉编码器永远冻结,也不是说每层共享同一份投影后的 KV。普通 CA 在各层使用各自的键值投影,但不把图像 token 送入语言模型的自注意力和 FFN。这样既避免视觉 token 占用语言序列,也避开训练时为其保留逐层更新所需的激活。这对应论文 D4:插入式模型会通过 FFN 和自注意力不断更新图像,而 CA 不会。

作者用视觉 FFN 更新变体单独检验“图像不再逐层细化”是否造成损失。结果表明补回这种更新确实改善阅读任务,但计算与训练显存成本显著上升,而且信息图差距仍未消失。因此,CASA 的效率不是白来的:它保留视觉编码器提供的细节,却主动放弃了语言主干对每个视觉 token 的反复加工。它也不同于先把图像压成少量查询 token 的方法,后者在进入语言模型之前就已经丢掉一部分空间细节。

2. 并行注意力融合:分开处理文本历史和当前视觉条件

在一个 Transformer block 内,文本自注意力与视觉交叉注意力接收同一份文本输入,各自拥有投影参数,再将输出相加。前者回答“前面说过什么”,后者回答“当前画面提供什么”;CA 并不是在 SA 完成后再串行执行。设窗口中的图像为 \(y\),出现于文本位置 \(K\),当前文本位置为 \(T>K\)。下面只重述两条注意力分支的核心计算,省略归一化、残差和 FFN,并不冒充完整 block 方程:

\[ \operatorname{SA}_{\mathrm{text}}(x_T)=\operatorname{MHA}(x_T\mid x_{1:T}), \qquad \operatorname{CA}(x_T)=\operatorname{MHA}(x_T\mid y_{1:N}). \]

这里 \(\operatorname{MHA}(q\mid s)\) 表示用 \(q\) 作查询、用序列 \(s\) 产生键和值的多头注意力,\(N\) 是该图像的视觉 token 数。缓存中的原文公式存在文本提取损坏;本节依据正文与注意力定义整理表达,以原文为准,未补造其完整位置编码公式。

这一路融合还可以沿 D1–D3 改变。D1 将 CA 与同层 SA 的查询、键、值及输出投影共享,减少新增参数并允许合并投影计算;D2 引入 \(\operatorname{CA}_{t+v}\),把当前图像和同一窗口内此前文本一起作为 CA 的键值来源;D3 则让 CA 替换部分 SA 层,而不总是额外并行添加。D2 处理的差异还包括图文在插入式模型中共同获得时间位置编码;局部联合注意力的关键可见范围是:

\[ \operatorname{CA}_{t+v}(x_T)=\operatorname{MHA}\!\left(x_T\mid [y_{1:N},x_{K+1:T}]\right),\qquad T>K. \]

联合 CA 不等于恢复全局插入式注意力,因为它仍只看当前窗口。替换 SA 的普通 CA 也不能覆盖全部层,否则会完全失去文本间交流;论文默认每隔两层替换一次,并考察每隔四层的配置。三项选择形成参数量、层数与可见范围的效率调节手段,而不是必须一起打开的三个“增强模块”。缓存中共享参数变体的符号缺失,本文直接用语义名称描述,不猜测原符号。

3. 窗口化历史传递:替换当前视觉 KV,用文本隐藏状态携带旧画面

窗口由相邻图像的出现位置划分,窗口内文本只直接访问该窗口图像。跨窗口仍存在完整的因果文本 SA,因此刚看完图像的文本隐藏状态能够把压缩后的视觉信息传给以后的位置。这是 D5 的关键取舍:不保留全部旧图像 KV,就不能随时检索旧画面的任意细节。作者没有另加专门的记忆 token;对连续视频帧,Qwen 聊天模板本来就有的图像后分隔 token 充当 gist token,在后续 SA 中提供历史线索。

这种“记忆”不必是可读的文字摘要,而是受视觉条件影响的分隔 token 隐藏状态。论文用视频问答表现支持其能够携带历史信息,但没有证明其无损或能保留任意细节。设已经看过 \(k\) 帧,每帧有 \(N\) 个视觉 token,并产生 \(T\) 个文本 token,论文表 1 的键值条目计数可概括为:

\[ \#\mathrm{KV}_{\mathrm{CA}}\sim kT+N, \qquad \#\mathrm{KV}_{\mathrm{insertion}}\sim kT+kN. \]

这是随帧数变化的存储项对比,不是完整字节显存公式;它省略层数、维度、精度和固定模型开销。\(\operatorname{CA}_{t+v}\) 还需当前窗口的文本键值。关键是历史视觉项不再随 \(k\) 累积,而文本项仍然增长,所以“近恒定显存”是论文测量时域内的表现,不能写成无限视频下总内存严格不变。

一个完整示例

以论文采用的 2 FPS 实时描述设置为例,新帧每 0.5 秒到来一次。第一帧编码后成为当前 CA 的视觉来源,模型在读取它的同时处理文本及图像后分隔符;第二帧到达时,当前视觉来源被替换,不会把两帧全部加入文本 SA 的历史视觉缓存。

第二帧之后的文本通过 CA 直接看到第二帧,同时通过 SA 读取第一帧之后留下的文本隐藏状态。于是它可能保留动作连续性的线索,但若后来要求读取第一帧角落里未被记住的数字,就没有旧图像 token 可供重新查询。这个流程说明架构机制,不代表原文报告过该数字读取案例;视频离线评估另有把全部帧放进同一窗口的设置,它具有不同的计算和记忆条件。

损失函数 / 训练策略

本文没有在所读正文中提出独立的新损失函数;核心贡献是融合架构分析与训练对照。图像数据使用 FineVision 和部分 LLaVA-OneVision-1.5,视频继续训练加入 LLaVA-Video-178K。CA 层从对应骨干的 SA 层初始化;从 Helium1-2B 出发时联合微调语言骨干和 CA,从 Qwen2.5-VL-3B 转换时以较小学习率微调语言骨干,同时学习 CA。

两条路线均使用 Qwen2.5-VL 视觉编码器,图像训练微调其最后四层,继续做视频训练时冻结视觉编码器。训练通过 FlashAttention-2 的块状注意力实现多模态 sequence packing:CA 的块边界取图像插入位置,避免打包后文本错误访问别的窗口图像,保持训练与窗口化推理一致。

训练使用 64 张 H100、batch size 64、梯度累积两步;图像设置每 GPU 上限为 2,048 个文本 token 与 20,480 个视觉 token。插入式对照因显存更高而把序列上限减半、batch size 加倍,使处理 token 总量可比。图像最大像素预算为 \(896^2\),单图最多 1,024 token;视频预算为 \(504^2\),2 FPS、最长三分钟,单序列最多 46,080 个视觉 token。

Helium1 路线训练 40k 步,Qwen 图像转换训练 25k 步,视频继续训练 15k 步。实时描述另外从图像训练后的 \(\operatorname{CA}_{t+v}\) Qwen 模型出发,用 Live-WhisperX-526K 微调,不应与前述视频 QA 训练混为一条阶段链。缓存在参考文献后结束,没有附录 B.1,因此不补写学习率数值、优化器设置或未给出的损失掩码细节。

实验关键数据

主实验

下表摘自原文表 2 和表 3,均为越高越好;OCRBench 保留原始分数,不换算成百分比。Helium1 两行是在相同条件、各 0.13T 训练 token 下的融合对照;Qwen 原模型使用作者复测结果。两组实验不可合并解释为同等预训练预算下的排名。

实验设置 模型 ChartQA DocVQA InfoVQA OCRBench TextVQA
Helium1 同条件训练 InsertHe-2B,2.7B 总参数 79.2 88.3 58.9 746 75.1
Helium1 同条件训练 普通 CA,3B 总参数 77.5 86.4 55.1 740 75.4
Qwen 架构转换 Qwen2.5-VL-3B,复测 83.1 92.4 75.1 796 79.6
Qwen 架构转换 普通 CA,25k 步 81.8 87.9 58.2 796 76.5

Helium1 上 CA 的 ChartQA 与 DocVQA 分别低 1.7、1.9 分,TextVQA 反而高 0.3 分,说明 CA 并非在所有视觉任务上都有根本性缺陷。但 Qwen 转换后 InfoVQA 从 75.1 降至 58.2,差 16.9 分,不能用“大多数能力保留”掩盖这一重要退化。

消融实验

原文表 6 专门分析视觉 token 的 FFN 更新。该组冻结视觉编码器,训练 token 预算约为主 Qwen 实验的三分之一;下表原模型是参考,三个训练变体在相同缩减条件下对比,不能将其 CA 行与上表混用。

模型 AI2D ChartQA DocVQA InfoVQA
Qwen2.5-VL 原模型 79.6 83.1 92.4 75.1
插入式模型,同数据微调 78.9 83.8 91.3 68.8
CA 加视觉 FFN 更新 76.2 80.6 86.9 59.2
普通 CA 73.7 78.3 83.1 52.1

加入 FFN 更新后,DocVQA 从 83.1 升至 86.9,InfoVQA 从 52.1 升至 59.2,分别增加 3.8 与 7.1 分;但后者仍比同数据微调的插入式模型低 9.6 分。另一方面,原 Qwen 仅改变微调数据就从 75.1 降至 68.8,差 6.3 分,说明数据分布也是差距来源,不能全部归因于架构。

效率与视频分析

原文表 1 在单 GPU 上测量 Helium1 模型:普通 CA 训练吞吐为 1,817 文本 token/s,插入式为 1,501;受控流式推理分别为 6.8 与 1.2 FPS,约相差 5.7 倍。这里 FPS 指每帧生成五个文本 token、同时接收新帧的吞吐,不是任意分辨率或设备上的端到端保证;共享参数 CA 达到 7.7 FPS。表中显存数值的单位在缓存表头未明确保留,因此不擅自补上单位。

原文表 4 的视频对照如下。VideoMME 均取无字幕结果;Qwen 是最多 360 帧的复测配置,两种 CA 均最多 180 帧,存在输入预算差异。

模型与视觉窗口 VideoMME,无字幕 NExT-QA PerceptionTest MVBench MLVU
Qwen2.5-VL-3B,复测 58.8 78.9 67.0 66.2 65.2
CA t+v,全部帧同一窗口 59.0 79.8 63.8 60.6 67.9
CA t+v,每帧独立窗口 56.9 78.8 62.6 59.5 66.2

逐帧窗口比单窗口的 VideoMME 低 2.1 分,直观体现“只靠文本携带旧视觉信息”的代价。实时描述使用 LiveSports3K 与 GPT-4o 裁判;图 4(a) 中 17k 步的 3B CA 模型 winrate 为 39.4%,20k 步为 39.0%,对照 LiveCC-7B-Base 为 43.2%。这些是特定裁判协议下的描述评价,既不是问答准确率,也不能证明更小的模型全面超过 7B 系统。

亮点与洞察

  • 把融合机制拆成 D1–D5,比简单比较两个模型的总分更能解释成本来源。参数共享和层频率主要改变轻量计算,而视觉逐层更新与全历史视觉 KV 分别触及训练和流式推理的主要开销。
  • 无需把分隔 token 改造成新模块,也能让已有文本路径承担压缩视觉记忆。这提示效率设计不一定要增加记忆网络,但必须测量压缩之后丢失了哪些可检索细节。
  • 同条件从 LLM 训练、从 VLM 转换、同数据微调插入式对照共同限制了结论范围。它们支持重新考虑 CA,而不是把所有文献中的差距都说成已经消除。

局限与展望

  • 细粒度信息图仍是明显短板,作者也在结论中保留插入式模型对文档、信息图和长程检索的优势。补充视觉 FFN 只能部分弥补,且会回收掉一部分效率收益。
  • 历史视觉通过文本隐藏状态压缩,不能无损回看旧图。可考虑有限历史窗口或按需检索视觉记忆,但这是后续方向,会重新增加 KV 数量与每步访问成本。
  • 近恒定内存不是严格常数空间,文本历史和分隔 token 仍累积。评估部署上限还需给出长时间运行时的文本上下文管理策略。
  • 图像主实验、缩减预算消融与视频帧数设置不同;跨模型成绩不应视为完全等算力对照。LiveSports3K 的短视频和 LLM 裁判也不足以覆盖长时间流式描述的真实性与长程记忆可靠性。
  • 本笔记读取的缓存未包含论文提及的附录 A–D,公式与个别变体标记有提取损坏。训练细节、测时细则和更多定性案例的缺失属于材料边界,不等于原论文没有提供。

相关工作与启发

  • 与 Flamingo / OpenFlamingo 相比:延续视觉条件通过 CA 注入语言模型的路线,但重点是现代骨干与公开训练管线下的受控重估,而不是宣称首次使用 CA。本文研究的并行布局也应与早期门控设计区分。
  • 与 StreamChat 相比:同样适合实时更新视觉键值来源,但 CASA 直接检验视觉 FFN 的收益与成本,说明增强视觉表示并非没有代价的默认选项。
  • 与 Q-Former 压缩相比:压缩降低每帧进入语言序列的 token 数,却不能消除它们跨帧累积。原文表 5 中高分辨率任务组分数从 1,156-token 插入的 74.2 降到 128 查询的 62.7、32 查询的 56.0,说明过早压缩也会损伤细节;压缩可以与 CA 叠加,并非互斥。
  • 与 LiveCC 相比:CASA 借用其视频转录数据及描述评价来验证效率,但改善的是融合和缓存路径,不是提出新的描述监督信号。后续研究应同时考察速度、事实一致性和历史事件回忆。

评分

  • 新颖性: 4/5。CA 本身已有长期历史,价值主要在五项差异分解、受控对照与预训练 VLM 转换。
  • 实验充分度: 4/5。覆盖图像、视频、架构消融和实时任务,但长程记忆、裁判可靠性与跨预算公平性仍有边界。
  • 写作质量: 4/5。主线和代价分析清楚;局部 CA、联合 CA 与不同窗口配置需要仔细区分,缓存排版损坏不计为作者写作缺陷。
  • 价值: 4/5。对显存和延迟受限的流式 VLM 很有参考价值,对细粒度文档理解则需要更谨慎取舍。