多图文档RAG先压成块再按问题展开,7B平均准确率57.5%

Doc-REFRAG: Rethinking Multimodal Document Retrieval-Augmented Generation

Ruofan Hu, Shengyang Xu, Minjie Hong, Xiaoda Yang, Sashuai Zhou, Ke Lei, Tao Jin, Zhou Zhao

EMNLP 2026 Main

cs.IR, cs.CV

2026-08-31

浙大把视觉token先压成粗块,再用轻量RL选择器按问题展开相关块。六项基准平均准确率57.5%,高于Qwen3-VL的51.3%,端到端6.1秒。

这篇在解决什么

多模态RAG真正难的不是单页PDF,是检索回来一堆来源混杂、互相打架的页面。现有文档模型多在「同一份文件、页与页连贯」上训练,一换成检索噪声就掉点。视觉token还按页堆,20张图就能把prefill拖垮。

压缩路线也走偏了。无论是按注意力剪token,还是按视觉复杂度留细节,默认都是「看起来密的地方更重要」。RAG里密的区块经常跟问题无关。浙大这条EMNLP 2026工作把压缩改成「先全部变粗,再按问题把有用的块还原」。

方法

先造数据。DocLongRAG从Doc-750K和OpenDocVQA筛掉参数可答、要外搜、不可答和伦理风险样本,再给每张相关图插入排序第4名往后的困难负例,负例数在20到30之间均匀采样。人工抽查发现检索前两名平均仍有2.47张其实相关,所以前三名直接丢掉以免标成负例。最终34.3万问答、330万页、每问平均37.4张图。相关页放在负例前面,消融显示这个顺序有用。

模型挂在DocOwl2上。编码器每张图出324个token,按块大小k切成不重叠块,两层MLP把每块收成一个嵌入。轻量两层Transformer选择器按问题决定展开哪些块,还原成原来的k个token。推理时展开比例固定0.2,训练时在0.1到0.3之间采样。

训练分三阶段。单图重建:冻解码器,在DocStruct4M上做全文解析和区域定位,让块嵌入别丢字。多图持续预训练:从OpenDocVQA单图、到Doc-750K多页、再到DocLongRAG噪声检索,展开比例从20%收到10%,并随机点亮无关块。选择器用GRPO,奖励是冻住的解码器答题对不对。伪标签来自ColQwen的问题-补丁相似度。整套在8张RTX 3090上跑。

结果

评测用Jina-Embeddings-V4从各基准检索top-20,Recall@20平均93.4%,检索召回不是瓶颈。默认k=3,每图约150个视觉token。

方法平均准确率每图tokenTTFT
Qwen3-VL 8B51.3%5125.91s
DocOwl2 7B48.9%3243.94s
Docopilot 8B50.9%23041.81s
Doc-REFRAG 7B57.5%1502.57s

分项:ChartQA 61.2、SlideVQA 60.8、InfoVQA 58.7、DUDE 53.2、ViDoRe 57.3、MMDocIR 54.9。相对压缩模型,同等token预算下准确率高出约18个百分点。

选择器本身:随机38.8%,困惑度43.7%,ColQwen 53.6%但要9.3秒,RL选择器57.5%、3.7秒。端到端管道:直接喂top-5给Qwen3-VL是46.6%/4.2s,MonoQwen2把20重排到5是53.2%/15.4s,Doc-REFRAG吃满top-20是57.5%/6.1s。

去掉单图重建,平均准确率从55.1%掉到19.7%;打乱课程学习掉到24.2%;去掉DocLongRAG掉到48.9%。把DocLongRAG拿去微调InternVL3.5、MiniCPM-V-2.6、DocOwl2,分别再涨3.9、4.3、3.9个百分点。

为什么重要

多图文档RAG的效率问题,不是把token再剪稀一点,是让压缩听问题的话。块嵌入在合成A4密文上,4000字符以内ANLS仍高于95%,跟DeepSeek-OCR(256 token)和DocOwl2(324 token)一个量级,说明变粗不等于丢字。

对要落地的人,6.1秒吃20张图、准确率高于15.4秒的重排管道,是一个能换的权衡。数据也独立值钱:三个外部模型微调都涨点。这是渐进的系统工作,骨架仍是DocOwl2,贡献在噪声数据和按问题展开。

局限与存疑

k在训练时写死,推理不能按页密度改。超过4000字符ANLS大约掉5个点。换k要另训一个选择器,再加一层路由,会吃掉速度优势。

选择器只拿答题对错当奖励,没有块级归因。剩余错误里64%落在密文本和复杂版式。DocLongRAG的训练噪声是构造的,评测才用真检索;语料只有英文。CJK每补丁信息更密,可能要更小的k。大模型只报单次训练,符合这个子领域惯例,仍缺误差条。

术语

原文与代码

社区讨论

相关论文

全部论文解读