多模态大模型解析表格任务:效果分析与实战总结
背景与动机
近期在探索多模态大模型(VLM)的落地应用场景时,除了常见的问答交互外,文档解析被视为最具潜力的方向之一。多模态大模型具备强大的 OCR 能力,且知识加工对于大模型应用至关重要。然而,现有的文档拆解 API 或项目在复杂场景下表现往往不尽如人意,特别是涉及夹杂公式的文本、复杂表格等结构。
基于此思路,我们尝试利用多模态大模型进行表格解析任务。经过一系列实测,发现虽然简单表格处理效果尚可,但在面对合并单元格及长表时,现有模型的表现存在显著瓶颈。本文旨在分享测试过程中的技术细节、结果分析以及针对该问题的思考。
核心结论摘要
- 简单表格:多模态大模型效果较好,能够准确还原内容。
- 复杂表格:对于带合并单元格的表格和长表,效果较差,错误率较高。
- 模型对比:即使是顶尖闭源模型(如 GPT-4o、Claude 3.5)在处理复杂结构时也存在瑕疵;开源模型(如 Qwen2-VL、MiniCPM、InternVL)在本地部署范围内效果提升有限。
- 格式输出:模型输出 Markdown 格式通常优于 HTML,但复杂表格的 Markdown 渲染本身存在局限性。
- 训练效果:小规模数据(如 2w 条)微调 10B 以下 VLM 对复杂表格识别能力提升不明显。
模型测试结果详解
本次测试涵盖了多个主流模型,包括闭源上限模型 GPT-4o、Claude 3.5,以及开源模型 Qwen2-VL-7B、MiniCPM2.6-V、InternVL-2.5-8B 和 Qwen2-VL-72B。
测试案例一:基础合并单元格
测试对象为一个规则表格,主要难点在于包含合并单元格。从直观感受来看,此类表格难度中等。
- 传统模型:部分传统 OCR 模型可以正确识别结构。
- GPT-4o:未能完全正确还原合并关系。
- Claude 3.5:表现最佳,成功识别了合并单元格结构。
- 7B 级别开源模型:表现混乱,无法维持表格结构。
测试案例二:交错合并与长表
此案例增加了文字密度,并引入了交错的合并单元格(如第 6、7 行的 2、4 列)。
- 结果:所有参与测试的多模态大模型均出现不同程度的结构错乱,未能正确对齐行列关系。
测试案例三:高复杂度长表
这是一个视觉上较为复杂的长表格,包含多层嵌套和密集信息。
- 结果:模型整体表现不佳,出现了严重的断章取义和结构丢失现象。
综合评估,在复杂表格和长表场景下,多模态大模型的可用水平估计仅为 20%-30%,距离生产环境要求仍有较大差距。即便进行了微调,若数据量不足或模型基座不够强,效果改善依然有限。
注意:以上结论主要针对合并单元格及长表场景。对于简单短表,多模态效果确实不错,但考虑到传统方法在此类场景下同样成熟且性价比更高,引入大模型可能并非最优解。
测试方法与配置说明
提示词工程
测试中使用了统一的系统提示词,旨在规范模型输出为 HTML 表格格式。尽管尝试过多种调优,但对最终效果的提升并不明显。
## Role
你是一位有多年经验的 OCR 表格识别专家。
## Goals
需要通过给定的图片,识别表格里的内容,并以 html 表格结果格式输出结果。
## Constrains
- 需要认识识别图片中的内容,将每个表格单元格中的内容完整的识别出来,并填入 html 表格结构中;
- 图片中的表格单元格中可能存在一些占位符需要识别出来,例如 "-"、"—"、"/" 等;
- 输出表格结构一定遵循图片中的结构,表格结构完全一致;
特别注意图片中存在合并单元格的情况,结构不要出错;
对于内容较多的图片,一定要输出完整的结果,不要断章取义,更不要随意编造;
最终输出结果需要是 html 格式的表格内容。
请仔细思考后,输出 html 表格结果。


