多模态文档理解为什么需要布局信息?
简化版
文档语义不仅由文字决定,还由二维位置、阅读顺序、表格行列、标题层级、键值邻近和跨页关系决定。把 OCR 文本按一维顺序拼接,会丢失“金额属于哪一列”“值对应哪个字段”等结构,甚至把多栏内容串错。
文档理解应联合文字 Token、Bounding Box、页面/区域类型和视觉特征,常用 Layout-aware Encoder、VLM 或“布局检测→OCR→结构恢复→LLM”流水线。评测要覆盖 OCR、阅读顺序、表格结构、键值关系和端到端字段正确率。
详细版
page image -> layout regions -> OCR tokens + boxes
-> reading order / table graph
-> multimodal encoder or LLM
-> fields / QA / structured document
| 布局信号 | 解决的问题 |
|---|---|
| Bounding Box | Token 空间位置 |
| Region 类型 | 标题、正文、表格、页眉 |
| Reading Order | 多栏与浮动块顺序 |
| Table Row/Column | 单元格关系 |
| Page ID | 跨页结构 |
坐标需按页尺寸归一化,旋转/裁剪后同步变换;OCR 文本和视觉区域必须来自同一坐标系,否则模型会学到错误位置。
完整版教学
一、一维文本丢失什么
发票上“税额 100”靠位置建立键值关系,表格数字靠行列确定含义,多栏论文靠阅读顺序串联。
纯文本拼接只保留字符顺序,无法可靠恢复这些二维约束。
例如两栏账单左侧是“本期金额 100”,右侧是“上期金额 80”,错误阅读顺序可能拼成“本期金额 上期金额 100 80”,字符全对却绑定错误。保留 Box、区域和阅读顺序,才能让模型区分相邻、同列、同一单元格等关系。
二、布局信息有哪些
包括 Token/行/块 Bounding Box、页面大小、旋转、区域类型、层级、阅读顺序、表格网格和跨页链接。
不同任务需要不同粒度,字段抽取可能用词框,表格恢复则需要单元格与合并关系。
这些信号不是越多越好:每增加一种标注都会提高数据成本,因此应从下游错误反推最小必要布局集合。
三、坐标如何表示
常将绝对坐标归一化到固定范围,或使用相对位置:
x_norm = round(x / page_width × M)
y_norm = round(y / page_height × M)
归一化使不同尺寸页面可共享位置 Embedding,但要保存原坐标用于输出。
四、阅读顺序为何困难
多栏、侧边栏、脚注、浮动图片和页眉会让 OCR 默认顺序错误。语言模型可能把两列交叉拼接。
可先做区域检测,再按栏、块和局部行排序;复杂页面使用学习式 Reading Order 图。
五、表格为什么需要结构
相邻单元格不一定属于同一字段,合并单元格还跨行列。需要识别行、列、Span 和 Header 关系。
| 任务 | 输出 |
|---|---|
| Table Detection | 表格区域 |
| Structure Recognition | 行列/单元格 |
| Cell OCR | 单元格文字 |
| Header Linking | 数据到表头 |
最终用结构化表格或图输入下游。
六、键值关系如何建模
表单中 Key 与 Value 可能左右、上下或跨块。可用二维 Attention、关系图或候选 Pair 分类。
视觉样式如粗体、线框和颜色也能帮助区分标签与值,但不能取代文本/位置。
七、Layout-aware Encoder
将文本 Embedding、1D 位置、2D Box 和视觉特征相加/融合,通过预训练学习遮盖文本、图文匹配和布局关系。
它适合结构化抽取;生成式 VLM 则可直接问答,但输出坐标和结构稳定性需额外约束。
融合方式通常是把归一化后的 x1,y1,x2,y2 分别查表并与文本 Embedding 相加,或用二维相对偏置直接影响 Attention。前者实现简单但坐标分桶有量化误差,后者更善于表达左右/上下距离却增加计算;无论采用哪种,训练和推理的页面缩放、旋转与坐标系必须一致。
八、OCR-free 是否不需要布局
端到端 VLM 不显式调用 OCR,也仍通过视觉 Patch 的二维位置感知布局。它不是忽略布局,而是隐式识别文字与结构。
高密度小字时,分辨率/Token 预算仍是限制;传统 OCR+Layout 可能更可控。
九、多页文档怎么处理
先页级检索选择相关页,再进行高分辨率理解;跨页表格、标题延续和脚注需保留 Page ID 与链接。
直接把全部页图片塞入上下文成本高,且远距离页面关系容易被淹没。
十、OCR 错误如何传播
字符错会影响字段值,Box 错会破坏关系,阅读顺序错会改变语义。应保留 OCR 置信度与候选。
低置信关键字段可回看原图区域、使用 VLM 二次识别或转人工。
十一、数据标注包含什么
除文字,标注 Box、Region、顺序、表格结构、字段关系和文档级答案。规范需说明旋转、合并单元格与跨页情况。
合成文档可扩模板,但要混入扫描、拍照、污渍和真实版式,避免只会干净 PDF。
十二、如何评估
OCR 用 CER/WER,检测用 IoU/mAP,阅读顺序用 Pair Accuracy,表格用结构相似,字段用 Exact/F1。
end_to_end_success = correct_value AND correct_field_binding
端到端指标比各模块孤立高分更接近业务。
十三、上线如何做证据
输出字段附页码、Box 和原图 Crop,便于人工核验;坐标要映射回原始文件。
监控模板、语言、扫描质量和页数切片。财务/合同关键字段设置规则校验与人工确认。
文档布局把“有哪些字”提升为“这些字在结构中扮演什么角色”,这是表格、表单和多栏页面可理解的前提。
十四、常见误区与追问
- 误区:OCR 正确就等于文档理解正确。 键值与行列关系仍可能错。
- 误区:按坐标从上到下排序足够。 多栏和浮动块会打乱。
- 误区:OCR-free 模型不需要布局。 布局只是被隐式编码。
- 误区:全部页面一次输入最完整。 Token 成本高且证据被稀释。
- 误区:字段值正确就算成功。 绑定错误可能把值赋给错误字段。
- 追问:如何输出可审计结果? 返回页码、Box、Crop 与置信度。
- 追问:表格重点评什么? 行列/合并结构和表头绑定,不只文字。
十五、加强记忆
先记二维语义:位置、顺序、行列、层级;再记表示:Token、Box、Region、Page、视觉特征;再记流水:布局→OCR→结构→理解;再记难点:多栏、表格、键值、跨页。再记坐标:归一化与原图映射一致;再记指标:OCR、IoU、顺序、结构、字段;最后记证据:页码与 Box 支持核验。
项目实战落地
项目里怎么做的
《AI Agentic RAG高级企业知识库平台》的知识库要吃进 PDF、Word、Excel、Markdown、TXT 五种文档。教程先点出两类普通的「读文件转文本」处理不了的文档:
PDF 里的表格 文字层里是散落的字符,直接读出来行列全乱,
"GTE-3000 24个月 含主板" 会变成一串糊在一起的字
扫描件 PDF 整页是一张图片,压根没有文字层,直接读得到空字符串
解析之后的切分、向量化、检索都只处理文本,所以项目把能保留的布局信息都写成了文本,跟着片段一路往下走:
| 布局信息 | 项目怎么保留 | 带到哪里 |
|---|---|---|
| 页码 | PDF 每页文本前加 【第 N 页】 | 切分时提取成片段的 page_no;片段管理页、Agent 执行页的引用来源表格都有页码列 |
| 表格行列 | 还原成 Markdown 表格 | 进入片段正文 |
| 工作表 | Excel 每个工作表转成一张表,前面加 【工作表:名称】 | 一个文件有多个表时能区分 |
| 扫描页的文字位置 | 不保留:OCR 结果只取识别出的文字,坐标框不往下传 | —— |
| Word 表格的位置 | 不保留:段落和表格分两轮取,全部表格排在全部段落之后 | —— |
PDF 的同一页既有正文又有表格时两样都留,表格里的内容因此出现两次:文字层里一次,Markdown 表格里再一次。
为什么这样取舍
- 页码跟着片段走。 片段和引用来源都能标出内容来自原文第几页。
- 重复是刻意保留的。 文字层那份保证语义连贯,Markdown 那份保证行列对得上。
- 项目做到了哪一步要说清楚。 对照本题正文,项目保留了页码、表格行列、工作表三种布局信号;文字坐标和阅读顺序没有处理,扫描页的行序就是 OCR 返回的顺序,Word 的表格离开了原来的位置。
表格转 Markdown 的具体规则,见「RAG 如何处理表格数据?」。
面试官还会追问
- Excel 里写着公式的单元格,解析出来的是公式还是计算结果?项目怎么处理?
- 一页文本被切成好几个片段,只有第一个片段带
【第 N 页】标记,后面几个片段的页码从哪来?
学完《AI Agentic RAG高级企业知识库平台》,上面这些追问你都会迎刃而解。