Docmatix - 一个用于文档视觉问答的庞大数据集

发布于 2024 年 7 月 18 日
在 GitHub 上更新

在这篇博客中,我们发布了 Docmatix - 一个用于文档视觉问答 (DocVQA) 的庞大数据集,其规模比以往可用的数据集大数百倍。使用此数据集对 Florence-2 进行微调的消融研究表明,在 DocVQA 上的性能提升了 20%。

Example from the dataset
数据集中的一个示例

我们最初创建 Docmatix 的想法是在开发 The Cauldron(一个包含 50 个数据集,用于微调视觉语言模型 VLM)和 Idefics2 时产生的。通过这个过程,我们发现大规模文档视觉问答 (DocVQA) 数据集的可用性存在巨大差距。我们用于 Idefics2 的主要数据集是 DocVQA,其中包含 10,000 张图像和 39,000 个问答 (Q/A) 对。尽管在此数据集和其他数据集上进行了微调,但开源模型在性能上仍与闭源模型存在较大差距。为了解决这一局限,我们很高兴地推出 Docmatix,这是一个包含 240 万张图像和 950 万个问答对的 DocVQA 数据集,这些数据来自 130 万份 PDF 文档。与之前的数据集相比,规模增加了 240 倍

Comparing Docmatix to other DocVQA datasets
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 转换为图像可能需要消耗大量资源。

Processing for Docmatix
生成 Docmatix 的处理流程

在处理完第一小批数据集后,我们进行了几次消融研究以优化提示 (prompt)。我们的目标是每页生成大约四个问答对。问答对太多表明它们之间有很大的重叠,而太少则意味着缺乏细节。此外,我们希望答案更像人类的回答,避免过短或过长的响应。我们还优先考虑了问题的多样性,确保重复最小化。有趣的是,当我们引导 Phi-3 模型 根据文档中的具体信息提问时(例如,“John Doe 的头衔是什么?”),问题几乎没有重复。下图展示了我们分析的一些关键统计数据。

Prompt analysis Docmatix
按提示分析 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 对这篇博客的审阅和封面图制作。

社区

注册登录 以发表评论