Docmatix - 一个用于文档视觉问答的庞大数据集
在这篇博客中,我们发布了 Docmatix - 一个用于文档视觉问答 (DocVQA) 的庞大数据集,其规模比以往可用的数据集大数百倍。使用此数据集对 Florence-2 进行微调的消融研究表明,在 DocVQA 上的性能提升了 20%。
数据集中的一个示例
我们最初创建 Docmatix 的想法是在开发 The Cauldron(一个包含 50 个数据集,用于微调视觉语言模型 VLM)和 Idefics2 时产生的。通过这个过程,我们发现大规模文档视觉问答 (DocVQA) 数据集的可用性存在巨大差距。我们用于 Idefics2 的主要数据集是 DocVQA,其中包含 10,000 张图像和 39,000 个问答 (Q/A) 对。尽管在此数据集和其他数据集上进行了微调,但开源模型在性能上仍与闭源模型存在较大差距。为了解决这一局限,我们很高兴地推出 Docmatix,这是一个包含 240 万张图像和 950 万个问答对的 DocVQA 数据集,这些数据来自 130 万份 PDF 文档。与之前的数据集相比,规模增加了 240 倍。
Docmatix 与其他 DocVQA 数据集的比较
你可以在这里亲自探索该数据集,看看 Docterix 中包含的文档和问答对的类型。
Docmatix 是从 PDFA(一个包含 210 万份 PDF 的大型 OCR 数据集)生成的。我们提取了 PDFA 中的文本转录,并使用 Phi-3-small 模型来生成问答对。为确保数据集的质量,我们对生成的内容进行了筛选,丢弃了 15% 被识别为幻觉的问答对。为此,我们使用正则表达式来检测代码,并删除了包含关键词“unanswerable”的答案。数据集中每一行对应一份 PDF。我们将 PDF 以 150 dpi 的分辨率转换为图像,并将处理后的图像上传到 Hugging Face Hub 以方便访问。Docmatix 中的所有原始 PDF 都可以追溯到原始的 PDFA 数据集,从而保证了透明度和可靠性。尽管如此,我们还是上传了处理后的图像,因为将大量 PDF 转换为图像可能需要消耗大量资源。
生成 Docmatix 的处理流程
在处理完第一小批数据集后,我们进行了几次消融研究以优化提示 (prompt)。我们的目标是每页生成大约四个问答对。问答对太多表明它们之间有很大的重叠,而太少则意味着缺乏细节。此外,我们希望答案更像人类的回答,避免过短或过长的响应。我们还优先考虑了问题的多样性,确保重复最小化。有趣的是,当我们引导 Phi-3 模型 根据文档中的具体信息提问时(例如,“John Doe 的头衔是什么?”),问题几乎没有重复。下图展示了我们分析的一些关键统计数据。
按提示分析 Docmatix
为了评估 Docmatix 的性能,我们使用 Florence-2 模型进行了消融研究。我们训练了两个版本的模型进行比较。第一个版本在 DocVQA 数据集上训练了多个周期 (epoch)。第二个版本首先在 Docmatix 上训练一个周期(使用了 20% 的图像和 4% 的问答对),然后在 DocVQA 上训练一个周期,以确保模型能生成用于 DocVQA 评估的正确格式。结果非常显著:仅使用 Docmatix 的一小部分进行训练,性能就相对提高了近 20%。此外,0.7B 参数的 Florence-2 模型的性能仅比在多个数据集混合训练且模型大得多的 8B 参数的 Idefics2 模型差 5%。
数据集 | 在 DocVQA 上的 ANSL 分数 | 模型大小 |
---|---|---|
在 DocVQA 上微调的 Florence 2 | 60.1 | 700M |
在 Docmatix 上微调的 Florence 2 | 71,4 | 700M |
Idefics2 | 74,0 | 8B |
结论
在这篇文章中,我们介绍了 Docmatix,一个用于 DocVQA 的庞大数据集。我们展示了使用 Docmatix 微调 Florence-2 时,可以在 DocVQA 性能上实现 20% 的提升。这个数据集应该有助于缩小专有 VLM 和开源 VLM 之间的差距。我们鼓励开源社区利用 Docmatix 来训练新的、出色的 DocVQA 模型!我们迫不及待地想在 🤗 Hub 上看到你们的模型!
实用资源
我们想感谢 merve 和 leo 对这篇博客的审阅和封面图制作。