多模态图表理解新 SOTA!TinyChart-3B,兼顾性能和效率

关注公众号,发现CV技术之美

作为一种重要的信息来源,图表(Chart)能够直观地展示数据关系,被广泛地应用于信息传播、商业预测和学术研究中 [1]。随着互联网数据的激增,自动化图表理解受到广泛关注,近期诸如GPT-4V、QwenVL-Max和Gemini-Ultra等通用闭源多模态大模型都展现出一定的图表理解能力,开源模型Chartllama [2]、ChartAst [3]等也在图表问题回答、图表总结和图表转换等任务上取得强大的性能。然而,目前开源的图表理解模型有以下三个局限:

  1. 模型参数规模庞大,难以部署到应用中。例如Chartllama包含13B参数,无法直接部署到单张小于26 GB显存的消费级显卡上 [4]。

  2. 模型容易出现数值错误,尤其是回答涉及数值计算的问题时 [3]。

  3. 模型无法高效处理高清图片,而许多关键信息(比如OCR文本)往往需要在较高分辨率下才清晰可见。并且,考虑到标准视觉Transformer会产生较长的视觉特征序列,直接提高输入分辨率又会带来计算效率问题。

3f6eb615de75789b693d8ab37bea0267.png
图1 TinyChart在多项图表理解评测上取得最佳性能,并展现出推理效率优势

针对以上三个问题,中国人民大学阿里巴巴通义实验室mPLUG团队推出多模态图表理解模型TinyChart,仅通过3B参数达到多模态图表问答的SOTA水平(ChartQA: 83.6 > Gemin-Ultra 80.8 > GPT4V 78.5),并展示推理速度的优势,同时具备图表总结、图表转换和图表重绘等能力。相关代码已开源。

  • 论文链接:https://arxiv.org/abs/2404.16635

  • 开源链接:https://github.com/X-PLUG/mPLUG-DocOwl

  • demo:https://huggingface.co/spaces/mPLUG/TinyChart-3B

针对数值计算问题,TinyChart采用程序思维链学习,能够生成Python程序进行计算,显著减少计算错误。而对于高清图片处理问题,考虑到图表通常包含大片的色块和空白区域,TinyChart引入视觉特征融合模块,将相似的区域融合到一起,从而有效降低了视觉特征序列长度。

TinyChart结构

如图2所示,TinyChart采用一种常见的多模态大模型(MLLM)结构,由基于ViT的视觉编码器、基于MLP的图文连接模块和大语言模型组成。不同的是,为了高效编码高清图片,TinyChart在视觉编码器的每一层中插入视觉特征融合模块(Visual Token Merging)[5]。

c04a657564b4ccfb57a491e882ba2c68.png
图2 TinyChart总览图

图3详细展示了视觉特征融合模块。它位于每层transformer的self attention和FFN之间,通过融合相似视觉特征的方式降低高分辨率图片特征的序列长度。图3(b)展示了融合过程。

首先将视觉特征对应的token分成两个互不相交的两个集合,对于其中一个集合中的每个token,从另一个集合中找到与他最相似的token并连边。然后,保留相似度最高的 𝑟 条边。

最后,将有边相连的视觉特征进行平均融合。这个过程能够以较快的速度找到相似的视觉token并进行特征融合 [5]。通过视觉特征融合,视觉序列在经过每一层处理后长度降低 𝑟 ,最终的序列长度降低 𝑁 × 𝑟 ,其中 𝑁 为ViT的层数。

ae380fc4760d7440fba883da1b033a3e.png
图3 视觉特征融合模块(a)位于每层Transformer之中(b)融合流程

程序思维链学习

TinyChart加入程序思维链方式进行训练。在进行推理时,对计算类问题可先生成Python程序,再交给Python解释器执行得到最终答案。而训练这项能力需要图片-问题-Python程序这样的数据支撑。为此,我们构建了ChartQA-PoT数据集。如图4所示,该数据集基于ChartQA [6]的图表图片,通过以下两种方式构建问题-Python程序对:

(1)基于模版的方式:构建包含placeholder的问题模版的程序模版,给定特定的图表数据,填入模版中的placeholder。

(2)基于GPT的方式:使用gpt-3.5-turbo,为ChartQA中人工标注的问题生成Python解答,并通过运行Python解释器验证答案的正确性(与标准答案进行比对)。我们将图表对应的表格数据提供给gpt-3.5-turbo,并给出相关的in-context样例促使LLM生成风格相似Python程序。

717cb204d64ef159fdaf7ed1e88650c0.png
图4 程序思维链数据集构建方式

实验结果

表1展示了TinyChart在包含图表问答、总结和图表转换等多项评测基准上的性能。只有3B参数的TinyChart在这些基准上达到了最佳性能,其中在ChartQA上甚至超过了GPT-4V、Gemini-Ultra、Qwen-VL-Max等多个闭源多模态大模型,这得益于高效的程序思维链和高分辨率视觉图片处理方法。由于较小的模型规模,TinyChart在推理时的吞吐量也远高于包含ChartLlama、ChartAst等更大规模的开源模型。

8e7e629dd3be8e8147c69c4d777f75c0.png
表1 图表理解评测

从样例中也能够看出,TinyChart能够正确理解图表内容,并完成问题回答、图表总结、图表转换和图表重绘等任务。

45b9e384fa65f6e2d11d0682e4a86b8c.jpeg
图表问题回答
f31a0243d2b16428d5930cc8a291cd4d.jpeg
图表转换
684665255e9b32ae94f767b45313ab9a.jpeg
图表总结生成
1d8b378972e2f5da51a72ebfeb428ea3.jpeg
图表重绘

总结

TinyChart是一个具有3B参数量的多模态图表理解大模型,通过程序思维链学习和视觉特征融合模块,它在图表问题回答、图表总结生成、图表转换、图表重绘等多项图表理解任务上达到最佳性能,在推理速度上有明显优势,并可以通过生成Python程序解决计算问题。不过,我们发现TinyChart在生成过程中仍然存在幻觉问题,并且目前不支持中文图表理解。团队会进一步对TinyChart进行优化,欢迎大家持续关注和友好讨论!

参考文献

[1] Kung-Hsiang Huang, Hou Pong Chan, Yi R. Fung, Haoyi Qiu, Mingyang Zhou, Shafiq Joty, Shih-Fu Chang, and Heng Ji. 2024. From Pixels to Insights: A Survey on Automatic Chart Understanding in the Era of Large Foundation Models. arXiv preprint. arXiv:2403.12027.
[2] Yucheng Han, Chi Zhang, Xin Chen, Xu Yang, Zhibin Wang, Gang Yu, Bin Fu, and Hanwang Zhang. 2023. Chartllama: A multimodal llm for chart understanding and generation. arXiv preprint. arXiv:2311.16483(2023).
[3] Fanqing Meng, Wenqi Shao, Quanfeng Lu, Peng Gao, Kaipeng Zhang, Yu Qiao, and Ping Luo. 2024. ChartAssisstant: A Universal Chart Multimodal Language Model via Chart-to-Table Pre-training and Multitask Instruction Tuning. arXiv preprint arXiv:2401.02384(2024).
[4] https://www.zhihu.com/question/612046818/answer/3438795176
[5] Daniel Bolya, Cheng-Yang Fu, Xiaoliang Dai, Peizhao Zhang, Christoph Fe- ichtenhofer, and Judy Hoffman. 2023.Token Merging: Your ViT But Faster. In The Eleventh International Conference on Learning Representations.
[6] Ahmed Masry, Xuan Long Do, Jia Qing Tan, Shafiq Joty, and Enamul Hoque. 2022. ChartQA: A Benchmark for Question Answering about Charts with Visual and Logical Reasoning. InFindings of the Association for Computational Linguistics: ACL 2022. 2263–2279.

a59f0b49dd8bc4c1cf4731d3edfff50f.jpeg

END

欢迎加入「多模态交流群👇备注:多模态

8415278f436dd32ea660c84091b8884c.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值