赵宣乐1,, 罗显真2,, 史琪1,†, 陈驰1,†, 王硕1, 车万翔2, 刘知远1, 孙茂松1
1 清华大学,北京,中国
2 哈尔滨工业大学,哈尔滨,中国

摘要

多模态大语言模型(MLLMs)在图表理解任务中展示了卓越的能力。然而,使用文本描述来解释图表往往会导致信息丢失,因为它无法完全捕捉图表中嵌入的密集信息。相比之下,将图表解析为代码提供了无损表示,可以有效地包含所有关键细节。尽管现有的开源MLLMs在图表理解任务中取得了成功,但在应用于图表到代码任务时仍面临两大挑战:(1) 生成代码的可执行性低且图表细节恢复不佳;(2) 缺乏大规模和多样化的训练数据。为了解决这些挑战,我们提出了ChartCoder,这是第一个专门用于图表到代码生成的MLLM,它利用代码LLM作为语言骨干来增强生成代码的可执行性。此外,我们引入了Chart2Code-160k,这是第一个大规模和多样化的图表到代码生成数据集,并提出了思维片段(SoT)方法,将直接的图表到代码生成数据转换为逐步生成。实验表明,仅具有7B参数的ChartCoder在图表到代码基准测试中超越了现有的开源MLLMs,实现了更好的图表恢复和代码可执行性。我们的代码将在https://github.com/thunlp/ChartCoder上提供。

1 引言

最近,多模态大语言模型(MLLMs)在处理各种视觉任务方面展示了卓越的能力,如图像描述和问答 (Zhang et al., 2024c; Wang et al., 2024b; Chen et al., 2023; Zeng et al., 2024)。然而,当前模型在理解和分析复杂和信息密集型图像中的密集视觉信息方面仍然面临重大挑战。作为信息密集型图像的重要形式,图表包含复杂的信息,如数据和结构,在有效呈现细节方面发挥着关键作用。图表理解和总结的自动化已经引起了研究界的广泛关注。为了推进图表理解任务,现有研究利用现有的MLLMs并在各种大规模图表理解数据集上进行监督微调(SFT),例如图表问答 (Methani et al., 2020) 和图表到文本生成 (Kantharaj et al., 2022),在现有图表理解基准测试中取得了最先进的性能。

然而,现有工作通常将图表视为自然图像,并通过生成自然语言描述来进行模型微调 (Zhang et al., 2024b;

*同等贡献。

通讯作者。

Han et al., 2023; Meng et al., 2024)。这不可避免地忽略了图表中嵌入的密集信息,导致分析和理解效率低下。另一方面,将图表解析为代码提供了无损表示,通过准确捕捉和总结所有信息,提供了一种更高效和全面的图表理解方法。最近的工作 (Shi et al., 2024; Wu et al., 2024; Xia et al., 2024) 提出了各种图表到代码基准测试,旨在通过代码评估图表推理能力。然而,当前的开源MLLMs并不适合代码生成任务 (Zhang et al., 2024a),导致在将图表解析为相应代码时表现不佳,生成代码的执行率有限。如图 1 所示,InternVL2-8B 在将箱线图转换为代码时存在图表类型错误和坐标大小不匹配的问题。

为了克服上述图表到代码生成的挑战,我们首先尝试利用代码LLM作为MLLM的语言骨干,并提出ChartCoder,这是第一个专门用于图表到代码生成的MLLM,它结合了两阶段训练范式,包括图表到文本对齐和图表到代码指令微调。然而,与图表到文本相比,可用的图表到代码数据集规模显著较小,不足以支持有效的监督微调。因此,为了解决图表到代码领域数据稀缺的问题并训练我们提出的ChartCoder,我们提出了第一个大规模、多样化和高质量的图表到代码数据集Chart2Code-160k,该数据集包含160k个多样化的图表-代码对,涵盖27种图表类型。为了增强模型捕获关键信息(如图表类型和数据值)的能力并加强其推理能力,我们提出了思维片段(SoT)方法,强调关键信息并优化图表到代码的推理过程。具体来说,我们从Chart2Code-160k中抽取50k个图表-代码对,然后利用思维链(CoT)(Wei et al., 2022) 和思维程序(PoT)(Chen et al., 2022) 方法将直接生成扩展为逐步生成,以在每一步中强调关键信息。实验结果表明,通过利用我们提出的Chart2Code-160k和SoT方法,仅具有7B参数的ChartCoder在各种图表到代码基准测试中超越了所有开源MLLMs。如图 1 所示,ChartCoder 显示出显著更高的能力,能够生成正确且可执行的代码。

总之,本工作的主要贡献如下:

  • 我们提出了ChartCoder,这是第一个图表到代码的MLLM,利用代码LLM作为语言骨干。仅具有7B参数的ChartCoder在图表到代码基准测试中超越了现有的开源MLLMs。
  • 我们介绍了Chart2Code-160k,这是第一个大规模和多样化的图表到代码数据集,包含27种图表类型的160k个图表-代码对。
  • 我们提出了思维片段(SoT),将直接生成转换为逐步生成,以强调关键信息并增强推理能力。

2 相关工作

2.1 图表理解

图表理解是一个重要的研究领域,涵盖了从提取视觉图表中的数据等低级任务到问答 (Masry et al., 2022)、摘要 (Kantharaj et al., 2022) 和重新渲染图表内容 (Han et al., 2023) 等高级任务。以往的方法 (Singh et al., 2019; Methani et al., 2020) 通常依赖于基于管道的方法。然而,这些管道方法在不同阶段容易出现误差累积,限制了其整体效果和灵活性。最近的工作导致了端到端MLLMs的发展 (Liu et al., 2023b,c; Han et al., 2023; Ye et al., 2023),专门为图表相关任务设计。这些图表领域的MLLMs经过大量图表特定数据集的训练 (Xia et al., 2024; Zhang et al., 2024b; Masry et al., 2024; Yang et al., 2024b),在各种图表相关任务中取得了优越的性能。然而,现有研究通常用自然语言描述图表,这不可避免地忽略了图表中嵌入的密集信息,导致分析和理解效率低下。相比之下,代码作为图表的无损表示,提供了一种更有效和表达力更强的方式来捕捉图表信息,从而有助于解决各种图表相关任务。

2.2 用于代码的MLLMs

多模态代码生成最近受到了更多关注。一些工作,如MM-Code (Li et al., 2024b) 和HumanEval-V (Zhang et al., 2024a),被开发出来以评估MLLMs在解决包含视觉元素的代码问题方面的能力。Design2Code (Si et al., 2024) 和Web2Code (Yun et al., 2024) 通过专注于HTML网页创建的代码生成来评估MLLMs的性能。在这个领域新兴的任务中,图表到代码生成因其图表的视觉元素更为复杂而吸引了极大的兴趣。这个任务挑战MLLMs生成能够准确再现给定图表或视觉表示的代码。最近的工作如ChartMimic (Shi et al., 2024) 评估了MLLMs在这种背景下的推理能力。同样,Plot2Code (Wu et al., 2024) 和ChartX (Xia et al., 2024) 也评估了MLLMs的代码生成能力,特别是在文本和数据可再现性方面。据我们所知,没有专门的研究致力于解决图表到代码生成问题。我们的工作是首次尝试解决这一挑战。

3 Chart2Code-160k 数据集

3.1 直接图表到代码生成

尽管有许多图表推理指令微调数据集可用,但专门用于图表到代码任务的数据集明显不足。与图表推理数据相比,图表到代码数据具有以下显著特征:(1) 一对一映射:与可以从单个图表推导出多个问答对的图表推理数据集不同,图表到代码数据集要求一对一对应,需要大量的图表图像进行训练。(2) 图表多样性:与图表推理数据的多样性可以通过指令反映不同,图表到代码数据的多样性主要体现在图表类型和结构的多样性上。(3) 语法约束:与图表推理任务中灵活的自然语言答案不同,输出代码必须严格遵守编程语法以确保可执行性。

因此,收集符合上述要求的大规模图表-代码对是一项挑战。最近的研究表明,利用LLMs生成代码是可行的 (Xu et al., 2023; Zhang et al., 2024c)。利用图表到代码数据的一对一映射特性,我们

数据集 训练/评估 图表类型 数量
ChartX 评估 18 6k
Plot2Code 评估 6 132
ChartMimic 评估 22 2.4k
ChartLlama 训练 10 7.8k
Chart2Code-160k 训练 27 160k

表1:现有图表到代码数据集的比较。

首先生成代码,然后执行代码生成相应的图表。通过这种方式,我们构建了第一个大规模和多样化的图表到代码数据集,命名为Chart2Code-160k。

具体来说,我们通过以下步骤生成图表到代码数据:首先,我们提示LLM生成特定领域的关键词,并引导其生成与这些关键词相关的模拟数据。然后,为了确保图表类型的多样性,我们确定了27种常用的图表类型,并为每种类型手动编写种子代码作为上下文演示。我们进一步提供可用的功能,如plt.text()和参数如hatch=‘/’,以鼓励生成更多样化的功能和参数 (Xu et al., 2023),从而使图表结构更加多样化。为了增强生成代码的通用性,鼓励LLMs使用标准库如Matplotlib和Seaborn。此外,我们在代码本身中明确定义所有参数,消除了对外部文件如CSV的需求。这确保了代码可以直接执行并准确表示图表细节。最后一步是执行生成的代码以生成相应的图表。我们利用上述过程生成200k个图表代码片段。执行代码并过滤掉有问题的图表(如像素过多或刻度过多)后,我们构建了一个高质量的160k个多样化的图表-代码对数据集。这些对被格式化为统一结构的多模态指令微调样本,即<图表图像, 输入指令, 输出代码>。

3.2 逐步图表到代码生成

尽管上述数据集包含了各种图表类型和结构,但大多数生成的代码遵循类似的模板,只有某些细节(如颜色和值)提供了关键的区别信息。这可能导致图表到代码生成模型忽略这些关键细节,从而产生不完整或不正确的结果。为了解决上述挑战并进一步提高MLLMs的推理能力,我们提出了思维片段(SoT)方法,将直接图表到代码生成扩展为逐步生成格式,这在文本到代码生成任务中已被证明有效 (Zheng et al., 2023; Luo et al., 2024)

具体来说,我们采用SoT模仿人类的推理过程,逐步生成最终代码。这个过程分为四个步骤:步骤1:生成图表类型和布局,如plt.bar()和plt.subplot()。步骤2:生成图表中使用的数据和对应的颜色,如data=[10, 15]和colors=[‘#FF0000’,‘#00FF00’]。步骤3:生成图表的关键细节,如hatch='/'和loc=‘upper left’。步骤4:生成完整的最终代码。不同于CoT和PoT,我们在每个步骤中加入文本解释和代码片段,以强调关键信息,增强推理过程并产生全面的输出。

然而,直接指示LLM生成逐步代码可能会导致幻觉,

导致中间代码片段与最终可执行代码之间的不一致。为了保持代码片段之间的一致性,我们将逐步代码数据生成重新表述为一个两步过程,涉及代码生成和分解。我们从之前生成的160k数据对中抽取50k个图表-代码对,并鼓励LLM将原始代码分解为所需的步骤1-3的文本解释和代码片段,然后在步骤4中连接完整的代码。为进一步减少幻觉,如步骤1和2中未定义的值或参数,我们在代码分解过程中使用占位符或默认参数,以确保构建一致和可靠的逐步代码。

3.3 数据集分析

Chart2Code-160k数据集提供了三个关键优势:(1) 首个大规模数据集:它包含160k个用于指令微调的数据对,显著超过了以前数据集的规模。(2) 多样化的图表结构和类型:它包括27种不同的图表类型,通过代码中的多种函数和参数实现多样化的结构。(3) 语法正确且可执行的代码:所有对应的代码都是语法正确的且可执行的,明确定义的参数确保了图表结构和代码表示之间的精确对齐。Chart2Code-160k与相关图表到代码数据集的比较见表 1。尽管已提出了许多图表相关数据集 (Liu et al., 2023a; Han et al., 2023),但没有一个充分解决了图表到代码任务的挑战。我们提出的Chart2Code-160k填补了这一空白,使模型具备先进的下游图表任务能力。

4 ChartCoder 模型

在构建Chart2Code-160k之后,我们旨在利用这些数据来增强MLLMs从图表生成代码的能力。与以往依赖于训练语料库中代码比例较低的通用LLMs的方法不同,这些方法限制了它们的编码能力,我们开创性地使用代码LLMs从头开始增强MLLMs的编码能力。

4.1 模型架构

遵循MLLMs的标准架构,ChartCoder由三个模块组成:预训练的视觉编码器(SigLIP-384 (Zhai et al., 2023a))、视觉-语言连接器(两层MLP)和代码LLM骨干(DeepSeek Coder 6.7B (Guo et al., 2024))。视觉编码器将输入图像提取为视觉特征,连接器将其投影到词嵌入空间。LLM骨干随后结合视觉和文本特征生成响应。

先前的工作强调了高分辨率输入对于图表理解的重要性 (Liu et al., 2024; Guo et al., 2025),因为像文本单词这样的细节可能在低分辨率图像中丢失。然而,像CLIP (Radford et al., 2021) 和 SigLIP (Zhai et al., 2023b) 这样的视觉变换器分别受限于224x224和384x384的分辨率,这限制了它们编码具有足够细节的图表图像的能力。为了解决这个问题,我们采用了任意分辨率策略 (Liu et al., 2024) 来调整和分割图表图像,以确保ChartCoder能够有效处理高分辨率图表图像。具体来说,首先将输入的图表图像调整为预定义的最佳纵横比,其高度和宽度是图像分辨率的整数倍。然后将调整后的图像分割成标准分辨率的块,并与直接缩小的图像版本连接。这种方法既保留了总体信息又保留了详细信息,无需将原始高分辨率图像调整为标准正方形,从而避免了细节的丢失。详情见图 2

4.2 模型训练

由于我们提议使用代码LLM作为语言骨干来增强MLLMs的代码能力,现有模型不能满足我们的需求,因为它们的骨干是通用LLM。因此,为了对齐图表和文本并进行图表到代码任务的监督微调,我们采用了以下两阶段训练过程。

图表到文本对齐。对齐过程旨在赋予模型图表结构感知能力。在此阶段,我们冻结语言和视觉编码器模型,并预训练视觉-语言连接器 (Liu et al., 2023c)。我们收集并筛选公共图表语料库进行对齐,其中包含多个任务,如图表标题和图表到表格。具体来说,我们使用以下语料库:(1) UniChart (Masry et al., 2023),(2) 图表到文本 (Kantharaj et al., 2022),(3) SciCap (Hsu et al., 2021),(4) SciCap+ (Yang et al., 2024a)。此外,我们还结合了LLaVA预训练数据集 (Liu et al., 2023c) 和我们提出的Chart2Code-160k,以实现更平衡的概念覆盖。

图表到代码指令微调。第二阶段专注于增强模型在图表到代码任务中的能力。在此阶段,我们使用提出的Chart2Code-160k和额外的代码相关数据(如ChartQA PoT (Zhang et al., 2024b) 和ChartLlama图表到图表 (Han et al., 2023))联合微调所有三个模块。

5 实验

5.1 基线和基准测试

我们在三种设置下将ChartCoder与现有模型进行比较 (1) 通用领域的开源MLLMs,包括InternVL2(4B, 8B, 26B, 76B) (Chen et al., 2024), Qwen2-VL(7B, 72B) (Wang et al., 2024a), DeepSeek-VL-7B (Lu et al., 2024), LLaVA-Next(7B) (Li et al., 2024a) 和 MiniCPM-Llama3-V2.5 (Yao et al., 2024)。(2) 专有模型包括GeminiProVision (Team et al., 2023), Claude-3-opus (Anthropic, 2024), GPT-4V

模型 参数 ChartMimic Plot2Code ChartX
执行率 低级 高级 通过率 文本匹配 评分 GPT得分
满分 - 100 100 100 100 100 10 5
专有
GeminiProVision - 68.2 53.8 53.3 68.2 53.6 3.69 -
Claude-3-opus - 83.3 60.5 60.1 84.1 57.5 3.80 -
GPT-4V - 91.2 76.4 78.9 84.1 57.7 5.58 2.63
GPT-4o - 93.2 79.0 83.5 88.6 56.3 5.71 -
开源通用领域
DeepSeek-VL-7B 7.3B 41.3 19.0 17.6 64.4 32.6 2.26 -
LLaVA-Next-Mistral-7B 7.6B 59.7 20.7 21.3 72.0 38.7 2.87 -
Qwen2-VL-7B 7.0B 67.0 32.9 35.0 68.2 33.8 3.10 1.50
InternVL2-4B 4.2B 66.2 33.8 38.4 66.3 33.4 2.52 1.57
InternVL2-8B 8.1B 61.8 34.4 38.9 77.3 37.1 2.78 1.63
MiniCPM-Llama3-V2.5 8.4B 80.3 36.6 42.1 76.3 37.3 2.61 1.66
InternVL2-26B 26.0B 69.3 41.4 47.4 81.3 43.1 3.42 1.70
Qwen2-VL-72B 72.0B 73.3 54.4 50.9 72.0 53.4 4.26 1.69
InternVL2-Llama3-76B 76.0B 83.2 54.8 62.2 85.6 46.6 3.89 1.74
开源图表领域
ChartLlama 13B 57.5 24.8 28.1 58.4 40.3 2.32 0.94
ChartAssisstant 13B - - - - - - 0.82
TinyChart 3B 42.5 26.3 25.9 43.2 44.6 2.19 1.89
ChartVLM-L 14.3B 19.5 15.8 13.9 - - - 1.58
ChartCoder (我们的) 7.0B 91.4 77.4 74.0 87.9 54.5 4.50 2.09

表2:各种基线模型的评估结果。除非另有说明,我们直接使用相关基准测试的结果。我们评估了那些在基准测试中未报告的模型。开源MLLMs的最佳性能用粗体表示。

模型 图表类型 布局 文本内容 数据 样式 清晰度
满分 20 10 20 20 20 10
GPT-4o 18.96 9.59 17.16 15.68 14.66 8.84
InternVL2-Llama3-76B
Qwen2-VL-72B
InternVL2-8B
13.06
10.45
7.20
8.44
7.83
6.82
12.59
9.92
8.81
10.51
8.14
5.74
8.74
7.10
5.42
7.87
7.47
6.64
TinyChart
ChartVLM-L
ChartCoder (我们的)
4.16
0.97
16.83
5.06
3.53
9.13
5.22
2.48
14.77
2.74
0.81
12.41
3.21
0.90
12.68
5.58
5.25
8.29

表3:ChartMimic Direct Mimic任务的高级分数详细结果。ChartCoder的所有子分数都接近GPT-4o。

(OpenAI, 2023), 和 GPT-4o (OpenAI, 2024)。(3) 图表领域MLLMs,包括ChartLlama (Han et al., 2023), ChartAssisstant (Meng et al., 2024), Tinychart (Zhang et al., 2024b) 和 ChartVLM (Xia et al., 2024)。所有方法都在ChartMimic (Shi et al., 2024), Plot2Code (Wu et al., 2024) 和 ChartX (Xia et al., 2024) 基准测试中进行了评估。我们修订了Plot2Code中的评分计算。原始评估只考虑与可执行代码相对应的图表,这导致只生成简单图表的评分较高。我们计算了所有结果,更好地反映了复杂图表的影响。对于所有方法,评估时采用了零样本设置。有关这些基准测试的详细信息见附录 A.2.

5.2 主要结果

如表 2 所示,ChartCoder在所有图表到代码任务中均优于开源MLLMs,甚至优于一些专有模型。值得注意的是,在最具挑战性的ChartMimic任务中,ChartCoder超越了领先的小规模通用领域MLLMs(<20B),如MiniCPM-Llama3-V2.5和InternVL2-8B,平均得分为26.7和34.6。ChartCoder取得的改进突显了我们提出的代码LLM作为语言骨干的有效性,结合Chart2Code-160k数据集,使MLLMs在图表理解和代码生成任务中表现出色。此外,ChartCoder的表现也优于现有的大规模

模型 文本 布局 类型 颜色
满分 100 100 100 100
GPT-4o 81.5 89.8 77.3 67.2
InternVL2-Llama3-76B
Qwen2-VL-72B
InternVL2-8B
54.1
43.2
31.5
74.5
80.5
51.1
49.2
54.6
28.6
41.5
39.4
26.2
TinyChart
ChartVLM-L
ChartCoder (我们的)
9.8
7.7
67.2
48.2
33.7
95.0
32.9
17.6
78.5
14.2
5.2
69.0

表4:Chart-Mimic Direct Mimic任务的低级分数详细结果。ChartCoder的四个子分数中有三个甚至高于GPT-4o。

规模MLLMs,如InternVL2-Llama3arXiv 预印本 arXiv:2403.03163

  • Amanpreet Singh, Vivek Natarajan, Meet Shah, Yu Jiang, Xinlei Chen, Dhruv Batra, Devi Parikh, 和 Marcus Rohrbach。2019。Towards VQA 模型可以阅读。在 IEEE/CVF 计算机视觉和模式识别会议论文集,第 8317–8326 页。

  • Gemini 团队, Rohan Anil, Sebastian Borgeaud, Jean-Baptiste Alayrac, Jiahui Yu, Radu Soricut, Johan Schalkwyk, Andrew M Dai, Anja Hauth, Katie Millican 等。2023。Gemini:一个高度功能的多模态模型家族。arXiv 预印本 arXiv:2312.11805

  • Peng Wang, Shuai Bai, Sinan Tan, Shijie Wang, Zhihao Fan, Jinze Bai, Keqin Chen, Xuejing Liu, Jialin Wang, Wenbin Ge 等。2024a。Qwen2-vl:增强视觉-语言模型在任何分辨率下的感知能力。arXiv 预印本 arXiv:2409.12191

  • Wenhai Wang, Zhe Chen, Xiaokang Chen, Jiannan Wu, Xizhou Zhu, Gang Zeng, Ping Luo, Tong Lu, Jie Zhou, Yu Qiao 等。2024b。VisionLLM:大型语言模型也是以视觉为中心任务的开放式解码器。神经信息处理系统进展,36。

  • Zirui Wang, Mengzhou Xia, Luxi He, Howard Chen, Yitao Liu, Richard Zhu, Kaiqu Liang, Xindi Wu, Haotian Liu, Sadhika Malladi 等。2024c。Charxiv:绘制多模态 LLM 中现实图表理解差距的图谱。arXiv 预印本 arXiv:2406.18521

  • Jason Wei, Xuezhi Wang, Dale Schuurmans, Maarten Bosma, Fei Xia, Ed Chi, Quoc V Le, Denny Zhou 等。2022。链式思维提示在大型语言模型中引发推理。神经信息处理系统进展,35:24824–24837。

  • Chengyue Wu, Yixiao Ge, Qiushan Guo, Jiahao Wang, Zhixuan Liang, Zeyu Lu, Ying Shan, 和 Ping Luo。2024。Plot2Code:评估从科学图表生成代码的多模态大型语言模型的综合基准。arXiv 预印本 arXiv:2405.07990

  • Renqiu Xia, Bo Zhang, Hancheng Ye, Xiangchao Yan, Qi Liu, Hongbin Zhou, Zijun Chen, Min Dou, Botian Shi, Junchi Yan 等。2024。ChartX & ChartVLM:复杂图表推理的多功能基准和基础模型。arXiv 预印本 arXiv:2402.12185

  • Can Xu, Qingfeng Sun, Kai Zheng, Xiubo Geng, Pu Zhao, Jiazhan Feng, Chongyang Tao, 和 Daxin Jiang。2023。WizardLM:使大型语言模型能够遵循复杂的指令。arXiv 预印本 arXiv:2304.12244

  • Zhishen Yang, Raj Dabre, Hideki Tanaka, 和 Naoaki Okazaki。2024a。SciCap+:研究科学图表描述挑战的知识增强数据集。自然语言处理杂志,31(3):1140–1165。

  • Zhiyu Yang, Zihan Zhou, Shuo Wang, Xin Cong, Xu Han, Yukun Yan, Zhenghao Liu, Zhixing Tan, Pengyuan Liu, Dong Yu 等。2024b。MatplotAgent:基于 LLM 的代理科学数据可视化的 方法与评估。arXiv 预印本 arXiv:2402.11453

  • Yuan Yao, Tianyu Yu, Ao Zhang, Chongyi Wang, Junbo Cui, Hongji Zhu, Tianchi Cai, Haoyu Li, Weilin Zhao, Zhihui He 等。2024。MiniCPM-V:手机上的 GPT-4V 级 MLLM。arXiv 预印本 arXiv:2408.01800

  • Qinghao Ye, Haiyang Xu, Guohai Xu, Jiabo Ye, Ming Yan, Yi Zhou, Junyan Wang, Anwen Hu, Pengcheng Shi, Yaya Shi, Chenliang Li, Yuanhong Xu, Hehong Chen, Junfeng Tian, Qiang Qi, Ji Zhang, 和 Feiyan Huang。2023。mPLUG-Owl:模块化赋能 大型语言模型的多模态能力。 ArXiv,abs/2304.14178。

  • Sukmin Yun, Haokun Lin, Rusiru Thushara, Mohammad Qazim Bhat, Yongxin Wang, Zutao Jiang, Mingkai Deng, Jinhong Wang, Tianhua Tao, Junbo Li 等。2024。Web2Code:用于多模态 LLM 的大规模网页到代码数据集和评估框架。arXiv 预印本 arXiv:2406.20098

  • Fanhu Zeng, Fei Zhu, Haiyang Guo, Xu-Yao Zhang, 和 Cheng-Lin Liu。2024。ModalPrompt:双模态引导提示用于大型多模态模型的持续学习。arXiv 预印本 arXiv:2410.05849

  • Xiaohua Zhai, Basil Mustafa, Alexander Kolesnikov, 和 Lucas Beyer。2023a。Sigmoid 损失用于语言图像预训练。 2023 IEEE/CVF 国际计算机视觉会议,第 11941–11952 页。

  • Xiaohua Zhai, Basil Mustafa, Alexander Kolesnikov, 和 Lucas Beyer。2023b。Sigmoid 损失用于语言图像预训练。在 IEEE/CVF 国际计算机视觉会议论文集,第 11975–11986 页。

  • Fengji Zhang, Linquan Wu, Huiyu Bai, Guancheng Lin, Xiao Li, Xiao Yu, Yue Wang, Bei Chen, 和 Jacky Keung。2024a。HumanEval-V:通过编码任务评估大型多模态模型的视觉理解和推理能力。arXiv 预印本 arXiv:2410.12381

  • Liang Zhang, Anwen Hu, Haiyang Xu, Ming Yan, Yichen Xu, Qin Jin, Ji Zhang, 和 Fei Huang。2024b。TinyChart:通过视觉令牌合并和程序思维学习高效图表理解。arXiv 预印本 arXiv:2404.16635

  • Wenqi Zhang, Zhenglin Cheng, Yuanyu He, Mengna Wang, Yongliang Shen, Zeqi Tan, Guiyang Hou, Mingqian He, Yanna Ma, Weiming Lu 等。2024c。多模态自指导:使用语言模型合成抽象图像和视觉推理指令。arXiv 预印本 arXiv:2407.07053

  • Wenqing Zheng, S P Sharan, Ajay Jaiswal, Kevin Wang, Yihan Xi, Dejia Xu, 和 Zhangyang Wang。2023。先轮廓后细节:句法引导的粗到细代码生成。国际机器学习会议 上。

A 附录

A.1 实现细节

在数据生成阶段,我们利用 gpt-4o-2024-08-06 作为直接生成和逐步生成过程的 LLM。

在训练阶段,ChartCoder 使用 SigLIP-384 (Radford et al., 2021) 作为视觉编码器,DeepSeek Coder 6.7B (Guo et al., 2024) 作为大型语言模型进行初始化。整个训练过程分为对齐和指令调优两个阶段。在对齐阶段,我们仅使用图表到文本的对齐数据来训练视觉-语言连接器。学习率设置为 1e-3。在指令调优阶段,我们用 128 的批量大小训练整个模型 1 个周期。SigLIP 和其他模块的学习率分别为 5e-6 和 1e-5,在训练开始时有 3% 的预热期,然后逐渐衰减至 0。对齐和指令调优过程分别需要 12 小时和 5 小时,在 32 个配备 80 GB 显存的 Tesla A100 GPU 上完成。

A.2 基准测试详情

ChartMimic (Shi et al., 2024) 专注于评估 MLLM 从 ArXiv 论文中重新绘制图表的能力,强调保留原始风格和外观。它包含两个子集:testmini 和 test。按照原论文中的设置,我们采用 testmini 子集上的 Direct Mimic 任务作为默认评估标准,报告执行成功率以及低级和高级分数。

Plot2Code (Wu et al., 2024) 旨在评估模型从可用的 Matplotlib 图库生成对应代码的能力,重点关注文本相似性。我们在其 Direct Asking 任务上使用三个指标(通过率、文本匹配和评分)来评估模型。

ChartX (Xia et al., 2024) 包含各种合成图表图像的任务,包括问答、摘要、描述和重绘。我们选择重绘任务,并在 ChartX 中报告 GPT 分数作为指标。

A.3 更多消融研究

我们还对语言骨干进行了更多的消融研究,并进一步选择了 Qwen2.5-7B 和 Qwen2.5 Coder-7B (Qwen Team, 2024) 进行比较。结果也表明,使用代码 LLM 作为语言骨干比使用通用 LLM 更好。然而,我们发现使用

方法 ChartMimic
执行率 低级 高级
ChartCoder 91.4 77.4 74.0
替换语言骨干
Qwen2.5 88.1 73.4 67.9
-3.3 -4.0 -6.1
Qwen2.5 Coder 90.3 76.8 69.7
-1.1 -0.6 -4.3

表 7:关于模型架构和数据的消融研究。结果显示了我们提出的模型架构和数据集的有效性。

类型 饼图 折线图 条形图 数字条形图
百分比 8.0% 9.7% 8.3% 3.3%
类型 3D 面积图 箱形图 气泡图
百分比 5.6% 3.9% 4.4% 2.8%
类型 蜡烛图 漏斗图 热力图 多轴图
百分比 2.8% 2.7% 3.9% 3.8%
类型 雷达图 环形图 饼图 玫瑰图
百分比 3.8% 2.7% 2.8% 3.9%
类型 树状图 小提琴图 散点图 箭头图
百分比 3.9% 3.9% 3.8% 5.2%
类型 内嵌图 直方图 图表 误差棒
百分比 1.2% 1.2% 1.2% 1.6%
类型 误差点 密度图 组合图 总计
百分比 1.6% 1.2% 2.8% 100%

表 8:Chart2Code-160k 指令调优数据集的类型分布。

使用 Qwen2.5 Coder 作为骨干的表现不如使用 DeepSeek Coder。这一观察结果似乎有些反直觉,因为官方评估表明 Qwen2.5 Coder 的性能优于 DeepSeek Coder。我们分析实验结果发现,Qwen2.5 生成的代码更加标准化。例如,DeepSeek Coder 骨干倾向于使用 ax[0], ax[1],而 Qwen2.5 Coder 骨干更喜欢使用更标准化的方法,如 for i in range(2): ax[i]。然而,在某些复杂情况下,使用 for 循环可能会导致错误,例如 ax[0] 和 ax[1] 的条形数量不一致。

A.4 Chart2Code-160k 分析

我们在表 8. 中统计了 Chart2Code-160k 数据集中不同图表的比例。

在这里插入图片描述

图 5:不同模型生成的条形图对应的代码示例。

参考 Paper:https://arxiv.org/pdf/2501.06598

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐