跳转至

URaG: Unified Retrieval and Generation in Multimodal LLMs for Efficient Long Document Understanding

会议: AAAI 2026
arXiv: 2511.10552
代码: https://github.com/shi-yx/URaG
领域: 多模态大模型 / 文档理解
关键词: 长文档理解, 统一检索-生成, 跨模态检索, Transformer层注意力分析, Token效率

一句话总结

URaG 发现 MLLM 处理长文档时存在类人的"粗到细"推理模式(浅层注意力均匀分散、深层集中于证据页),基于此洞察在第 6 层插入轻量跨模态检索模块(仅占参数 0.05%),选取 Top-5 相关页面丢弃其余内容,实现 SOTA 性能的同时减少 44-56% 计算量。

研究背景与动机

  1. 领域现状:MLLM 在单页文档上表现出色,但多页长文档理解面临两大挑战——无关内容的信息干扰和 Transformer 平方复杂度带来的计算开销。
  2. 现有痛点:两类现有方案各有缺陷——(1) Token 压缩方法(如 mPLUG-DocOwl2)均匀压缩所有页面的视觉 Token,不可避免地损失细粒度视觉细节;(2) 外部检索器方法(如 CREAM、SV-RAG)引入独立检索模块增加系统复杂性,且检索器与 MLLM 无法端到端优化,容易出现"协调失败和错误传播"。
  3. 核心矛盾:长文档中仅少数页面包含答案证据,但现有方法要么压缩所有页面(损失精度),要么需要额外检索系统(增加复杂度)。
  4. 本文要解决什么? 如何在单一 MLLM 内部实现高效的证据页检索和答案生成的统一?
  5. 切入角度:系统分析发现 MLLM 内部已经具有类人的"粗到细"推理模式——浅层均匀浏览全局,中间层逐步聚焦,深层集中于证据页。这意味着浅层的 hidden states 已经足够区分相关/无关页面,可以在此处插入轻量检索模块。
  6. 核心 idea 一句话:将 MLLM 浅层变成检索器,筛选证据页后让深层只处理相关内容,统一检索与生成。

方法详解

整体框架

单一 MLLM 处理长文档:所有页面通过视觉编码器和投射层获得视觉 Token→与文本 query 拼接输入 LLM→在第 6 层插入跨模态检索模块→检索 Top-5 相关页面→丢弃其余页面的 hidden states→后续层仅处理保留的内容→生成答案。

关键设计

  1. 核心分析洞察——粗到细推理模式:
  2. 做什么:系统分析 MLLM 各层的注意力分布和嵌入检索能力
  3. 核心发现:(1) 浅层(1-3层)注意力熵高、检索准确率低——均匀浏览;(2) 中间层(3-20层)熵递减、检索准确率递增——逐步聚焦;(3) 深层(20-34层)熵低、检索准确率高——集中在证据页;(4) 最后 2 层熵又上升——类似人类回看全文确认
  4. 另一个关键发现:基于嵌入的检索比基于注意力的检索在更浅层就达到高准确率(约第 12 层),且更稳定——因此采用嵌入检索而非注意力检索

  5. 跨模态检索模块:

  6. 做什么:在第 6 层提取 hidden states,计算 query 与各页面的相关性,选取 Top-5
  7. 核心思路:两个线性层+GELU 将 \(H \in \mathbb{R}^{L \times D}\) 降维到 \(H' \in \mathbb{R}^{L \times D'}\)(D'=512),然后 L2 归一化。提取 query 文本特征 \(E_q\) 和各页视觉特征 \(E_v^{(p)}\),用 ColBERT 风格的 contextualized late interaction 计算相似度:\(s_{q,v}^{(p)} = \sum_i \max_j E_{q_i} \cdot E_{v_j}^{(p)T}\)
  8. 设计动机:仅需 2 个线性层(2.5-4M 参数,占总模型 0.05-0.07%),极其轻量;Late interaction 比全局池化保留了更多 Token 级别的匹配信息

  9. 两阶段训练策略:

  10. 做什么:先预训练检索模块,再联合微调 LLM
  11. Stage 1:冻结 MLLM 所有参数,仅训练检索模块,优化 ColBERT 检索损失 \(\mathcal{L}_{\text{retrieval}}\)
  12. Stage 2:添加 LoRA(rank=32)到 LLM 和检索模块,联合优化 \(\mathcal{L}_{\text{total}} = \mathcal{L}_{\text{retrieval}} + \mathcal{L}_{\text{generation}}\)。训练时保留 GT 证据页+检索得分最高的页面(总计不超过 5 页)
  13. 设计动机:两阶段确保检索模块先适配任务,再与生成端协调优化

实验关键数据

主实验 — 文档理解

方法 参数 MPDocVQA SlideVQA MMLongBench F1
Qwen2.5-VL-3B 3B 84.4 59.1 24.1
Qwen2.5-VL-7B 7B 87.2 66.4 25.1
URaG-3B 3B 86.0 63.8 28.7
URaG-7B 7B 88.2 72.1 32.8

检索性能

方法 SlideVQA Top1/Top5 MMLongBench Top1/Top5
ColPali (3B) 90.2/98.2 60.3/80.2
SV-RAG (4B) 90.6/98.8 64.8/84.8
URaG-7B 92.9/99.0 68.3/86.0

消融实验

配置 SlideVQA MMLongBench F1 说明
Layer 2 63.7 31.0 太浅,检索不准
Layer 6 (默认) 63.8 31.1 最佳平衡
Layer 12 62.9 31.0 检索更准但深层推理空间不足
Layer 18 62.3 30.6 检索模块太深反而降低

关键发现

  • URaG 在 SlideVQA 上比 Qwen2.5-VL-7B 提升 5.7 分(66.4→72.1),MMLongBench F1 提升 7.7 分(25.1→32.8)——长文档场景收益最显著
  • 仅预训练检索模块(不微调 LLM)就已超过完全微调的 baseline(62.1 vs 61.9 on SlideVQA),说明检索本身的贡献大
  • 计算效率:100 页文档时减少 55.8% FLOPs,推理时间减少 41.6%,显存减少 51.3%
  • 检索模块仅占总参数的 0.05-0.07%,几乎可忽略
  • 第 6 层是最佳插入位置——Top5 检索准确率已达 98.9%,且保留最多深层推理空间

亮点与洞察

  • 粗到细推理模式的发现:MLLM 各层注意力从均匀到集中的渐变模式,为"在哪一层插入什么操作"提供了理论依据——这个分析方法可以推广到其他需要在 Transformer 中间层做操作的场景
  • 极致轻量设计:2 个线性层就能把 MLLM 浅层变成高效检索器,参数量只有 0.05%——证明 MLLM 的 hidden states 已经编码了足够的跨模态语义
  • 统一架构消除系统复杂性:不需要额外的检索 pipeline,端到端可优化,部署时只是一个模型

局限性 / 可改进方向

  • 固定 Top-5 检索策略不够灵活——证据分散在>5 页时可能遗漏,集中在 1 页时引入冗余
  • 训练数据仅 3 个数据集,泛化性可能受限——LongDocURL 上微调后反而退化
  • 跨页面推理(multi-page evidence)性能仍弱于单页——检索更擅长定位单点证据
  • 论文只在 Qwen2.5-VL 系列上验证,InternVL2.5 实验只跑了一个配置
  • 检索模块丢弃了非相关页的 hidden states,如果检索出错则不可恢复

相关工作与启发

  • vs SV-RAG: SV-RAG 用 MLLM 最后一层 hidden states 做检索(需要两次前向传播),URaG 在第 6 层中间截断只需一次——效率更高
  • vs mPLUG-DocOwl2: 均匀压缩 vs 选择性保留——URaG 对保留页面不做压缩,保留了完整视觉细节
  • vs CREAM: CREAM 用复杂的多轮检索+LLM重排序pipeline,URaG 用 2 个线性层在模型内部完成——简洁得多
  • 启发:这种"在 Transformer 中间层做决策"的思路可以推广——例如在中间层做 Token 剪枝、动态路由、或早停判断

评分

  • 新颖性: ⭐⭐⭐⭐⭐ 粗到细推理模式的发现+将浅层变成检索器的 idea 非常优雅
  • 实验充分度: ⭐⭐⭐⭐⭐ 5个benchmark、检索+生成双维度评估、效率分析、消融、可视化
  • 写作质量: ⭐⭐⭐⭐⭐ 从分析洞察到方法设计的逻辑链极其清晰
  • 价值: ⭐⭐⭐⭐⭐ 统一检索-生成的范式对长文档理解有重要意义,0.05% 参数开销非常实用