当前位置: 首页 > news >正文

真正的多模态上下文学习需要关注视觉上下文

True Multimodal In-Context Learning Needs Attention to the Visual Context
COLM 2025

Why

本研究探讨以下两个核心研究问题:

  1. 如何有效缓解模型对视觉模态的忽视,从而真正推进多模态在上下文学习(MICL)?

    • 问题现状:当前的MLLM在学习新任务时,表现出一种“假性”智能。它们倾向于忽视示例中的视觉信息(图片),而过度依赖文本模式的模仿,这导致的是文本模式模仿而非真正的多模态适应,使得多模态 ICL 仍停留在单模态层面。
  2. 什么样的评估和训练工具(数据集)才更适合提升和评估真正的MICL能力?

    • 问题现状:上述“视觉忽视”问题之所以长期被掩盖,很大程度上是因为现有的评估标准存在漏洞。许多标准视觉语言数据集在用于MICL评估时,其任务本身并不严格要求模型必须理解示例中的视觉信息。模型可以通过“作弊”(如仅靠模仿文本风格)就获得不错的成绩。

What

为了解决上述两个核心问题,论文给出了两个对应的解决方案。

  1. 创新点1:提出DARA (Dynamic Attention ReAllocation - 动态注意力重分配)

    • 定义:DARA是一种轻量级的微调策略,是专门为了解决“视觉忽视”问题而设计的“注意力放大器”。
    • 功能:它的核心功能是动态地重新分配模型内部的注意力。通过引入极少数(约100多个)可学习的参数,DARA能够显著增强模型对上下文示例中视觉信息的关注度,从而引导模型在解决新任务时,主动地从示例图片中学习和推理。
  2. 创新点2:构建TrueMICL数据集

    • 定义:TrueMICL是一个专门为MICL设计的基准测试数据集,检验模型是否具备真正多模态学习能力。
    • 作用:这个数据集的设计遵循一个主要原则:正确的答案必须依赖于对示例中图片文字的综合理解。它包含了一系列需要模型从示例中归纳隐藏规则的任务,例如:
      • 时钟数学:从示例中学习“将时钟指针指向的数字相乘”的规则。
        ![[image-195.png|670x293]]

How

3.1 DARA的实现

3.1.1 DARA 的设计

要理解DARA,首先要回顾标准的自注意力(Self-Attention)机制,其计算公式为:
Attention(Q,K,V)=softmax(QKTdk)V\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dkQKT)V
其中,注意力分数矩阵 SSSS=QKTS = QK^TS=QKT 计算得出。DARA正是在这一步之后,修改注意力分数矩阵 SSS ,右乘一个可学习的注意力平衡因子矩阵 FFF,它是一个对角矩阵,由一个向量 fff 生成,即 F=diag(f)F = \text{diag}(f)F=diag(f)。向量 f∈Rlf \in \mathbb{R}^lfRl 是对角线元素集合:

  • 向量 fff 的每一个元素 fjf_jfj 都与输入序列的第 jjj 个token一一对应。
  • 对于所有文本token查询的视觉token,对应的 fjf_jfj 值恒为 1
  • 只对于上下文的视觉token,对应的 fjf_jfj 是一个可学习的参数(初始化为1)。
  • 注意,DARA引入的可学习权重参数,其数量是与输入的图片数量相关的,而不是与视觉token的总数相关。一个图片对应一个权重,例如,一张图片可能对应着 14×14=19614 \times 14 = 19614×14=196 个视觉token,对应于这196个token的所有列,全部乘以同一个权重因子 w1w_1w1

通过这个设计,DARA的计算公式变为:
Attention′(Q,K,V)=softmax(SFdk)V\text{Attention}'(Q, K, V) = \text{softmax}\left(\frac{SF}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dkSF)V
由于 FFF 是一个对角矩阵,右乘 FFF 的效果等价于将分数矩阵 SSS 的每一列 SjS_jSj 乘以对应的权重因子 fjf_jfj。这样,通过学习将示例图片对应的 fjf_jfj 值调整到大于1,就实现了对这些视觉信息注意力的精准放大。

3.1.2 DARA 的训练

DARA的训练是一种参数高效的微调。

  1. 模型与数据准备

    • 加载一个预训练好的多模态大语言模型(MLLM),并冻结其原始参数
    • 在模型的第一层Transformer注意力模块所有注意力头中,插入DARA的可学习平衡因子参数(S′=SFS' = SFS=SF),并全部初始化为1。
    • 训练数据使用TrueMICL数据集的专属训练集,数据形式为包含多个图文示例和一个查询的序列。
  2. 优化目标

    • 训练的目标是让模型生成的答案与真实答案尽可能一致。通过标准的交叉熵损失函数 Lgt=−∑ilog⁡P(x^i∣V,α;M)\mathcal{L}_{gt}=-\sum_i \log \mathcal{P}(\hat{x}_i|V, \alpha; \mathcal{M})Lgt=ilogP(x^iV,α;M)计算。
  3. 参数更新

    • 在每个训练步骤中,模型处理一批数据并生成预测。
    • 计算预测与真实标签之间的交叉熵损失。
    • 进行反向传播,DARA引入的可学习平衡因子参数通过梯度下降自动优化。
    • 使用AdamW优化器,根据一组预设的超参数(学习率1e−31e-31e3,训练5个轮次)来更新这些平衡因子。

3.2 TrueMICL数据集

TrueMICL的设计是为了创造一个“无法作弊”的评估环境。其构建遵循以下设计理念
1)上下文依赖性:没有上下文图像,任务就无法解决。
2)新颖性:任务应引入在预训练或指令微调中不常见的新图像 - 文本关系,以有效挑战任务学习能力。
3)可感知的视觉信息:从图像中提取的必要信息不应过于复杂,确保视觉编码器能准确感知。这使我们能够专注于 MICL 能力而非视觉感知挑战。
4)与主干的兼容性:任务应突破多模态上下文学习的边界,但又不超出语言主干的能力范围。

最终,我们构建了总共 867 个样本,涵盖 4 个不同类别,包括 7 个不同的任务。
具体任务实现举例
![[image-196.png|686x521]]

  • 1. 数学推理 (Math Reasoning)(1) 算子归纳 (Operator Induction): 从示例中推断出 ? 等视觉符号代表的数学运算(如乘法)。(2) 时钟数学 (Clock Math): 从示例中学习一个基于时钟指针位置的隐藏算术规则。
  • 2. 概念绑定 (Concept Binding)(3) 异常点检测 (Outlier Detection): 从示例中学习“找出与众不同者”的抽象概念,并应用到新的视觉场景中。 (4) CLEVR 计数 (CLEVR Count): 根据示例的指令,学习本次任务需要计数的对象属性(如“只数球体”)。
  • 3. 模式发现 (Pattern Finding)(5) 数独 (Sudoku): 从示例中学习数独游戏的规则,并解决新的数独谜题。(6) 回文数 (Palindrome Number): 从示例中识别出回文序列的模式,并补全序列。
  • 4. 新概念学习 (Novel Concept Learning)(7) 角色分类 (Character Classification): 在上下文中临时学会一个全新的面孔与一个新名字之间的对应关系。

3.3 实验

3.3.1 实验1: 性能对比

  • 目的:对比各ICL方法在TrueMICL数据集上的性能。
  • 设置
    • 测试数据集:TrueMICL数据集
    • 模型:Qwen2-VL(7B), Idefics3(8B), Phi-3.5-vision。
    • 对比方法Zero-shot:无示例,检验任务是否能凭先验知识解决。 No-image:只有文本示例,检验是否能只靠文本模仿。Random:标准的4-shot图文示例。RICES:检索与查询最相关的4-shot示例。LoRA:使用参数量相当的LoRA进行微调。
  • 结果
    • Zero-shotNo-image表现极差,证明了TrueMICL任务必须依赖图文并茂的上下文。
    • RICES相比Random提升微乎其微,说明仅仅提供更相关的示例作用不大,关键是模型要能有效利用它们。
    • DARA的性能在所有模型和几乎所有任务上都显著超过了所有基线,平均准确率提升了3-5个百分点,证明了其有效性。
      ![[image-197.png]]

3.3.2 实验2: 可视化分析,探究DARA的内部作用机制 (Figure 2, 3)

  • 目的:直观地展示DARA是否真的在“重新分配注意力”。

  • 定性分析 (Figure 2a):通过注意力热图显示,未使用DARA时,模型对示例图片的关注度很低(区域呈蓝色“冷色”);使用DARA后,这些区域变得非常明亮(红色/黄色“暖色”),证明注意力确实被转移到了视觉内容上。

  • 定量分析 (Figure 2b):通过柱状图统计,未使用DARA时,分配给图片token的注意力权重仅占28.6%;使用DARA后,该比例大幅提升至46.7%
    ![[image-198.png]]

  • 因子分析 (Figure 3):可视化DARA学习到的平衡因子值。发现不同的注意力头(原始transformer的MHA有8个注意力头)学会了放大不同示例图片的影响力(例如,Head 5特别关注Demo 4,其因子为1.32),这表明DARA学会了有选择性的、结构化的视觉增强。
    ![[image-199.png]]

3.3.3 实验3: 在标准VL数据集上的泛化测试

  • 目的:检验DARA是否会对模型在常规任务上的性能造成损害(即是否过拟合)。
  • 设置:在VQAv2, GQA等标准视觉问答数据集上进行测试。这些任务通常不需要从示例中学习新规则。
  • 结果:DARA的表现与Zero-shotRandom 4-shot等基线几乎没有差别
  • 结论:这证明DARA是一个安全的、有针对性的解决方案。它只在特定任务(如TrueMICL任务)发挥作用,不会干扰模型的泛化能力。
    ![[image-200.png]]

3.3.4 实验4: 消融研究,深入对比DARA与LoRA (Figure 5, Table 9)

  • 目的:探究DARA的参数效率及其与LoRA微调方法的关系。

  • 参数效率对比 (Figure 5):在一个任务上,DARA仅用约140个参数就达到了超越基线的性能,而LoRA需要超过10,000个参数才能达到类似的效果。这极大地凸显了DARA的轻量与高效。
    ![[image-201.png]]

  • 组合效果 (Table 9):将DARA与完全参数的LoRA 结合使用。结果显示,在LoRA基础上,额外增加一个极其轻量的DARA,仍然能带来1-2%的稳定性能提升。这证明DARA可以作为一种有益的补充,与其它方法协同工作。
    ![[image-202.png]]

3.3.5 实验5: DARA 配置的消融研究 (Figure 6)

  • 目的:探究模型在 DARA 的不同设计选择下的性能,作者改变了修改的层数和注意力头数。
  • 实验设置
    • 任务:在 Qwen2-VL 模型上进行 Operator Induction(算子归纳)任务。
    • 变量X轴:DARA 作用的 Transformer 层数(从第一层开始连续应用)。彩色曲线:在指定的每一层中,DARA 作用的注意力头数量。
  • 关键发现
    以 n 样本设置为例,DARA 引入的可训练参数总数计算为 n ×(头数)×(层数)。如图所示,在数百个参数的范围内,不同配置对最终性能的影响没有显著差异。准确率68% - 74%
  • 结论
    • 这个实验证明了论文选择仅在第一层所有注意力头应用DARA效果与效率之间的最佳平衡点
    • 暗示了对于提升MICL能力,关键在于早期的跨模态信息融合阶段。
      ![[image-204.png|0x0]]

3.3.6 实验6:TrueMICL数据集的有效性

  • 设置:在当时的顶尖闭源模型 GPT-4o 上进行测试将 TrueMICL数据集。
  • 发现
    1. 即使是 GPT-4o,在 0-shot 设置下也难以解决 TrueMICL 的大部分任务(除逻辑性较强的数独外)。
    2. 在提供 4-shot 示例后,GPT-4o 的性能大幅提升
  • 结论:这证实了 TrueMICL 要求模型有效整合和推理视觉 - 文本演示,验证了其作为多模态上下文学习基准的作用。
    * ![[image-203.png]]
http://www.dtcms.com/a/316300.html

相关文章:

  • 人工智能领域、图欧科技、IMYAI智能助手2025年1月更新月报
  • 【RabbitMQ】高级特性—消息确认详解
  • 轻量应用服务器Centos系统上安装jdk8和Jdk17教程(详细)
  • BFS 和 DFS 编程思想、框架、技巧及经典例题总结
  • 【Git学习】入门与基础
  • 达芬奇31-40
  • Java技术栈/面试题合集(8)-Redis篇
  • Python爬虫08_Requests聚焦批量爬取图片
  • 如何用分布式架构视角理解宇宙稳定性?从精细调参到微服务的类比思考
  • 微服务架构及常见微服务技术栈
  • PromQL(Prometheus 查询语言)语法详解
  • 2um 精度 + 130mm 深孔扫描:新启航激光频率梳方案重塑 3D 轮廓测量标准
  • 【拓扑序】P6286 [COCI 2016/2017 #1] Cezar|省选-
  • 前端遇到页面卡顿问题,如何排查和解决?
  • DM8日常运维命令总结(四)
  • 游戏画面总是卡顿怎么办 告别延迟畅玩游戏
  • Go语言 泛型
  • TypeScript 中的协变与逆变
  • 203.移除链表元素 707.设计链表 206.反转链表
  • Python ttkbootstrap桌面应用开发示例
  • 创建一个可以edit的graph-node-test的永久登录dashboard的token
  • vue3通过按钮实现横向滚动或鼠标滚动横坐标滚动
  • 预测性维护:数字孪生如何重塑航空航天维修与寿命管理
  • Java技术栈/面试题合集(13)-网络篇
  • 李亚鹤:河南息县:淮河金沙滩开园 再添亲水休闲文旅地
  • 在Maxscript中随机化对象变换、颜色和材质
  • 拖车式变电站:灵活电力供应的“移动堡垒”,驱动全球能源转型新引擎
  • nuxt学习笔记
  • 学术论文命名:策略、方案、方法三者的区别
  • 使用Docker Desktop部署MySQL8.4.3