页都塞给模型了,它还是答错:哈工大实测 VLM『拿着证据不用』有多离谱

💡 一句话总结:RAG 文档问答有个从没人明说的前提——「证据页进了上下文,读就是容易的部分」。哈工大这篇论文把这个前提按在地上摩擦:在检索百分之百命中的条件下,给同样的 16 页图像附一份 CPU-OCR 跑出来的文本,准确率立刻涨 13-16 个百分点。证据明明就在模型眼前,它却读不出来;把证据块单独裁出来塞给它,分数立刻回来。这不是某个模型的毛病——六个开源 VLM、三个家族,全军覆没。

导语:检索和阅读之间,藏着一条没人测的缝

评估一个视觉文档 RAG 系统,业内习惯看两个数:检索召回率 + 端到端答题准确率。这两个数之间有一条没人明说的假设链:「检索把对的页找回来 → VLM 把页读明白 → 答案自然对」。

问题在于:一道题答错了,你分不清是检索丢了页,还是读者丢了分。召回率不测后者,准确率不区分前者。于是「读」这个环节的短板,长期藏在「检索」的影子里。

哈工大的团队设计了一个简单但手术刀级精准的配对协议,把这条缝单独拎出来测。他们还顺带发布了配套基准 FoveDoc-Bench:1173 篇原生数字文档、2346 道题,每道题都标注了证据在哪一页、哪一块、原文摘录是什么——证据可追溯、可撤回、可重新呈现,这是后面所有干预实验的前提。

想自己动手试?

配对协议与主结果:同一读者、同样 16 页图像,加不加 OCR 文本记忆对比

它的思路是什么?

协议本身优雅得近乎抠门,三步:

第一步,把检索摁死在饱和状态。 用 ColQwen2 做 visual 检索取 top-16 页,在 FoveDoc-Bench 上召回率 1.000/0.998——2346 道题里 2344 道的证据页全部躺在上下文里。这样剩下的失分就全是「读」的责任了。

第二步,同一个模型考两次。 Arm A:只给 16 页图像;Arm B:同样这 16 页图像,外加一份文本记忆——从这些页里按问题词法挑 16 个文本块(每块 ≤300 字符,统一预算)。关键设计:记忆的来源就是图像臂已经拿到的那些页,什么都没加进来。所以任何提升都只能是「证据本来就在你眼前,你却没用」——这就是论文命名的 retrieval–reading gap(检索-阅读差距)。

第三步,两种文本分开测。 一种是用 RapidOCR(PP-OCR 模型)在 CPU 上从页面图像恢复的 OCR 文本——这是扫描件唯一能拿到的形态,也是最差的形态;另一种是文档自带的精确文本层——理论上限。OCR 错误会传染进 RAG,所以 OCR 的增益是最保守的估计。

效果到底怎么样?

主结果:CPU-OCR 文本白捡 13.4 / 15.7 个百分点(V-MQAR 多跳任务准确率从 0.153 涨到 0.287,近翻倍;V-NIAH 从 0.350 到 0.506);精确文本层的效果约是 OCR 的两倍。两组对比 p<10⁻²³。

这不是个别模型的怪癖。 六个开源读者、三个家族(Qwen3-VL 2B/4B/8B、Qwen2.5-VL-7B、LLaVA-OneVision-7B、Idefics3-8B),12 个「读者×任务」格子全部显著为正。更有意思的是规模趋势:同一家族内差距随参数量单调收窄——但 8B 的强视觉读者依然有 +23 个点的差距。视觉能力变强只是让病轻一点,没治好。

便宜的补丁全都无效。 双倍文本预算、联合选择器、推理模式,各挪 ≤3 个点;self-ask 任务分解甚至 −4.3;2B LoRA 微调 +6。全都远小于差距本身。

最精彩的实验:读者能读,但找不到

接着作者问:这个差距到底卡在哪一环?是读不出来,还是找不到?三个对照实验给出了本文最漂亮的发现:

  • 把 16 页的全部 OCR 文本按阅读顺序塞进去(不做任何问题相关选择):+17.9 / +22.1 分——比精心挑选的 16 块摘要还高;
  • 把证据文本块按原始像素密度裁成图贴在页面后面(不含任何文字):+12.3 / +15.2——恢复了文本增益的 87-92%;
  • 在整页图像上用红框把证据块圈出来:+0.5 / −3.0——零效果。

第三个结果尤其扎心。红框里的像素和裁剪图里的像素一模一样,但圈在整页里就是没用。结论:模型读得懂证据,但它在 16 页密集内容里找不到证据——页级检索之后,上下文窗口内部还存在一个「第二次定位问题」。把证据拎出来(无论是文本还是裁剪图),它立刻就能用。

泼冷水时间:两条硬边界

如果结论只是「OCR 一下就好」,这篇论文就平庸了。它用同样的协议划出了两条边界,把「全量 OCR」这个直觉答案直接毙掉。

边界一:证据必须是文本。 在外部基准 MMLongBench-Doc 上(证据多为图表),按证据模态分层:文本证据 +8.5 分,图表/图形证据 −4.6 分,两者差 13.1 个百分点。原因不难理解:扁平的 OCR 文本把图表的结构信息全丢了。更要命的是,这个基准里图表证据占 55%、纯文本只占 23%,两相抵消,聚合效应只剩 +0.4%。同一个干预,在这个基准 +13 分、在那个基准 +0.4 分,两个数字都是对的——聚合评测会悄悄埋掉模态边界。附带一个好消息:文本记忆让模型更敢拒答(不可答题的命中 0.029→0.086),少编了不少数字。

边界二:检索必须先工作。 作者在 FoveDoc 上人工降级检索:从检索集里撤走证据页(页预算不变,只有召回率在动)。文本记忆的增益随之单调塌缩:全召回 +12.5 → 半召回 +6.6 → 零召回 +3.0。大约四分之三的增益,是「证据页在场」买来的。剩下那点零召回残差也是同文档上下文的贡献——换一份外来文档的同型文本,效果精确归零。更糟的是检索不饱和时,错误页面的文本记忆会误导读者(MMLongBench 部分召回层记忆臂反而 −6.1)。

论文的判词值得裱起来:提取文本是「工作的检索」的放大器,不是「失效的检索」的替代品。

三个检索降级控制:撤页、泄漏控制、外来文档文本

能拿来做什么?

  • 给文档 RAG 加 OCR-then-read 阶段时,装个门控:检索质量好 + 证据以文本为主 → 开;检索不稳或证据是图表 → 别开,省下的算力干点别的。
  • 评测文档系统时按召回率和证据模态分层报——聚合数字会同时骗你和你的老板。
  • 排查「页在上下文里还答错」的 case:先试证据摘录直塞(而不是红框提示、加大预算、加推理步),一条 crop 就能定位是「读不了」还是「找不到」。
  • 别迷信「OCR-free 模型已经够强」:8B 视觉模型仍有 20+ 分差距,OCR-free 是路线选择,不是能力证明。

理性看待

这篇论文的方法论价值大于结论本身。配对协议(固定检索 + 固定读者 + 只动表示形式 + 证据可追溯可撤回)几乎可以原样移植到任何「多模态上下文利用」的研究里,FoveDoc-Bench 的证据标注体系也让干预实验第一次变得可精确控制。

结论层面,它给 2026 年的文档 AI 泼了一盆有温度的冷水:视觉模型读文档的能力确实在涨,但「拿着证据不用」这个结构性短板横跨家族、只随规模缓慢收窄;而业界流行的「全量 OCR 再喂给模型」既是过度的(图表证据上白花钱还倒扣分)也是不足的(检索烂时再好的 OCR 也是给错误页描白)。真正的答案是个工程判断题:什么时候、对哪些证据、以什么形式把像素转成符号——这恰恰是评测分层和门控该干的活。

有意思的是,把这篇和前面几篇放在一起读:EVICALC 说证据没进来,TRACE 说证据进来了身份不对,这一篇说证据进来了、身份也对、但读者不抬头看。文档智能的下一程,拼的全是这些「最后一米」。

(数据与结论均来自论文原文,解读部分为作者观点,欢迎交流。)

posted @ 2026-10-12 08:37  Lusca2026  阅读(2)  评论(0)    收藏  举报