今天我们来聊一个硬核话题——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 了。期待看到更多令人振奋的新成果。
