
💡 一句话总结:在真实公共部门成绩单上,开源零样本结构化抽取远未到可自动化水平;决定成败的不只是模型大小,OCR 是否保留行分组和表格结构同样关键。
导语:演示里的表格总能对齐,真实成绩单不配合
做文档抽取原型时,表格通常很配合:PDF 清晰、列名规整、每行课程、成绩和学分都乖乖待在自己的单元格里。
真实申请材料不是这样。同一批成绩单来自不同学校,混合标题、校徽、自由文本、非统一表格、多语言记录和不同成绩制式。你要输出的不是一个答案,而是严格 schema 下的整行记录。
这篇论文的场景更严肃:德国 Data Science 硕士申请的公共部门流程。错误抽取会影响申请评估与行政决策,也因此受 EU AI Act 高风险要求约束。开源模型有成本和数据控制优势,但先要回答一个朴素问题:开箱即用到底有多可靠?
想自己动手试?
- 📄 论文:arXiv 2608.18289
这篇论文到底想解决什么问题?
论文要测的是端到端结构化抽取:从异构成绩单 PDF 到固定四列表格,输出 academic field、course name、grade、awarded credits,而不是只测 OCR 字符质量或 LLM 单步抽取。
数据规模是 100 份真实成绩单、952 行人工标注课程记录。语言分布也很现实:94 份英文、3 份英土双语、2 份德文、1 份英俄混合。
图说:同一页混合标题、校徽、自由文本和表格,模型必须同时完成识别、版面理解和字段绑定。
实验覆盖 35 种配置:30 种 OCR + Qwen3 LLM pipeline,以及 5 种 VLM-only 方案。OCR 引擎包括 Pytesseract、PP-OCRv5、PP-StructureV3、MinerU、EasyOCR、docTR;LLM 覆盖 Qwen3 0.6B 到 235B;VLM 包括 LLaVA、Ministral-3、Gemma3、Qwen2.5-VL、Qwen3-VL。全部零样本,不做微调。
评估采用行级集合匹配。四字段串联成一个 token,lower-case 后做 exact string match,再用预测集合与 ground truth 集合的交集计算 Precision、Recall、F1。F1 越高越好;一行里课程、成绩或学分错一个字段,整行就不算 true positive。
图说:PDF 先走 OCR 或直接进 VLM,再按同一 schema 输出四列表格,最后用行级集合指标评估。
这个指标很严格,但符合行政视角:一条近似正确的记录,仍可能造成错误决策。它同时惩罚漏行、幻觉行和字段错位。
它的思路是什么?
OCR + LLM 路线的核心变量是中介表示。不同 OCR 引擎的差异不只是字符识别率,还包括表格是否变成 HTML、同一水平行的单元格是否保持一行。
- 🧱 结构化输出:MinerU 与 PP-StructureV3 输出结构化 HTML,显式保留 table、tr、td 等结构。
- 🧾 非结构化块:docTR、EasyOCR、PPOCRv5 多为非结构化块或手工 tab;Pytesseract 也偏非结构化。
- 📐 schema 约束:LLM 根据 Pydantic schema 抽四列,解析失败或 schema invalid 都按错误输出处理。
图说:四字段串联成一个行 token 后做集合匹配,使字段错位不会被部分正确的文本掩盖。
为什么 HTML 这么重要?因为 LLM 能利用 <table>/<tr>/<td> 绑定字段,却很难从被切碎的文本块里恢复原始行列关系。字符没错但行分组错了,下游仍然会错。
VLM-only 路线则直接输入页面图像,让模型同时完成视觉识别、表格理解和字段抽取,再通过 Ollama format API 生成 Pydantic 结构。理论上它绕过了 OCR 中介,实际上输出稳定性差异很大。
效果到底怎么样?
结果相当冷静:35 种配置里只有 4 种 F1 超过 0.5,约 75% 低于 0.25。最佳 MinerU + Qwen3-235B 为 0.509,Qwen2.5-VL-32B 也是 0.509。
| 配置类型 | 代表配置 | F1 | 结论 |
|---|---|---|---|
| OCR + LLM 最佳 | MinerU + Qwen3-235B | 0.509 | 与最佳 VLM 持平 |
| VLM 最佳 | Qwen2.5-VL-32B | 0.509 | 直接视觉抽取仍有上限 |
| VLM 次佳 | Ministral-3 | 0.508 | 接近最佳 |
| VLM 失败案例 | LLaVA 7B / Gemma3 27B | 0.000 / 0.015 | 格式崩溃被严格惩罚 |
模型规模有帮助,但不是线性开关。0.6B 多数近零,常出现重复生成并无法遵守 schema;4B 到 32B 通常有提升但不严格单调;235B 在每个 OCR 引擎下都是最佳。可是当 OCR 结构差时,大模型也难恢复行列关系。
最有价值的归因是 MinerU 的优势来自行分组和 HTML 表格标签,而不是单纯字符准确率。论文还发现去掉 grade 或 credits 后 F1 会上升,且去掉 grade 改善更大;不同学校的字母、数字和等级制成绩让字段对齐成为主要难点。
另一个反直觉点:Qwen2.5-VL 略高于 Qwen3-VL。这个单点不能推出版本结论,但足够说明"更新模型版本"不能替代任务级评估。
为什么你要关心?
如果你做企业文档、审批自动化、申请材料处理或 RAG 前处理,这篇论文的测试协议比总榜更接近上线问题。
- 🧪 测整行,不只测字符:把业务主键、数值和层级字段组成整行 token。部分正确在决策场景里常常等于错误。
- 🏗️ 把 OCR 结构质量当一等指标:比较引擎时看行分组、表格标签和空间关系,不要只看几段文本读得像不像。
- 🚦 为零样本系统设人工闸门:F1 0.509 距离高风险自动化有明显距离。置信度阈值、抽样复核和错误分离应该进入默认设计,而不是事后补丁。
我也建议把"格式失败"和"内容错误"分开上报。论文把 schema 解析失败视为抽取失败,符合部署视角;但如果只看总分,就无法判断小模型是能力不足,还是结构化输出接口不稳。
理性看待
数据不可公开是最大复现障碍。成绩单包含个人数据,论文说明当前不能直接发布;外部读者无法验证标注规则、样本难度和全部调用细节。
100 份成绩单来自一个硕士项目,不能推广到所有公共部门文档。实验也没有 bootstrap 置信区间或按文档随机效应建模,OCR 引擎配置未必对所有系统等价调优。
更重要的是,0.509 的最佳结果不是"可用阈值",只是当前零样本配置的上限观察。我的建议是把它当作风险警示和评估模板,而不是模型选型唯一依据。下一步应该做脱敏合成副本、分层错误分析和人工复核流程测试。
作者:lusca
版本:lusca-paper-blog v1.5.0