检索到了 ≠ 读进去了:文档 RAG 把页图预算从 1K 拉到 32K,准确率多 15 个点

0 阅读1分钟

做多模态文档 RAG 的人,大概都体会过这种憋屈:检索指标一片飘绿,top-4 页里明明白白躺着答案,模型的回答却驴唇不对马嘴。第一反应通常是折腾检索器——换模型、加 rerank、调 top-K——忙活一圈,错还是那些错。POSTECH 的这篇论文把镜头对准了被忽略的另一半:检索到的页,生成模型到底「读」进去没有。结论有点扎心:五个主流方法平均只给生成器 0.7K 到 2.7K 视觉 token,页是找对了,证据却压根没喂够。

💡 TL;DR:检索对了页只是把书递到模型面前;模型读没读进去,取决于你给它多少视觉 token、页面糊不糊、证据突不突出。在 SciEGQA 上,纯页图预算从 1K 提到 32K,准确率多 15.22 个点;固定 16K 预算再叠加证据区域的 OCR 文本,还能再涨 3.75 个点。两件事拼成一个免训练框架 LoC,在三个基准上全面超过八个既有方法。

📄 论文:Loud and Clear: Making Visual Evidence Count in Multimodal Document RAG(arXiv 2610.21318)

💻 代码:Chipmunk-g4/Loud-and-Clear

先对齐一个概念:视觉 token 是模型的「像素口粮」

视觉语言模型(VLM)没法直接「看」图,得先把图像切成小块、编码成一串 token 才能进上下文,这就是视觉 token(visual token)。一块图对应固定数量的 token,图被压得越小,token 越少,留下的细节也越少——就像把海报复印缩小,大标题还认得,行间小注已经糊成一团。

多模态文档 RAG 的标准流水线是:视觉检索器(比如 ColPali,直接把页面截图编码后做向量检索)捞出 top-K 页图,原样塞给 VLM 生成答案。页面以「图」的形式进入模型这一点很关键——表格、图表、版式、图注全在像素里,喂进去多少像素细节,模型才可能读到多少。

那问题来了:主流系统实际给了模型多少「口粮」?

体检报告:五个方法,平均只喂 0.7K–2.7K 视觉 token

作者的实验设计很干净:把检索页固定成「标准答案页」(oracle pages,真值证据所在页),生成器、提示词、解码、评测全部锁死,只动视觉输入。这样一来,任何准确率变化都只能归因于「怎么给模型看」,归因链条非常短。

先做体检:把 M3DocRAG、VDocRAG、VisRAG、SV-RAG、VisDoM 五个方法的图像处理设置统一适配到同一个处理器上,量出它们实际喂给生成器的 token 量——平均每次查询 0.72K 到 2.68K,中位数还要更低,VisRAG 和 VisDoM 有一半的查询连 700 token 都不到。水位低的来路也不神秘:这些系统大多沿用各自底座模型的默认分辨率设置,为省算力把页面压得很小,只是这个代价此前没人系统量过。然后做对照:同样的页、同样的生成器,纯页图预算从 1K 一路拉到 32K。

结果:准确率从 65.74% 涨到 80.96%,+15.22 个百分点。页没换、模型没换、提示词没换,只把图喂「大」了一点。

核心诊断:左图是把纯页图预算从 1K 拉到 32K 的增益曲线,红带是五个既有方法的平均 token 水位;右图是固定 16K 预算下「整页:裁切」混合比例扫描,25:75 时最高

右图还有第二层信息:固定 16K 预算,留 25% 给整页、75% 给真值证据裁切图,准确率 83.73%,比纯页图的 79.98% 高 3.75 个点。注意最右侧的纯裁切反而大幅回落——光给局部不给全页是要吃亏的,这个伏笔后面会回收。

两个数字摆在一起,论文的论点就立住了:生成器的视觉输入是一个被严重低估的独立瓶颈。它不在检索器里,也不在模型权重里,就藏在「你怎么把页图递过去」这一步。

🛠️ 药方只有两个词:Loud 和 Clear

怎么把这一步做好?论文把它拆成两个需求。Loud:把模型的视觉 token 容量用满——预算要给足,分辨率保真度要够高;Clear:对页内容做精修,让证据区域从背景里突出出来。两项各自做受控实验,分别选出跨基准最稳的实现,最后拼成免训练的 LoC 框架。

Loud:预算怎么花,比花多少更讲究

「给更多 token」有五种花法,作者全试了一遍:整页分辨率放大、重复喂同一页、重复喂空白页、每页给三档分辨率的多尺度视图、把页切成 2×2 四块平铺。

结论值得背下来:整页放大最稳。它在 2K–64K 全预算段赢过重复页和空白页,在所有预算上赢过平铺;多尺度视图在 SciEGQA 上更好,但在 ViDoRe-v3 上 4K 之后反输,跨基准不稳定,作者为简单统一放弃了它。

更有意思的是分离实验。整页放大同时改变了两个东西:token 数量和分辨率保真度(fidelity,缩放后保留了多少原图细节)。作者用两阶段缩放把它们拆开——先把页缩到一个「中间分辨率」,再缩到目标预算。结果两个旋钮各自独立有效:固定保真度只放大图,准确率照样涨;固定预算只提保真度,也涨。数字最有说服力:SciEGQA 上,中间分辨率 1K、最终预算 1K 时准确率 65.74%;中间分辨率压在 1K 不动、只把最终预算提到 16K——同一张图单纯放大,信息一点没变多——准确率涨到 78.31%。反过来,最终预算锁在 4K,把保真度从 1K 提到 4K,也从 75.54% 涨到 77.76%。

Loud 分析:上排是五种花钱方式的预算扫描,整页放大(蓝)与多尺度(绿)领先,平铺(粉)垫底;下排热图证明保真度(横轴)与最终预算(纵轴)各自独立提升准确率

Finding 1 一句话版:token 给多是必要的,但「怎么花」决定了这些 token 是真在看证据,还是在浪费显存。

Clear:让证据站到台前

Loud 解决「看得到」,Clear 解决「看得清」。固定 16K 预算下,作者比较了七种输入:纯页图;把选中区域外的像素涂白(Whiteout);把区域裁出来单独给(Crop);把裁切打包成一张画布(Canvas);整页加裁切(Page+Crop);只给区域 OCR 文本(Crop OCR);整页加区域 OCR(Page+Crop OCR)。

白化的增益还有个规律:选中区域在页面上占比越小,涂白带来的提升越大——干扰越少,证据越亮。作者还补了一组对照:页图一个像素不动,把区域 OCR 作为额外文本拼进去,SciEGQA 也能再涨 2.09 个点,说明 OCR 供给的不是冗余信息,而是页图里模型没读出来的那部分。排名有点反直觉,值得单独列一下:

  • 涂白就很有效:SciEGQA +2.03、ViDoRe-v3 +0.81 个点,且完全不动 token 分配——说明干扰内容确实在拖累模型;
  • 只给 OCR 文本最差:53.97%,连纯页图都远不如——纯文本丢了布局,表格行列关系全毁;
  • 最优是「整页 + 区域 OCR」:82.87% / 56.12%,两个基准上都最优或近优;
  • 重排类操作跨基准不稳定:Canvas 画布在 ViDoRe-v3 上能把与 Whiteout 的差距追回来大半(55.65 对 56.05),到 SciEGQA 上却又落在 Whiteout 后面(81.15 对 82.01)——凡是动了原版式的方案,都没能两头讨好。

为什么组合最强?论文的案例非常直观:一道统计表格题,纯页图答 26,纯 OCR 答 57,组合答 31(正确答案)。OCR 给出连续、精确的文本序列,页图保留行列布局和表头归属,缺一不可。

Clear 案例:左图涂白干扰表格后模型答对;右图纯页图答 26、纯 OCR 答 57,页图加区域 OCR 组合答对 31

再回收前面的伏笔:纯裁切为什么不行?因为裁切会丢页面上下文——标题与条目的从属关系、图注、邻近段落。RegionRAG 这类「用区域替换整页」的方案,恰恰输在这里:三个基准上,保留整页的设计全都更稳。

LoC:拼起来,零训练

最后把两个设计拼成 LoC:整页放大(Loud)+ 查询相关区域的 OCR(Clear)。巧妙的是区域怎么选——不需要任何真值标注,直接复用检索器的 token 嵌入,用 ColBERT 的 MaxSim 相似度给每个候选区域打分,挑出每页最相关的区域做 OCR,按页拼在页图后面。整个流程免训练,改的只有「怎么喂」。

📈 效果:三个基准全绿,但代价要看清

端到端对决(真实检索、生成器统一为 Qwen3.6-35B-A3B),LoC 对八个既有方法全胜。评测口径也说一句:答案判定交给一个只看问题、参考答案与预测文本的评审模型,部分正确的答案按 strict 口径记零分——对比较的所有方法用的是同一把尺。挑最关键的:对最强基线 ColQwen3(检索器、页序、生成器完全相同,归因干净),LoC 在 SciEGQA 上 69.19% → 78.07%(+8.88),ViDoRe-v3 上 46.61% → 49.70%(+3.09),MMLongBench-Doc 上 41.61% → 45.83%(+4.22),三个增益的配对 bootstrap 置信区间都不含零。

拆开看增量更有意思:只上 Loud(整页放大、不给 OCR)就能在三个基准全超基线(75.48 / 49.16 / 43.54),Clear 再往上加 2.59 / 0.54 / 2.29 个点。换更小的模型也灵:Qwen2.5-VL-7B 上,同样的改动把 SciEGQA 从 48.98% 抬到 56.44%。顺带把最近邻 RegionRAG 放回对比表里看:28.77 / 32.10 / 24.38,被 LoC 拉开一大截——同样的证据区域,「替换」整页不如「陪衬」整页,这是全文里对区域检索派最实用的一组对照。

但先别急着抄作业,看这张饱和曲线:

页缩放饱和曲线:蓝线(只 Loud)在 s=1.75 后躺平在 75% 附近,橙线(LoC)靠 OCR 持续多赚 2.59–3.76 个点;最左端预算太小,OCR 反而拖后腿

三件事值得注意:只 Loud 的收益在 s=1.75 后基本饱和(75.11% → 75.23%),继续放大就是纯烧卡;Clear 在每个尺度上都能再赚一笔,说明 OCR 提供的是页图给不了的信息;而最左端 LoC 反而低于只 Loud——预算太小时 OCR 挤占了页图 token(页图均值从 3.80K 掉到 1.48K),页面糊到 OCR 也救不回来。

怎么用到你的系统里

论文的结论可以直接翻译成一份操作清单,按性价比从高到低排:

  1. 先量再改:打印一次你的 RAG 栈「每查询实际视觉 token 用量」。如果像被审计的五个方法一样停在 1K–3K,先别动检索器,把生成端输入分辨率提上去——这可能是最便宜的一次测量,却决定后续所有优化的天花板;
  2. 放大就整页放大:别重复喂图、别加空白页、别平铺,直接提高整页分辨率,然后实测饱和点——本文是 s=1.75,你的模型和文档类型大概率不同;
  3. 饱和后再叠 OCR:用检索器嵌入给页面区域打分,选 top 区域做 OCR 拼进上下文,免训练,一下午能落地;
  4. 预算紧张时保页图:OCR 优先挤占页图 token 会翻车,页图保真度是地基;
  5. 别让裁切替换整页:要给局部就「整页 + 局部」,单纯换裁切会丢标题归属和图注。

拿论文里的例子过一遍这套逻辑(正是下图这个 ICLR 日程表场景):问「Day 2 的海报展几点开始」,预算低时日程表里 Posters 那一行糊成一团——证据明明在页里,模型读不到;整页放大后这一行清晰可读(Loud);再把 Day 2 表格区域做 OCR 拼进上下文,答案 16:00 直接以文本形式摆到模型眼前(Clear)。页面从头到尾没换过,变的只是呈现方式。

论文 Figure 1:左侧现状是低预算导致证据被糊掉,中间 Loud 用高预算高保真保住证据,右侧 Clear 用内容精修让选中区域突出

反过来说,如果你的生成端输入分辨率本来就拉满、页图 token 已经在五位数,这篇论文的增量对你有限——「先量再改」这四个字,本身就是清单里最重要的一条。

🧊 泼冷水时间

方法是真有效,但有四盆冷水得泼。

第一盆:这是拿算力换准确率。 LoC 默认配置把视觉 token 拉到基线约 5.12 倍,附录延迟表显示:只 Loud 从 s=1.75 到 3.0,准确率 75.11% → 75.23%,生成段中位延迟却从 121.65 秒涨到 745.66 秒,P95 破千秒——十二分钟等一个答案,多数在线系统扛不住。真正划算的区间在 s=1.5 到 2.25 之间。

第二盆:「0.7K–2.7K」的审计口径偏严。 五个方法是被「改编」到统一处理器下测量的,论文自己承认这还原不了原生设置里的学习式压缩器(比如 VisRAG 的 resampler 被换成了面积约束)。这个水位说明的是「这些系统的默认配置很保守」,不完全是「这些系统天生不行」。

第三盆:Clear 的增益小,还看域吃饭。 ViDoRe-v3 上 +0.54 个点的置信区间含零;分领域看 HR 是 -3.77、金融是 -1.94,部分场景 OCR 是净负收益。它还依赖文档解析与 OCR 质量,语料里扫描件一多,得先掂量掂量。

第四盆:评测面窄。 只测英文文档、三个 Qwen 系生成器、单一评审模型,strict 口径下部分正确的答案记 0 分。换语言、换模型家族、换评测协议,数字未必能平移。另外较真一句:SciEGQA 上多尺度视图其实全程领先(32K 时 81.82%),作者以跨基准一致为由放弃它——这个选择合理,但意味着「整页放大最优」是实用主义结论,不是普适真理。

💡 理性看待

把视角拉高一点,这篇论文真正的贡献不是 LoC 这个框架,而是那个被量化的盲区:「检索到了」和「读进去了」之间,隔着一条可测量的鸿沟。十五个点的差距说明,过去我们盯着检索器卷命中率的时候,生成端有个水龙头一直只开了一半。

对做多模态 RAG 的工程团队,它把「怎么给模型看」提升到与「检索什么」同级的优化旋钮:便宜的一半(整页放大)先拧到位,贵的一半(区域 OCR)看预算再上。对做 VLM 的人,它给视觉 token 的缩放研究补了一个真实任务侧的注脚——token 数量与保真度是两个都能独立兑现准确率的轴。

至于标题里那个反差,值得贴在工位上:检索器的工作在页被选出那一刻就结束了;剩下的路,得看你递过去的像素够不够响、够不够亮。