Docmatix - 超大文档视觉问答数据集
今天聊点硬核的——Docmatix 这个数据集,一发布就刷新了行业纪录。相比之前同类数据集,它的规模直接翻了一百倍。简单说,当你用 Docmatix 来微调 Florence-2 时,DocVQA 任务的性能可以提升近 20%。这个幅度,足够让每个做文档理解的人都竖起耳朵。

Docmatix 数据集样本示例
事情的起因,得从“丹鼎”项目说起。当初团队开发丹鼎——一个整合了 50 个数据集的视觉语言模型微调包——时,就靠它训出了最初的版本。但过程中大家发现,要做大规模文档视觉问答 (DocVQA),手里的数据根本不够用。Idefics2 依赖的 DocVQA 数据集,满打满算只有 1 万张图像、3 万 9 千对问答。这个量级,拿去跟闭源模型拼,差距肉眼可见。
问题摆在那儿了,总得解决。于是 Docmatix 应运而生。这个数据集包含 240 万张图像,全部源自 130 万个 PDF 文档,总共扒下来 950 万对问答。跟之前的数据集一比,规模整整大了
240 倍

Docmatix 和其它 DocVQA 数据集的对比

数据集怎么来的?整体流程可以用一句话概括:从 PDFA 里先转出文本,再让模型去生成问答对。不过,光生成还不够,质量得把关。团队对模型生成的答案做了一轮清洗:所有被判定为“幻觉”的问答对,大概 15%,直接扔掉;再用正则表达式扫一遍代码,把所有包含 “unanswerable” 关键字的答案也清掉。最终入库的,都是经过筛选的货。
具体每一行数据对应一个 PDF 文件。为了使用方便,PDF 被统一转换成 150 dpi 的图片,直接上传到 Hugging Face Hub。所有原始文档仍然可以溯回到 PDFA 数据集,透明度和可靠性都留了个底。不过话说回来,把上百万个 PDF 全转成图像,计算成本确实不低,所以数据集里直接提供处理好的图像,用户拿到就能用,也算一种折中的体贴。

生成 Docmatix 的数据处理流水线
在正式大规模生成之前,团队先跑了一小批样本做消融实验,专门调优提示词。目标很明确:每页文档大约产出 4 对问答。太少,说明页面上细节不丰富;太多,问答之间就容易出现大量重叠。答案的长度也要跟人类水准对齐,不长不短刚刚好。另一个关注点是问题多样性。实际测试发现,只要引导模型根据文档中的具体信息去提问——比如“某甲的头衔是什么?”——重复问题几乎自动消失。下面这张图里,可以看到一些关键分析数据:

从提示的维度分析 Docmatix
硬数据最能说明问题。为了评估 Docmatix 的效果,团队用 Florence-2 做了一组对比消融实验。一个版本直接在 DocVQA 上训了好几个 epoch;另一个版本先用 Docmatix 训练 1 个 epoch——注意,只用了其中 20% 的图像和 4% 的问答——然后切回 DocVQA 再训 1 个 epoch,目的是让输出格式对齐 DocVQA 的评估要求。结果很干脆:先跑一趟 Docmatix,就能带来约 20% 的相对指标提升。更让人意外的是,这个只有 0.7B 的 Florence-2 模型,性能只比 8B 的 Idefics2 差了 5%。要知道,8B 跟 0.7B 可不是 5% 的事,两个模型体量差了整整一个数量级。
| 数据集 | DocVQA 上的 ANSL 值 | 模型尺寸 |
|---|---|---|
| 在 DocVQA 上微调的 Florence 2 | 60.1 | 700M |
| 在 Docmatix 上微调的 Florence 2 | 71.4 | 700M |
| Idefics2 | 74.0 | 8B |
总结
Docmatix 的价值已经摆上桌面:在 DocVQA 任务上,用它微调 Florence-2 可以直接将性能拉高 20%。开源社区手里的牌明显多了不少,闭源模型跟开源模型之间的差距不是铁板一块。接下来的路,就靠大家拿着 Docmatix 去跑模型、刷 SOTA 了。期待看到更多新鲜结果。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名