ChartLlama: A Multimodal LLM for Chart Understanding and Generation论文阅读

news2024/9/19 13:07:05

原文链接:https://arxiv.org/abs/2311.16483

代码与数据集:https://tingxueronghua.github.io/ChartLlama/

本文启发:文章提出利用GPT-4合成大量图表数据,这些数据包含各种图表类型,包含丰富的instruction data。然后使用合成数据集对Llama进行微调,得到ChartLlama,完全属于数据驱动型方法。但是,合成数据集与真实数据集相比是否存在弊端?目前还没有研究明确证明这一点,但是能看到不少研究者都专注于真实数据集。

 Abstract

        多模态大型语言模型在大多数视觉语言任务中表现出令人印象深刻的表现。但是,该模型通常缺乏对特定域数据的理解能力,尤其是在解释图表图片时。这主要是由于缺乏相关的多模态指令微调数据集。在本文中,我们利用 GPT-4 创建了一个高质量的指令微调数据集。我们开发了一个多步骤的数据生成流程,包括生成表格数据,创建图表图形,并分别设计指微调数据。我们方法能够高效地生成多样化、高质量的指令调整数据,同时保持较低的资源支出,此外,它还允许我们整合现有数据集中尚未包含的更广泛的图表和任务类型。

        接下来,我们介绍 ChartLlama,这是一个多模态大型语言模型,我们使用创建的数据集对其进行了训练。ChartLlama 在 ChartQA、Chart-to-text 和 Chart-extraction 评估基准中优于所有以前的方法。此外,ChartLlama 显著改进了我们专门编译的图表数据集中的基线,其中包括新的图表和任务类型。ChartLlama 的结果表明我们提出的数据生成方法在增强图表理解方面的巨大潜力。

1.Introduction

        随着LLM快速发展,尽管 GPT-4V 等模型取得了成就和潜力,但 GPT-4V 架构背后的细节仍然是个谜。这种不透明性在学术界引发了关于设计多模态 LLM 的最佳实践的问题。值得注意的是,开创性的研究计划,如 LLaVA和 MiniGPT ,在这方面提供了有见地的方向。他们的研究结果表明,通过将视觉编码器整合到现有的 LLM 中,然后使用多模态指令调整数据集对其进行微调,LLM 可以有效地转变为多模态 LLM。值得注意的是,这些多模态数据集通常来自已建立的基准,为积累指令调整所需的数据提供了一种经济高效的方法。

        基于既定基准的数据集,如 COCO数据集,显著增强了多模态 LLM 解释日常照片的能力。然而,当面对专门的视觉表示,如图表时,这些数据集显示出明显的局限性。图表是将复杂的数据集转化为易于理解的视觉叙述的重要视觉工具,在促进理解、形成见解和有效传达信息方面发挥着至关重要的作用。从学术出版物到企业演示,他们的普遍存在强调了增强多模态 LLM 解释图表能力的重要性。事实上,专门收集数据以改进理解图表的指令会带来一些挑战。这些通常源于两个领域:理解和生成。一个有效的图表理解模型应该能够从各种类型的图表中提取和总结数据,并根据这些信息进行预测

        但是,现存的绝大多数数据集仅仅提供简单的问答和描述说明,这主要由于缺少详细的图表信息和注释,无法提供对原始数据的高级理解。高度依赖Web 爬虫收集的手动注释图表会对这些数据集的质量产生负面影响。因此,以前的注释方法只能导致图表数据集质量较低且注释不太全面。与图表理解相比,生成图表图形对模型来说是一项更具挑战性的任务,因为现有的基于深度学习的生成方法难以根据指令准确创建图像。使用 Python 代码生成图表似乎很有前途,这需要相应的注释来监督模型。从 Web 获取的大多数图表都没有详细的注释,因此很难对生成代码进行注释。缺少代码注释使得在代码生成中监督模型变得具有挑战性。这些问题结合在一起,阻碍了模型理解图表和生成图表的能力。

        为了解决这个问题,我们引入了一种专为图表理解和生成量身定制的自适应和创新数据收集方法。我们方法的核心是利用 GPT-4 强大的语言和编码能力,这有助于创建丰富的多模态数据集。这种思路不仅优化了数据的准确性,还确保了其广泛的多样性。具体来说,我们的方法包括三个主要阶段:

(1)Chart Data Generation(生成数据点):我们不是将数据收集局限于 Web 或现有数据集等传统数据源,而是利用 GPT-4 的强大功能来生成合成数据。通过提供topic、distribution、trend等特定特征,我们指导 GPT-4 生成既多样化又精确的数据。

(2)Chart Figure Generation(绘图):GPT-4 的编码技能被用于使用开源库(如 Matplotlib)编写图表图,给定数据和函数文档,输出精心渲染的图表,这些图表跨越各种形式,每个图表都准确地表示其基础数据。

(3)Instruction data generation(生成描述性文本、QA):GPT-4 进一步用于解释和叙述图表内容,确保整体理解。系统会提示它构建与图表相关的问答对。通过合并叙述文本、问答对以及图表的源代码,从而得到一个全面的 instructiontuning 语料库。

通过上述方式,我们构建了一个开源数据集,它与其他数据集对比如下:

我们的贡献总结如下:

  • 引入了一种新颖的多模态数据收集方法,专门设计用于图表理解和生成。所提出的数据收集方法具有出色的灵活性和可扩展性,能够轻松迁移到不同类型的图表和各种任务中。
  • 通过我们创新的数据收集方法,我们创建了一个在质量和多样性方面脱颖而出的基准数据集。
  • 开发了ChartLlama,一个多模态大型语言模型(LLM),不仅在各种现有基准测试中超越了现有模型,而且具有多样化的独特图表理解和生成能力。

2. Related work

2.1. Large Language Model

2.2. Multi-modal Large Language Model

2.3. Chart Understanding

        已经有一些数据集可用于评估模型的图表理解能力,主要分为两类,一类通过简单的问答任务进行衡量,例如 ChartQA,它具有由人工注释的高质量问题和答案,以及 PlotQA,它通过模板生成了质量较低的问题和答案,这些数据集的优势在于它们的大比例尺以及通过模板生成它们的能力,局限性在于难以确保问题和答案的质量,以及倾向于关注图表中数据的简单问题。

        另一个类别将图表转换为文本描述,例如Chart-to-text ,这些数据集中的图表和注释来自现实世界,确保了更高的质量,并鼓励模型更深入地研究图表背后的趋势和含义,缺点是文本注释中存在更多的噪音和对 BLEU-4 的过度依赖。

        早先关于图表理解任务的工作可以分为两种主要方法。一种方法是使用单个模型来理解图表并用自然语言回答问题。另一种方法,首先利用模型将图表转换为结构化数据,然后使用现有的大型模型根据结构化数据分析和回答问题,例如Deplot: One-shot visual language reasoning by plot-to-table translationStructchart: Perception, structuring, reasoning for visual chart understanding

        在我们的工作中,我们主要探索前一种类型,旨在利用单个模型来完成图表理解的整个过程。

3. Method

3.1. Chart Data Generation

        我们在图表数据收集方面的主要目标是收集多样化和高质量的数据。为此,我们采用两种主要策略:1) 使用 GPT4 从头开始生成数据:为了收集多样化和高质量的数据集,使用 GPT-4 从头开始生成表格数据。我们指示 GPT-4 根据特定主题、分布和其他特征(例如数据集的行和列大小)创建数据表。此过程可确保创建具有已知和受控特征的数据,这对于生成可靠的 instruction-answer 对至关重要。此外,通过管理这些特征,我们可以有意识地减少偏差,从而获得更加平衡的数据集。2) 从现有图表数据集合成数据:通过引用现有的图表数据集来合成数据。这些数据集已经包含一系列主题和特征,为数据生成提供了坚实的基础。通过使用这些数据集提示 GPT-4,我们指导它生成合理的数据,以补充其现有的知识库。这种方法为我们的数据集增加了多样性,并提高了其整体质量。

        指导生成数据的具体方案如下:

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

        数据趋势Data trends:数据的另一个重要特征是趋势。我们首先生成几个典型的趋势描述,比如稳步上升和突然下降,然后随机选择一些趋势,并要求模型根据它们生成数据。如果缺乏这些特征,模型将倾向于生成几组具有无意义分布的数据。

        列和行长度Column and row lengths:行和列的长度对于数据生成也是必需的。如果没有特定的约束,LLM 往往会生成过长甚至重复的数据,这很难通过图表以有意义的方式呈现。

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

3.2. Chart Figure Generation

        下一步是使用 GPT-4 的编码功能将我们的数据集转换为可视化图表,使用 Matplotlib作为主要工具。在提示 GPT-4 时,我们会提供收集的数据、相关函数文档和上下文示例。我们还对颜色方案和线条类型等多样化方面提供了详细说明,以增强图表的视觉吸引力。为了提高图表生成的多样性和成功率,我们在提示中随机抽样成功生成的代码作为上下文中的示例。与以前依赖模板的自动图表生成工作相比,我们的方法提供了更多的多样性和更好的视觉吸引力。它还使我们能够有效地泛化不同的图表类型。结果是一系列精心制作的图表,每张图表都准确地表示其数据并在视觉上吸引人,展示了我们方法的有效性。下面列出了此阶段中提示的必要输入。

        图表数据:这是任务最重要的输入,图表数据是将在图表中可视化的信息。

        相关函数文档Related function documentation:这是生成 Python 代码的重要参考。它提供有关可用于创建图表的可用函数和特性的信息。通过该文档,该模型甚至可以创建上下文中没有的新样式的图表。

例如:

  1. 函数名称:bar()
  2. 参数:
    • x:X轴的数据点
    • y:Y轴的数据点
    • color:柱状图的颜色
  3. 返回值:图像

        上下文示例:这些上下文示例是从预先选择的高质量代码中采样的。这有助于促进 Python 代码的构建。当有高质量的新生成代码时,我们可以保存并对其进行采样,作为之后的上下文示例。

        其他要求:为了保证最终生成的代码适合批量处理和执行,我们还需要在 prompt 中包含几个要求。例如,需要在代码中列出数据,以使生成的代码自包含且可执行,而无需外部文件。我们还设置了标题、轴标签、图例和文本注释的要求。它们提供有关图表所代表内容的上下文,并使其更易于理解数据。没有它们,图表可能会令人困惑且难以解释。

3.3. Instruction data generation

        在 GPT-4 的帮助下,利用前两阶段的信息继续生成大量的 instruction-answer 数据。除了基本的图表理解功能(如问答和摘要)外,我们还为更复杂的任务构建说明和答案,例如准确的数据提取、详细的图表描述、图表代码生成,甚至图表编辑。与以前依赖人工注释的指令数据生成方式相比,我们的方法可以节省大量时间,同时提高结果数据集的多样性和质量。以下是需要填写到提示中的数据的更多详细信息:

图表描述和原始数据:提供这些描述有助于模型更好地理解上下文。图表描述有助于模型理解数据的性质,原始数据有助于理解数据的可视化表示。原始数据为模型提供实际值作为其响应的基础。所有描述和原始数据都在第一阶段和第二阶段生成。

被要求询问的特征Characteristics to be asked about:这个要求确保模型提出关于图表的多样化和相关的问题,它能提示模型检测数据及其表示的不同特征。

4. Experiment

4.1. Implementation details and dataset statistics

4.2. Evaluation Benchmark and Metrics

 在七个任务上进行评估:

  • ChartQA
  • Chart-to-text
  • Chart-extraction:图表提取旨在从给定的图表中提取表格数据。
  • Detailed description:这项任务需要以详细的方式对给定的图表图形进行全面描述,而不是简要总结它。
  • Chart-to-chart
  • Text-to-chart:根据说明文本和表格数据生成图表图形。
  • Chart-editing:输入条件是一个图表图和描述如何编辑图表的说明。预计会创建一个新图形,该图形已根据给定图表图形的说明进行了修改。

4.3. Results

4.4. Qualitative results

总之实验表明ChartLlama在所有任务上都取得SOTA效果,进一步证明了数据集的有效性。

5. Conclusion

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2146304.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day04_JVM实战

文章目录 一、gc日志和dump快照GC日志是什么,要怎么看?dump快照是什么?要怎么看?二、gc日志和dump快照实战java.lang.OutOfMemoryError:Java heap space1、gc.log怎么看2、heapdump.hprof怎么看?①jvisualvm查看②使用MAT查看java.lang.OutOfMemoryError:Metaspace1、实时…

移动技术开发:登录注册界面

1 实验名称 登录注册界面 2 实验目的 掌握基本布局管理器的使用方法和基本控件的使用方法 3 实验源代码 布局文件代码&#xff1a; <?xml version"1.0" encoding"utf-8"?><LinearLayoutxmlns:android"http://schemas.android.com/apk/…

游戏客服精华回复快捷语大全

以黑神话悟空为代表的国内的游戏行业&#xff0c;最近发展非常迅猛&#xff0c;大量游戏玩家需要足够的游戏客服支持&#xff0c;这里整理了游戏客服精华回复快捷语&#xff0c;涵盖了接待客户&#xff0c;游戏级数&#xff0c;游戏外挂&#xff0c;游戏要求&#xff0c;游戏特…

SAP SPROXY 配置

事务码SPROXY 然后找到目标的地址 然后创建新对象即可

【数据结构】排序算法---计数排序

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaGo 结语 1. 定义 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。计数排序不是基于比较的排序算法&#xff0c;其核心在于将输入的数据值转化为键存储在额外开辟的数组…

AIGC时代!AI的“iPhone时刻”与投资机遇

AIGC时代&#xff01;AI的“iPhone时刻”与投资机遇 前言AI的“iPhone时刻”与投资机遇 前言 AIGC&#xff0c;也就是人工智能生成内容&#xff0c;它就像是一股汹涌的浪潮&#xff0c;席卷了整个科技世界。它的出现&#xff0c;让我们看到了人工智能的无限潜力&#xff0c;也…

从北大张泽民院士团队的研究成果中寻找医学AI未来的发展方向|个人观点·24-09-19

小罗碎碎念 如果有人问&#xff0c;“从你熟悉的院士中挑选一个&#xff0c;你最先想到的会是谁&#xff1f;“&#xff0c;我会毫不犹豫的回答&#xff1a;张泽民 昨晚一边在操场锻炼&#xff0c;一边在手机里听着一个哈佛的博士直播做报告。听报告的同时&#xff0c;脑子里在…

Android Studio报错: Could not find pub.devrel:easypermissions:0.3.0, 改用linux编译

在Android studio中去编译开源的仓库&#xff0c;大概率就是各种编译不过&#xff0c;一堆错误&#xff0c;一顿改错&#xff0c;基本上会耗费非常多时间&#xff0c;比如&#xff1a; 这个就是改gradle版本&#xff0c;改成7.2 &#xff0c;修改完成之后&#xff0c;还有其他报…

秋招面试注意了!网络安全工程师面试最怕遇到的问题,很多人都经历过!

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

培养关键职业技能,提升个人竞争力

文章目录 一、为什么要培养职业技能&#xff1f;1、提升个人竞争力2、提高工作效率和质量3、适应职业发展变化4、增加收入 二、关键职业技能概述1、专业技术能力2、问题解决能力3、沟通交流能力4、团队合作能力5、领导意识能力6、适应变化能力 三、结语 在当今快速发展的社会中…

react的组件的概念和使用

文章目录 1. **组件的定义****函数组件****类组件** 2. **组件的生命周期**3. **状态管理****类组件中的状态管理****函数组件中的状态管理** 4. **组件之间的通信****通过 Props 传递数据****上下文&#xff08;Context&#xff09;** 5. **组件的样式**6. **处理表单**7. **错…

[SAP ABAP] 修改内表数据

1.利用关键字修改数据 语法格式 MODIFY TABLE <itab> FTOM <wa> [TRANSPORTING f1 f2...].<itab>&#xff1a;代表内表 <wa>&#xff1a;代表工作区 示例1 内表修改前的数据 将上述数据行中的AGE字段值更改为25&#xff0c;SEX字段值更改为女 输出结…

基于windows下docker安装HDDM并运行

安装主要教程 如何安装HDDM(基于windows下 docker 和 linux) | 传鹏的实验室 (chuan-peng-lab.netlify.app) 安装时遇到的问题 1.下载完docker安装包&#xff0c;安装提示不适合本电脑 解决办法&#xff1a; 第一步&#xff1a;开启CPU虚拟化 Windows电脑如何开启CPU虚拟化…

JS全选反选案例

我们在进行网页制作的时候&#xff0c;通常会用到复选框&#xff0c;而复选框外面往往有一个大的勾选框来&#xff0c;控制里面的框是否全部选择&#xff0c;而里面的小复选框同时也是在控制着外面大的选择框&#xff0c;当里面全选的时候&#xff0c;外面的也会勾选上&#xf…

2018年国赛高教杯数学建模D题汽车总装线的配置问题解题全过程文档及程序

2018年国赛高教杯数学建模 D题 汽车总装线的配置问题 一&#xff0e;问题背景   某汽车公司生产多种型号的汽车&#xff0c;每种型号由品牌、配置、动力、驱动、颜色5种属性确定。品牌分为A1和A2两种&#xff0c;配置分为B1、B2、B3、B4、B5和B6六种&#xff0c;动力分为汽油…

自制数据库迁移工具-C版-04-HappySunshineV1.4-(支持Gbase8a、PG)

目录 一、环境信息 二、简述 三、架构图 四、升级点 五、支持功能 六、安装包下载地址 七、配置参数介绍 八、安装步骤 1、配置环境变量 2、生效环境变量 3、检验动态链接是否正常 4、修改配置文件MigrationConfig.txt &#xff08;1&#xff09;Gbase8a -> Gba…

机器学习模型中特征贡献度分析:预测贡献与错误贡献

在机器学习领域&#xff0c;特征重要性分析是一种广泛应用的模型解释工具。但是特征重要性并不等同于特征质量。本文将探讨特征重要性与特征有效性之间的关系&#xff0c;并引入两个关键概念&#xff1a;预测贡献度和错误贡献度。 核心概念 预测贡献度&#xff1a;衡量特征在…

【w0网页制作】Html+Css网页制作影视主题之庆余年Ⅱ含轮播表单(5页面附源码)

庆余年2HTMLCSS网页开发目录 &#x1f354;涉及知识&#x1f964;写在前面&#x1f367;一、网页主题&#x1f333;二、网页效果效果1、轮播效果图Page1、首页Page2、角色介绍Page3、剧情介绍Page4、剧集评价Page5、留言模块 &#x1f40b;三、网页架构与技术3.1 脑海构思3.2 整…

集装箱机房可视化:高效管理与监控

通过图扑可视化平台实时监控集装箱机房的运行状态和环境参数&#xff0c;优化资源配置&#xff0c;提升运维效率&#xff0c;确保数据中心安全可靠运行。

Java面试篇基础部分-Java中5种常用的线程池

Java中定义了一个Executor的接口并且在接口中定义了execute()方法用来执行一个线程任务。然后通过ExecutorService实现了Executor接口用来执行具体的线程操作。 ExecutorService接口实现了多个类用来创建不同的线程池,其中最常见的线程池有如下几种 newCachedThreadPool 可以缓…