ChartInstruct
ChartInstruction: Instruction Tuning for Chart Comprehension and Reasoning
arXiv:2403.09028v1
code: [传送门](暂未开源-2024/3/25)
Abstract
1. INSTRUCTION
作者的主要贡献:
- 通过 LLMs 得到了一个新的适用于真实世界图表和广泛任务的指令跟随语料库;
- 两个不同的、专门为图表理解任务量身定制的系统;
- 广泛的评估展示了,ChartInstruct 在现存的图表相关的基准上是 SOTA,并且扩展了其对新任务的适用性。(代码和图表语料库准备开源【暂未2024/3/25】)
2. Related Work
2.1 Chart Modeling
图表理解的方法分为两种:
-
直接利用语言或者视觉-语言模型进行微调;
性能受限,因为缺乏特定于图表的预训练。
-
根据特定任务进行定制。
由于在原始的图表特定任务上进行预训练,所以限制了其在真实世界图表场景中的适用性。
2.2 Visual Instruction Tuning
LLMs 上的指令微调在对齐模型和人类意图、以及提升对任务的泛化性上是有优势的。
目前的一些研究也实现了多模态的微调,但是它们依赖于对于视觉编码CLIP,这是针对自然图像而非真实世界图表设计的。
本文提出的两种专门为图表领域设计的系统,并在大量的图表图像进行训练,覆盖了广泛的真实世界图表应用。
2.3 Chart Domain Downstream Tasks
本文在各种下游任务上进行了评估,并在指令数据生成过程中产生了一种新的图表推理任务。
3. Chart Instruction Data Generation
为了提升 VLMs 在处理各种图表分析相关的理解和生成任务上的能力,本文提出了一个指令微调数据集。本节将介绍图表语料库的收集以及指令调整数据的过程。图2提供了指令调整过程的概述。
3.1 Chart Corpora Collection
目的:建立一个包含各种真实世界数据的图表数据集来提升模型的生成能力。
来源:
1)现存的公开数据集(UniChart);
视觉风格和数据覆盖的领域有限。
2)网络爬取的图表(WebCharts)。
爬取图表数据,适用 VIT 二值分类器筛选出有图表图像的数据,然后人工进行一步剔除无图表图像的数据,使用 Gemini Pro Vision 提取图表中的数据表格和图表标题(这对于指令生成很有用)。
3.2 Instruction Data Generation
作者开发了图表指令数据集,涵盖了图表理解和推理的很多方面。如下图所示:
指令数据的生成过程如下:
(i) Tasks Selection
作者定义了一系列任务,其中有一部分是让 LLMs 提出的新任务,以丰富数据集。下面简短的介绍这些任务:
-
Summarization and QA
-
Fact Checking
包含这类任务目的是提升模型的减少错误和正确解释图表数据的能力。将 claim 作为输入然后生成判别(“进一步”或者“接受”)和解释。
-
Chain-of-thought(CoT) Reasoning
目的:提升模型在复杂数学和视觉推理上的能力。
当前的方法在数据计算上会发生错误,作者将问题分为两种类型解决:
- 受 ToolFormer(Schick et al.,2023)启发,使用工具计算统计数据的变量相关问题;
- 变量独立问题,专注于检索、比较和基本数学分析。
-
Code Generation
目的:生成可执行python脚本回答用户的询问。
-
Novel Tasks
丰富了指令集合。生成的指令涉及可能需要新的形式的推理和分析的任务(例如,未来的价值预测)。
(ii) Prompt Design
先设计一系列prompt模板,每个模板包含了:
- 任务描述
- 输入图表数据表格,和元数据,例如图表标题
- 输出限制(如果有的话)
- 输出格式
例子见图5。
(iii) Input and Output Generation
将图表的底层数据表格和标题与其中一个prompts模板一起输入GPT3.5(中等难度的任务)或GPT-4(复杂的任务)。并且每一次调用,要求模型提出多个关于图表的样本,以降低成本。