也看跨模态大模型文档图表理解的数据工程:UniChar、MATCHA等代表模型的数据构造方案

今天是2024年4月20日,星期六,北京,天气晴。

最近在做跨模态大模型文档图表理解这一工作,属于跨模态的范畴,但其最为重要的是数据的构造工作。

因此,本文从数据工程角度出发,对现有的一些工作包括UniChart、ChartLlama、MATCHA、ChartInstruct等进行介绍。

我越来越确信,少发表观点【比如越来越多人出来对一些技术新闻品头论足,比如llama3,比如开源闭源】是最为稳妥和技术人该具备的品质,因此,我们关注技术本身就好。

一、UniChart的数据集构造方案

《UniChart: A Universal Vision-language Pretrained Model for Chart Comprehension and Reasoning》

为了构建一个具有各种风格、主题和存储格式的大型且多样化的语料库,从各种在线资源中爬取了图表。此外,还利用了适合预训练的公开图表数据集。收集的图表可以分为两种类型:有底层数据表的图表和无数据表的图表。

其中:

1、带有数据表的图表Charts with Data Tables

具有基础数据表的图表通过三种方式收集:

1)利用现有数据集

利用现有数据集的目标是根据真实数据训练模型,因此,没有考虑从合成数据生成的模型。特别是,使用了以下五个图表数据集,其中基础数据表可用:

(i)Statista(statista.com),(ii)OurWorldInData或OWID(our-worldindata.org),(iii)经济合作与发展组织或OECD(oecd.org),(iv)PlotQA,以及ChartInfo数据集的子集,为数据编码标记(例如条形图中的条形)提供边界框注释。

2)提取SVG图表

在提取SVG图表上,从Beagle语料库的Chartblocks和Plotly数据集中提取SVG格式的图表。这些图表不附带数据表,但可以从SVG元素中准确提取数据,具体步骤如下:

(1)使用HTML属性的特定类名识别轴标签和图例;

(2)使用SVG属性属性(例如大小和位置)提取图表元素(例如条形图、线条)的边界框的;

(3)通过迭代每个g元素来构建基础数据表以查找每个数据属性的数据值。当数据标签缺失时,利用基于图表的轴标签和刻度线的比例信息以及数据编码标记的边界框信息来恢复数据值。

3)数据增强

在数据增强上,通过从公开可用的数据表创建图表来进一步扩充语料库。使用了TheWebDataCommons(WDC),它使用CommonCrawl1来收集大量结构化数据。图表是通过以下步骤创建的:

(i)数据预处理: 由于WDC中的许多表格包含超过三列,因此进行了分解,以便表格适合创建所需的图表类型(例如条形图、折线图和饼图)。特别是,自动分析每列的数据类型(例如,数字与分类),然后随机选择一列包含数字数据值和一/两列包含分类数据。还将表格的最大行数限制为8,以便相应的图表可以适合合理的屏幕空间。

(ii)图表生成: 为了生成视觉上多样化的图表,使用了D3库,该库在创建多样化可视化样式方面提供了极大的灵活性。还使用了Vega-Lite,它基于声明性JSON语法创建图表。使用简单的启发式方法从数据表中确定图表类型(Mackinlay等,2007)。创建了四种类型的图表:(1)具有一个数字数据列的垂直简单条形图、(2)垂直分组条形图、(3)饼图和(4)折线图(单系列和多系列)。

(iii)视觉多样化: 为了创建类似于现实世界变化的视觉多样化图表,设置了以下视觉样式属性:(1)颜色和形状:为分类数据属性选择了Color-Brewer2和Tableau3中的配色方案。还改变了形状属性,例如条形厚度、线型(例如,连续与点线)和图例形状类型(例如,矩形、圆形)。(2)位置和距离:还改变了条相对于轴标签的位置和距离。(3)指南:图表可能包含网格等额外指南,因此生成带网格和不带网格的图表以使样式多样化。

2、没有数据表的图表Charts without Data Tables

许多在线图表仅以图像形式提供,没有相应的数据表。然而,它们对于大规模预训练仍然很有价值,因为可以使用对象检测和光学字符识别(OCR)技术提取图表元素和丰富的文本内容(例如标题、周围文本、说明文字)。

收集了LineCap和NeuralCaptionGeneration等图像图表数据集,因为它们提供了高质量的摘要,此外,还使用了的Pew数据集。

3、通过知识蒸馏增强图表到文本生成任务Augmentation by Knowledge Distillation for Chart-to-text Generation Tasks

与图表相关的下游任务,例如图表摘要和开放式问答需要生成信息丰富且相关的文本。然而,对于预训练语料库中的大多数图表,要么没有相关的摘要,要么机会性地收集的摘要,例如Statista数据集缺乏质量(例如,太短和太短)信息不多)。

对这种不合格的“真实情况”摘要进行训练可能会对整体模型性能产生负面影响,如文本摘要。因此,利用Instruct-GPT生成连贯且相关的文本。具体来说,通过提供底层数据表作为输入和一个示例(即1-shot上下文学习)来提示text-davinci-003。

但通过调用OpenAIAPI生成数千个图表的摘要相当昂贵,因此一种知识蒸馏方法。首先使用text-davinci-003为不同图表类型创建包含3700个摘要的小型数据集,然后在此数据集上微调Flan-T5XL。最后,利用微调的Flan-T5模型为没有关联摘要的图表生成摘要。

地址:https://arxiv.org/pdf/2305.14761.pdf, https://github.com/vis- nlp/UniChart.

二、MATCHA的数据集构造方案

《MATCHA : Enhancing Visual Language Pretraining with Math Reasoning and Chart Derendering》定义了两种类型的预训练任务:(1)图表渲染(浅蓝色框)和(2)数学推理(浅红色框)。在图表去渲染中,给定一个图表,模型需要解码其底层渲染代码或数据表。在数学推理中,给定呈现为图像的数学问题,模型需要解码其答案。图表渲染教授模型布局理解(包括数字提取及其组织),数学推理教授模型数字推理能力。

我们同样来看看其数据上的工作。

对于图表渲染,有四个数据源:(1)自己合成的图表-表格对,(2)来自ChartQA,(3)在PlotQA中合成,以及(4)图表到代码数据。

在权重设置上,最初为这四个任务分配了相同的权重,但注意到训练不稳定,因为图表到代码非常困难(预训练数据有噪音)。因此,将图表到代码的任务减少到4%,并将所有图表到表格的任务增加到12%。对于数学推理,为MATH分配相同的权重,最后,创建了一个预训练任务的混合体,其中40%是数学推理,40%是图表渲染,20%是屏幕截图解析。

地址:https://arxiv.org/pdf/2212.09662.pdf

三、ChartInstruct的数据构成方案

《ChartInstruct: Instruction Tuning for Chart Comprehension and Reasoning》提出了ChartInstruct:一种新颖的图表特定视觉语言指令跟踪数据集,包含由71K图表生成的191K指令。

其目标是使用现实世界的数据构建多样化的图表数据集,以增强模型的通用性。为了实现这一目标,从两个主要来源收集图表图像:现有的公共数据集和网络爬虫图表。

从现有数据集中选择了UniChart,因为它提供了最大、最多样化的图表预训练语料库之一,包含611K个图表以及数据表、标题和说明等元数据。然而,这些图表来自一些特定的在线来源,例如Pew、Statista、OECD和OWID,限制了数据的多样性,涵盖的视觉风格和数据领域。

为了解决这个限制,提出了一个新的语料库WebCharts,其中包含41K不同的图表图像。从包含图表的Web域种子列表开始,然后使用“图表图像”、“图形”和“视觉数据”等查询来使用这些域中的顶级图像搜索结果。

然后,开发了一个二元VIT分类器来区分搜索结果中的图表图像和非图表图像,然后手动删除任何剩余的非图表图像以细化数据集。然而,这些图表缺乏底层数据表,而这些数据表对于各种图表数据分析任务的指令生成至关重要。因此,使用GeminiProVision自动提取数据表和图表标题。

地址:https://github.com/vis-nlp/ChartInstruct,https://arxiv.org/pdf/2403.09028.pdf

四、ChartLlama的数据方案

《ChartLlama: A Multimodal LLM for Chart Understanding and Generation》这一工作也提供了一些思路,可看看:

1、图表数据生成 Chart Data Generation

收集图表数据的首要目标是收集多样化、高质量的数据。为此,采用两种主要策略:

1)使用GPT-4从头开始生成数据

为了收集多样化且高质量的数据集,首先使用GPT-4从头开始生成表格数据。指示GPT-4根据特定主题、分布和其他特征(例如数据集的行和列大小)创建数据表。该过程确保创建具有已知和受控特征的数据,这对于生成可靠的指令-答案对至关重要。此外,通过管理这些特征,可以有意最小化偏差,从而获得更加平衡的数据集。

2)从现有图表数据集中合成数据

第二个策略是通过引用现有图表数据集来合成数据。这些数据集已经涵盖了一系列主题和特征,为数据生成提供了坚实的基础。通过使用这些数据集提示GPT-4,引导它生成合理的数据来补充其现有的知识库。这种方法增加了数据集的多样性并提高了其整体质量。

使用大模型大规模生成不同的数据并不是一件容易的事。当提示设计不当时,模型往往会生成重复且无意义的数据,这些数据偏离真实世界数据的分布,从而缺乏对设计有意义的问答任务很重要的有价值的见解。如果只是提供一组数据并要求模型在没有任何额外指导的情况下进行模仿,那么模型可能只会重复参考数据。

因此,在这一步中,有必要为模型提供额外的信息,例如主题和分布,以确保能够正确引导它生成有意义的数据,例如:

图表主题:首先生成数百个可能的主题,这些主题都是简短的短语。 当生成数据时,从所有这些主题中随机选择一个,这使得数据有意义且多样化。这也使得生成用于指令调整的问题和响应变得更加容易。

数据趋势:数据的另一个重要特征是趋势。 首先生成几个典型的趋势描述,例如稳定增加和突然下降,然后随机选择一些趋势并要求模型生成跟随它们的数据。如果缺乏这些特征,模型将倾向于生成几组无意义分布的数据。

列和行的长度:列的长度和长度对于数据生成也是必需的。如果没有特定的限制,大模型往往会生成过长甚至重复的数据,而这些数据很难通过图表以有意义的方式呈现。

图表类型:不同类型的图表通常具有不同的特征。 例如,饼图中的值之和应为100%。如果不指定图表类型,最终可能会生成不符合相应图表标准的数据。

2、图表图形生成Chart Figure Generation

使用GPT-4的编码功能将的数据集转换为可视化图表,使用流行的图表绘制库(例如Matplotlib)作为的主要工具。

当提示GPT-4时,提供收集的数据、相关函数文档和上下文示例,还提供了有关配色方案和线条类型等多样化方面的详细说明,以增强图表的视觉吸引力。为了提高图表生成的多样性和成功率,随机抽取成功生成的代码作为提示中的上下文示例。

地址:https://arxiv.org/pdf/2311.16483.pdf

总结

本文主要围绕问答图表理解这一工作,从数据角度出发,对现有的一些工作包括UniChart、ChartLlama、MATCHA、ChartInstruct等进行了介绍,重点在于渲染思路,供大家一起参考。

参考文献

1、https://arxiv.org/pdf/2403.09028.pdf

2、https://arxiv.org/pdf/2311.16483.pdf

3、https://arxiv.org/pdf/2212.09662.pdf

4、https://arxiv.org/pdf/2305.14761.pdf

关于我们

老刘,刘焕勇,NLP开源爱好者与践行者,主页:https://liuhuanyong.github.io。

老刘说NLP,将定期发布语言资源、工程实践、技术总结等内容,欢迎关注。

对于想加入更优质的知识图谱、事件图谱、大模型AIGC实践、相关分享的,可关注公众号,在后台菜单栏中点击会员社区->会员入群加入。


相关推荐

  • 恭喜 BLG!值得!!
  • 明明只学会了 Hello World,却以为掌握了整个 World!
  • 5.5K Star真不错!简化数据收集,轻松创建交互式表单
  • Hadoop1X,Hadoop2X和hadoop3X有很大的区别么?
  • Nest 实现 GraphQL 版 TodoList
  • 如何免费用 Llama 3 70B 帮你做数据分析与可视化?
  • 不是哥们,你敲代码咋压抑成这样了?
  • 绝境中盛开,一位独立开发者的故事
  • Go语言之父反思错误:“并发”理念指导不足、没做好包管理、用C写了编译器、文档缺失……
  • 今日代码大赏 | 统一异常处理类
  • 后端知识那么多,重点要学啥?
  • 练习两年半,我们的项目更丰富啦!
  • 性能提升 30%!中国电信进一步开源 12B 星辰大模型 TeleChat-12B!
  • 估值8年涨1200倍,喜马拉雅要IPO了
  • 药物分子设计新策略,微软条件扩散模型DiffLinker登Nature子刊
  • CVPR 2024 | 字节提出新一代数据集COCONut,比COCO粒度分割更密集
  • 大模型一定就比小模型好?谷歌的这项研究说不一定
  • Transformer本可以深谋远虑,但就是不做
  • Llama 3超大杯有何惊喜?Meta会一直开源吗?当初为何笃信元宇宙?扎克伯格新访谈回应一切
  • 开源模型打败GPT-4!LLM竞技场最新战报,Cohere Command R+上线