想象一下,让 AI 观看一部两小时的电影,然后问它: “最后背景里那个男人球衣上的号码是多少?”或者“从第一幕到最后一幕,主角和她姐姐的关系是如何演变的?”

对于大多数当前的多模态 AI 模型来说,这是一项不可能完成的任务。虽然像 GPT-4V 或 VideoLLaMA 这样的模型在分析短片段 (通常为 5 到 15 秒) 方面令人印象深刻,但当视频延长至数分钟或数小时时,它们就会遇到硬限制。这个限制被称为记忆墙 (Memory Wall) 。 随着视频变长,模型必须在记忆中保留的视觉“Token” (信息块) 数量会大量增加。最终,GPU 会出现内存溢出 (OOM) ,或者模型会被噪声淹没并忘记上下文。

在这篇文章中,我们将深入探讨一篇名为 “AdaCM\(^2\): On Understanding Extremely Long-Term Video with Adaptive Cross-Modality Memory Reduction” 的新研究论文。这篇论文提出了一种新颖的解决方案,它不仅仅是盲目地压缩视频;而是根据你的提问智能地决定要记住什么。

图 1 对比现有方法与 AdaCM2。

如图 1 所示,虽然传统方法仅基于视觉相关性来压缩视频特征 (左) ,但 AdaCM\(^2\) (右) 使用了一种自适应方法,通过考虑视频与文本查询之间的相关性来显著减少内存使用。

挑战: 为什么长视频对 AI 来说很难

要理解这篇论文的贡献,我们首先需要了解当前视频-语言模型 (Video-LLMs) 的瓶颈。

大多数现代 Video-LLM 使用视觉编码器 (Visual Encoder) (如 Vision Transformer) 将视频帧转化为称为特征的数学表示。然后,这些特征通常通过一个称为 Q-Former (Querying Transformer) 的组件与文本对齐,最后输入到大语言模型 (LLM) 中生成答案。

内存爆炸

在标准的 Transformer 架构中,模型维护一个 KV 缓存 (KV Cache,键-值缓存) 。 该缓存存储来自先前 Token 的信息,以便模型不必在每一步都重新计算它们。

  • 短视频: 一个 10 秒的片段可能会产生几百个视觉 Token。缓存很小。
  • 长视频: 一部 2 小时的电影会产生数百万个 Token。缓存会随着视频长度线性 (有时是二次方) 增长。

以前解决这个问题的方法包括:

  1. 硬压缩: 简单地对帧进行平均或跳过 (丢失细节) 。
  2. 视觉相似性: 合并看起来相似的帧 (例如,如果场景是静态的,则合并 Token) 。

先前方法的缺陷: 它们忽略了文本 。 如果你问“那辆车是什么颜色的?”,模型需要保留与车相关的 Token。如果压缩方法盲目地将“车”的 Token 与“道路”的 Token 合并 (因为它们出现在同一个静态镜头中) ,答案就会丢失。

核心观察

AdaCM\(^2\) 的作者基于对这些模型中注意力机制运作方式的两个关键观察,构建了他们的解决方案。

观察 1: 稀疏性 (并非所有东西都重要)

当模型为了回答特定问题而查看某一帧时,它不需要每一个像素。它只需要与问题的“文本 Token”相关的“视觉 Token”。

跨模态注意力可视化,显示稀疏性和层相似性。

图 3(a) 和 3(b) 说明了这种帧内跨模态注意力稀疏性 (Intra-Frame Cross-Attention Sparsity)

  • 图 3(a): 这个热力图显示了文本 Token (y 轴) 和视觉 Token (x 轴) 之间的注意力。注意地图大部分有多暗?这表明相关性很低。只存在少数亮点 (高注意力) 。
  • 图 3(b): 分布显示绝大多数 Token 的注意力分数接近于零。

含义: 如果我们知道某些视觉数据与文本提示不相关,我们可以安全地将其丢弃。

观察 2: 层级冗余

深度学习模型分层处理信息。早期层处理原始像素和边缘,而深层处理抽象概念。研究人员发现,在深层中,相邻帧之间的信息高度相似。

图 3(c) 显示了不同层跨帧的注意力分数的余弦相似度。注意深层 (如第 10 层或第 12 层) 的线条即使在帧间距离增加时仍保持高位。这表明冗余随层级而变化,意味着我们的记忆缩减策略应该是自适应的——在某些层激进,在其他层保守。


方法: AdaCM\(^2\)

提出的框架 AdaCM\(^2\) 代表 Adaptive Cross-Modality Memory Reduction (自适应跨模态记忆缩减) 。 它被设计为以“即插即用”的方式与现有的架构 (如 BLIP-2) 配合使用。

以下是高层架构:

AdaCM2 框架,包括特征提取、Q-Former 和 LLM。

工作流程包含三个主要阶段:

  1. 视频特征提取: 使用冻结的视觉编码器。
  2. 自适应记忆缩减: 核心创新,发生在 Video Q-Former 内部。
  3. 文本生成: LLM 生成答案。

让我们分解驱动这种高效内存使用的数学引擎。

1. 回归式查询学习

AdaCM\(^2\) 不会一次性将整个视频输入模型 (这会导致内存崩溃) ,而是以回归方式逐帧处理视频。

首先,进行带有位置嵌入的标准特征提取,以帮助模型理解时间:

特征提取与位置嵌入的公式。

这里,\(f_t\) 是时间 \(t\) 的特征,结合了图像特征 \(x_t\) 和时间位置嵌入 \(E(t)\)。

随着视频的进行,模型建立一个 Video Cache (视频缓存) 。 Key (\(K\)) 和 Value (\(V\)) 矩阵按顺序更新:

更新视频缓存中 Key 和 Value 矩阵的公式。

2. 跨模态注意力分数

这就是“跨模态”部分的由来。模型计算一个注意力分数 (\(S_t\)),用于衡量视觉 Token (\(K_t\)) 与查询/文本 Token (\(Q_t\)) 之间的关系。

计算跨模态注意力的公式。

这个注意力图准确地告诉模型视频的哪些部分与当前的文本查询相关。

3. 自适应层级记忆缩减

现在是“记忆缩减”部分。由于我们不能永远让缓存 \(K_t\) 和 \(V_t\) 增长,我们需要驱逐一些 Token。

作者提出了一种分割-修剪策略,如下所示:

视频记忆缩减过程的示意图。

过程如下:

步骤 A: 分区缓存 在任何给定时间 \(t\),缓存被分为两部分:

  1. 近期缓存 (Recent Cache, \(\tilde{K}_t\)) : 最新的帧。我们保持这些完整,因为近期上下文对于连续性通常至关重要。
  2. 过往缓存 (Previous Cache, \(\hat{K}_t\)) : 旧的帧。这是我们需要节省空间的地方。

分割由比率 \(\alpha\) 决定:

将缓存分区为近期和过往部分的公式。

步骤 B: 识别与缩减 对于过往缓存 , 模型查看跨模态注意力分数 。 它将每个视觉 Token 相对于文本 Token 的注意力分数相加:

求和注意力分数的公式。

如果一个视觉 Token 具有很高的总分,这意味着它与文本查询高度相关 (例如,它代表我们询问的“红车”) 。模型选择前 \(\beta\) 百分比的这些 Token 进行保留,并丢弃其余的。

选择前几名 Token 进行保留的公式。

这里,\(\beta\) 是保留比例 (conserve ratio) 。 通过仅保留前 \(\beta\) 的 Token,内存占用被大幅减少。

最终的记忆上限 由于缓存不断被因子 \(r\) (源自 \(\alpha\) 和 \(\beta\)) 修剪,总内存使用量不会线性增长到无穷大。即使视频无限长,它也会收敛到一个固定限制。

显示最大内存限制的公式。

这个数学界限使得 AdaCM\(^2\) 能够处理极长的视频而不会崩溃。


实验与结果

研究人员在几个基准上测试了 AdaCM\(^2\),包括 LVU (长视频理解) 、Breakfast 和 COIN 数据集。

1. 长视频理解性能

主要基准是 LVU 数据集 , 其中包括识别电影中的导演、流派或关系等任务。

对比 AdaCM2 与其他最先进方法在 LVU 数据集上的表现。

如表 1 所示,AdaCM\(^2\) 在几乎所有类别中都优于 MA-LMM 和 MovieChat 等现有方法。它实现了 67.5% 的平均准确率 , 相比之前的最佳成绩 63.0% 有显著提升。

该模型在 BreakfastCOIN 数据集 (教学视频) 上也表现出优越的性能,证明它可以跟踪随时间变化的程序步骤。

在 Breakfast 和 COIN 数据集上的对比结果。

2. 视频描述与问答

对于像较短数据集 (MSRVTT, MSVD) 上的描述和问答等传统任务,AdaCM\(^2\) 保持或提升了最先进的性能。这证实了记忆缩减技术不会损害模型处理标准视频任务的能力。

在 MSRVTT、MSVD 和 YouCook2 上的对比结果。

3. 突破“记忆墙”

最具影响力的结果是内存消耗分析。研究人员绘制了 GPU 内存使用量随帧数增加的变化图。

对比 AdaCM2 与其他方法的 GPU 内存使用量图表。

图 6 是这篇论文的标志性图像。

  • InstructBLIP (紫色): 几乎立即 (约 100 帧) 遇到内存溢出 (OOM) 错误。
  • VideoLLaMA (橙色): 内存线性增长;在长电影上最终会崩溃。
  • MA-LMM (粉色): 使用高且恒定的内存量。
  • AdaCM\(^2\) (绿色/青色): 无论帧数多少,都保持低且恒定的内存使用

与其他方法相比,它减少了高达 65% 的 GPU 内存消耗,同时实现了更好的准确率。

4. 定性案例研究

数字虽好,但它真的能看电影吗?图 2 展示了在 Ego4D 数据集上的零样本案例研究。

案例研究展示模型回答关于 2 小时视频的问题。

在上面的例子中,模型处理了一个持续超过 2 小时的视频。它成功识别了视频最末尾某人球衣上的数字“10”。这要求模型在数千帧中有效地管理其记忆,而不丢弃回答问题所需的关键视觉细节。

消融实验: 策略重要吗?

研究人员检查了他们的“智能”驱逐是否真的比随机删除 Token (“随机驱逐”) 更好。

条形图对比 AdaCM2 与随机驱逐。

图 7 显示 AdaCM\(^2\) 始终击败随机驱逐,证明跨模态注意力正确地识别了需要保留的有价值信息。

他们还分析了超参数 \(\alpha\) (分割比例) 和 \(\beta\) (保留比例) 。

显示分割比例和保留比例影响的图表。

有趣的是,保留更多 Token 并不总是等于更好的性能。如图 8 所示,准确率在特定比率下达到峰值。保留过多冗余信息实际上会分散模型的注意力 (并增加内存成本) ,验证了在视频处理中“少即是多”的观点。

结论

AdaCM\(^2\) 论文代表了视频 AI 向前迈出的重要一步。通过从“压缩所有内容”转变为 “只保留与问题相关的内容” , 研究人员攻克了多模态学习中最棘手的难题之一: 长期上下文与内存限制之间的权衡。

关键结论:

  1. 自适应记忆: 记忆缩减不应该是静态的;它应该适应提示词和网络层级。
  2. 跨模态是关键: 视觉重要性是相对的。只有当用户问及自然时,“树”的 Token 才重要。
  3. 效率制胜: AdaCM\(^2\) 使标准 GPU 能够处理长达数小时的视频,为能够实时分析电影、监控录像或长教学指南的 AI 助手打开了大门。

随着大语言模型的不断进化,像 AdaCM\(^2\) 这样的技术将成为基础设施的关键部分,确保我们的 AI 模型拥有与其推理能力相匹配的记忆跨度。