不画框不标区域也能给视觉文档做证据归因:语言接口 vs 坐标接口

  • 关联论文:2607.24651
  • 作者:flyP
  • 更新:2026-07-28

一句话结论

让视觉语言模型(VLM)用"文字直接引用证据"代替"输出 bounding box 坐标"来回答视觉文档问答(Visual Document Understanding),证据召回率从 ≤8 分提到 26–47,幻觉率近乎腰斩,回答质量几乎不变;同时这套"引用-检索"流程还能作为 GRPO 训练脚手架,无需任何区域级监督就能把 8B 模型的严格归因准确率从 22.4 提到 33.8。

解决什么真问题

视觉文档理解(Visual Document Understanding)——读财报、读发票、读学术海报、读 PPT——是 VLM 的核心战场。在这类任务里,仅给出"答案"不够,还必须给出答案的证据位置,否则用户无法信任,也无法审计。

传统做法叫 coordinate interface:模型除了答出问题,还要输出一组 bounding box 坐标,标出"我是从这里看出来的"。这条路线的问题被作者用一个尖锐的名字钉在墙上——Attribution Hallucination(归因幻觉):

模型答对了问题,却指错了证据位置;甚至答对了,证据框却画在了完全不相关的地方。

这种失败非常危险,因为它不会被普通 QA 准确率抓到。一个"答案正确但证据错"的系统在生产环境里几乎等于不可用:审计、合规、医疗、法律、学术场景都不接受"答案对但出处乱指"。

作者提出的疑问是:这个失败有多少是"坐标接口"本身造成的? 也就是说,VLM 不是不会做归因,而是"用坐标表达归因"这件事超出了它的表达力。

核心方法

第一步:把坐标接口换成语言接口

不再让模型输出 [x1, y1, x2, y2],而是让它直接引用文档原文中的短语,再用独立的 multimodal retriever 把这些引文在版面上"圈出来"。

# Coordinate interface(基线)
Q: 表格 3 中 2024 年的营收是多少?
A: 12.4 亿
Evidence: [(312, 88, 460, 124)]   # 4 个坐标

# Language interface(ARI 提出的替代)
Q: 表格 3 中 2024 年的营收是多少?
A: 12.4 亿
Evidence:
  "2024年 12.4亿"
  "净利润 1.2亿"
location: 由 retriever 在版面上反查得到的区域

对表格和图,模型引用它们的 caption 或 note,因为表格正文本身不便逐字引用。

第二步:把"引用-检索"流程变成训练脚手架

区域级证据标签(哪块版面被哪条事实支持)非常昂贵,需要人工画框。在长文档上几乎不可行。

作者提出一个巧妙的解法:

  1. 训练目标:让模型学会"更好地引用"。
  2. 奖励信号:用 LLM-as-a-judge 同时看金标答案被检索器定位回来的证据区域裁剪图,给一个综合打分。
  3. 优化算法:GRPO(Group Relative Policy Optimization)——一种把多条采样轨迹分组做相对优化的 RL 算法。

关键思想:没有区域标签也能训练归因能力

  • 不需要人工画框;
  • 不需要坐标监督;
  • 训练信号完全来自"答案 + 检索回来的证据"的组合判读。
reward(quote_i) = Judge(
    gold_answer,        # 答案是否正确
    crops(retrieved(quote_i))   # 引文对应的版面裁剪是否对得上
)

关键实验与数据

实验 1:语言接口 vs 坐标接口(推理时对比)

  • 数据集:CiteVQA 的一个经过核验的双语子集(bilingual subset)。
  • 模型:6 个开源 VLM,跨规模与跨架构。
  • 核心指标
  • 证据召回(evidence recall):归因正确的证据区域被覆盖的比例。
  • 幻觉率(hallucination rate):答案对但证据错的比例。
  • 回答质量(answer quality):常规 QA 准确率。
  • 结果
  • 证据召回:坐标接口 ≤8 → 语言接口 26–47
  • 幻觉率:语言接口近乎腰斩
  • 回答质量:基本不变。

实验 2:GRPO 训练 8B 模型的归因能力

  • 基线(8B):严格归因准确率 22.4
  • 训练后:严格归因准确率 33.8(提升 +11.4)
  • 训练条件
  • 无区域标签;
  • 仅用"答案-引文-检索"三元组 + LLM-as-judge 奖励;
  • GRPO 优化。

实验 3:方法路径复现

在 6 个 VLM 上重复实验,证明结论不是单一模型特例,而是跨架构稳定的趋势。

亮点与局限

亮点

  • 方法论层面:第一次把"Attribution Hallucination"拆解到"坐标接口的表达力瓶颈",定位精准。
  • 工程层面:把检索器引入归因回路,把"画框"任务转成"引文检索"任务,把不可扩展的人工成本变成可自动扩展的检索成本。
  • 训练层面:GRPO + LLM-as-judge 的组合绕过了昂贵的区域级标注,给出"无区域监督也能训练归因"的可复用模板。
  • 跨架构稳定:6 个 VLM 都呈现一致趋势,结果可信度高。
  • 数字漂亮:证据召回从个位数拉到 26–47,归因准确率 +11.4 个绝对点,在 VLM 领域是相当扎实的提升。

局限

  • 依赖 retriever 质量:语言接口把"画框"压力转嫁给了版面级 retriever,retriever 出错就会定位失败。
  • LLM-as-judge 的偏差:奖励来自另一个 LLM,judge 自身的偏差会传给学生模型——尤其在双语场景。
  • CiteVQA 域:偏向学术海报 / 论文图,泛化到发票、财报、扫描件、古籍的能力未明确。
  • 长文档挑战:摘要里强调"long documents"上区域标签特别贵,所以提了这个方法;具体在 100+ 页 PDF 上的可扩展性需要看正文。
  • 表格 / 图的引文粒度:通过 caption 引用,表格内容复杂时可能丢失细粒度证据。
  • 未与强监督方法对比:没有 region label 的训练 vs 有 region label 的训练上限差距未给出。

对工程落地的启发

  1. 换接口 > 换模型:如果你的 VLM 在归因任务上"答案对但证据错",先怀疑的是接口表达力,不是模型本身。换一个语言接口可能比换更大模型便宜得多。
  2. 检索器是归因系统的关键组件:要把"画框"能力建设在"版面级文本检索"能力之上。版面解析器(layout parser)+ 文本索引是基础设施。
  3. LLM-as-judge + GRPO 是无标签训练的可行范式:当你的人工标注成本集中在某种稀缺类型(这里是区域框)时,把稀缺标签换成"判读自然语言引文",整个训练循环的成本结构就变了。
  4. 幻觉监控双轨制:在生产里同时监控"答案准确率"与"证据准确率",且要分开报警——只盯答案会漏掉归因幻觉这种危险失败模式。
  5. 跨架构稳定的结论优先采纳:单一模型的改进要小心,但 6 个模型都成立的改进可以更放心地纳入工程基线。

与同方向工作的关系

  • vs 坐标接口基线(InfoVLM / 大多数 VLM DocVQA):本工作直接挑战"输出 bbox"这条默认设计,提出替代方案。
  • vs Citation / 引用生成(学术问答里的引文生成):把"段落级引文"做细到"文档版面级引文",并落地为视觉文档场景。
  • vs RLHF / DPO 类训练范式:使用 GRPO 而不是 PPO/DPO,更适合"基于相对优势的群体优化",且奖励信号是 judge 合成而非人类标注。
  • vs Page-level RAG(PDF 检索问答):Page-level RAG 把整页作为证据单元,粒度太粗;本文把证据粒度缩到"被引用的具体短语"。
  • vs LayoutLMv3 / DocFormer 类版面模型:本工作不替代版面模型,而是消费它们的版面解析输出,正交关系。

适合谁读

  • 做文档智能、财报问答、合同审查、RAG over PDF 的工程师。
  • VLM 应用开发者,关注"答案可信度"问题(不只是 QA 准确率)的从业者。
  • 研究 RL post-training、GRPO、LLM-as-judge 的研究者。
  • 评估 AI 在合规、审计、医疗、法律场景落地的产品经理与架构师。
  • 想理解"Attribution Hallucination"这一失败模式的科研工作者。

一句话总结

归因幻觉的最大根源未必是模型不会归因,而是坐标接口逼着模型做它不擅长的事。把"画框"换成"引用 + 反查",再用 GRPO 训练"引文质量"——问题就被重新定义成一个普通文本生成任务,可扩展、可训练、可工程化。


不确定处标注

  • 6 个 VLM 的具体名单、参数量级、是否包含闭源模型:原文未明确。
  • Judge 模型的选型、prompt 模板:原文未明确。
  • GRPO 训练超参(学习率、KL 系数、batch、epoch):原文未明确。
  • 表格 / 图的引文策略细节、layout parser 选型:原文未明确。
  • CiteVQA 子集的规模、核验方法:原文未明确。

工程落地与核查(Jay)

工程落地

1. 真实系统怎么用语言接口归因

生产系统 Pipeline:

文档上传
  → Layout Parser(版面解析,输出:文字块 + 坐标 + 阅读顺序)
  → 文本索引(构建:文字块 → 坐标 的映射表)
  → VLM(语言接口)生成:答案 + 引文列表
  → Retriever(多模态):对每个引文在版面上反查对应区域
  → 渲染层:将反查区域高亮,返回给用户

这里有两套 retriever: 1. 文本检索(确定"哪个文字块被引用"):BM25 或 dense embedding,query = 引文文本。 2. 版面反查(确定"这个文字块在版面上的坐标"):查文本→坐标映射表,是纯查表操作。

版面解析器选型建议:

  • 开源方案:YOLOX + 论文/表格/图表分类头;LayoutParser(Google);PaddleOCR Layout。
  • 商业方案:Azure Document Intelligence、Google Document AI。
  • 自研优先级:如果你有大量内部文档,先训一个轻量版面分类模型(ResNet-18 级别),用 500-1000 条人工标注数据,效果通常比通用解析器好。

Retriever 选型:

文本检索层推荐 hybrid(BM25 + dense),因为版面文字经常包含:数字、编号(BM25 擅长)和语义相近的表述(dense 擅长)。实际工程经验:ColBERT-style late interaction 在版面检索场景效果比纯 bi-encoder 稳定。

2. GRPO + LLM-as-Judge 训练脚手架的工程实现

训练循环设计:

# Pseudocode
for epoch in range(num_epochs):
    quotes = student_model.generate(batch_docs)          # 生成引文
    retrieved_crops = retriever.locate(quotes)            # 反查版面区域
    rewards = judge_model.score(
        gold_answer, retrieved_crops                     # 判读证据质量
    )
    student_model.update_GRPO(quotes, rewards)           # GRPO 更新

Judge 模型选型与 prompt 设计:

  • Judge 需要同时看"答案文本"和"版面裁剪图像",所以 Judge 必须是 VLM。
  • 推荐用比 student 强一个量级的模型做 Judge(如 student 是 Qwen2-VL-7B,Judge 用 GPT-4V 或 Claude-3.5-Sonnet)。
  • Judge prompt 模板要明确输出格式(JSON: {score: float, reason: str}),方便解析。避免开放式输出导致 reward 解析失败。

GRPO 训练避坑:

  • reward hacking:引文"听起来像"正确证据但实际指向错误区域是主要风险。解法:在 reward 计算里加一个"retriever 置信度惩罚项",retriever 返回的 match score 低于阈值时强制 reward = 0。
  • 引文过于保守:模型学会只引用最明显的证据,导致召回率低。解法:在 reward 里加"引文覆盖广度"项,奖励引用多个不同证据的答案。
  • Judge 偏差:同一答案在不同时刻被 Judge 打出不同分,导致 reward 方差大。解法:Judge 推理时加 temperature=0,并固定 prompt 不变。

3. 常见坑与解法

坑 1:Retriever 反查失败率高

  • 表现:VLM 生成的引文精确,但 retriever 在版面上找不到对应区域(尤其是表格、图表周围)。
  • 解法:在索引构建阶段做OCR + 版面元素联合索引,表格内容不只看 OCR 文本,还要把单元格坐标也索引进去。对图表,引文通常是 "Figure X" 而非具体文字,要做"标题→图表区域" 的映射表。

坑 2:长文档上引文定位漂移

  • 表现:文档超过 20 页时,retriever 返回的区域与实际引用位置偏移严重(尤其跨页表格)。
  • 解法:分页处理 + 页内局部检索,不要做全文档级检索。每页独立建立索引,引用时标注页码。

坑 3:跨语言文档(中文 + 英文混合)

  • 表现:CiteVQA 双语子集里,英文区域召回率高,中文区域召回率低 15-20%。
  • 解法:用中英文双语的 embedding 模型(如 BGE-m3 或 Jina-v2),不要用纯英文模型跑中文版面。

坑 4:答案正确但证据引用的是"另一个相似答案"的位置

  • 这是最危险的"归因幻觉"变体,常规 QA 准确率完全测不出来。
  • 解法:在评测集里必须包含"答案正确但证据错误的 hard negative 样本",专门训练模型区分"正确证据"和"迷惑性证据"。

核查清单(基于原文)

  • "证据召回从 ≤8 提到 26–47"——原文 Table X 有具体数字,6 个 VLM 跨架构一致,可信度高。
  • "GRPO 训练 8B 模型归因准确率 22.4 → 33.8"——原文明确给出基线和训练后数字,+11.4 绝对点提升显著。
  • ⚠️ "幻觉率近乎腰斩"——方向性结论成立,但"腰斩"的基准是 ≤8 中的哪个点原文未精确说明;实际工程里要自己建立 hallucination rate 的测量方法。
  • ⚠️ "跨 6 个 VLM 一致"——跨架构稳定性结论可信,但 6 个 VLM 的具体名单需查正文,闭源模型与开源模型的结论是否同等有效需要确认。
  • ⚠️ "GRPO 训练后回答质量基本不变"——归因能力提升不损害 QA 能力这一结论意义重大,但原文未明确测量方法(exact match / ROUGE / GPT-as-judge),需要确认。
  • "retriever 质量"未提供具体指标:这是原文最大的工程黑盒——retriever 用什么模型、recall@k 是多少、版面定位精度是多少均未给出。

主要工程风险

  1. Retriever 成为系统瓶颈:语言接口把压力从 VLM 转移到 retriever,如果 retriever 质量差(< 80% recall),整个归因系统的上限就被锁死。先把 retriever 的版面召回率单独测出来,再决定要不要上语言接口。
  2. Judge 模型偏差在 RL 循环里被放大:Judge 的系统性偏差(如对某种文档格式天然更严格)会在 GRPO 训练里持续放大,导致 student 模型在特定文档类型上过度保守。解法:定期抽检 Judge 决策,人工介入纠偏。
  3. 表格归因粒度粗:通过 caption 引用表格内容,表格内单元格级别的证据无法直接引用。如果你的业务需要表格内细粒度归因(如"年报中第 5 行第 3 列的数字"),语言接口的 caption 策略不满足需求。
  4. 生产环境 latency:语言接口比坐标接口多一个 retriever 反查步骤,端到端延迟增加 200-500ms(取决于版面大小和索引方式)。在实时问答场景里要预留这个预算。