TinyChart: Efficient Chart Understanding with Visual Token Merging and Program-of-Thoughts Learning

📄 arXiv: 2404.16635v1 📥 PDF

作者: Liang Zhang, Anwen Hu, Haiyang Xu, Ming Yan, Yichen Xu, Qin Jin, Ji Zhang, Fei Huang

分类: cs.CV

发布日期: 2024-04-25

备注: 13 pages, 11 figures

🔗 代码/项目: GITHUB


💡 一句话要点

提出TinyChart以解决资源受限环境下的图表理解问题

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 图表理解 多模态大型语言模型 程序思维学习 视觉令牌合并 高效推理 数据分析 机器学习

📋 核心要点

  1. 现有的多模态大型语言模型在图表理解任务中表现优异,但其庞大的参数和计算需求限制了在资源受限环境中的应用。
  2. TinyChart通过程序思维学习策略生成Python程序来处理数值计算,并采用视觉令牌合并模块来优化视觉特征序列。
  3. TinyChart在多个图表理解基准上表现出色,超越了多款参数更高的模型,且在推理过程中展现出更高的效率。

📝 摘要(中文)

图表在呈现和解释复杂数据关系中至关重要。近年来,多模态大型语言模型(MLLMs)在各种图表理解任务中表现出色。然而,这些模型的参数规模和计算需求限制了它们在资源受限环境中的应用。本文提出了TinyChart,一个仅有30亿参数的高效MLLM,旨在解决图表理解中的两个关键挑战:通过程序思维(PoT)学习策略减少数值计算的学习负担,以及通过视觉令牌合并模块减少高分辨率图像产生的冗长视觉特征序列。实验表明,TinyChart在多个图表理解基准上达到了SOTA性能,超越了多款参数高达130亿的图表理解MLLM,如ChartLlama和ChartAst,以及封闭源的通用MLLM GPT-4V。

🔬 方法详解

问题定义:本文旨在解决在资源受限环境中进行高效图表理解的问题。现有的多模态大型语言模型由于参数量大和计算需求高,难以在此类环境中应用。

核心思路:TinyChart通过引入程序思维(PoT)学习策略,训练模型生成Python程序以进行数值计算,从而减轻学习负担。同时,采用视觉令牌合并模块,逐步合并相似的视觉令牌,以减少高分辨率图像的视觉特征序列长度。

技术框架:TinyChart的整体架构包括两个主要模块:程序思维学习模块和视觉令牌合并模块。前者负责生成数值计算的Python程序,后者则优化视觉特征的表示。

关键创新:TinyChart的主要创新在于其程序思维学习策略和视觉令牌合并模块,这两者显著提高了图表理解的效率和准确性,与现有方法相比,减少了计算复杂度和内存占用。

关键设计:在模型设计中,TinyChart采用了30亿参数的结构,优化了损失函数以适应程序生成任务,并在视觉特征提取中引入了高效的视觉令牌合并机制,以提升推理速度和准确性。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

TinyChart在多个图表理解基准上取得了SOTA性能,超越了参数高达130亿的模型,如ChartLlama和ChartAst。在ChartQA任务中,TinyChart的表现甚至接近封闭源的GPT-4V,且在推理过程中展现出更高的吞吐量,证明了其高效性。

🎯 应用场景

TinyChart在数据分析、商业智能、教育等领域具有广泛的应用潜力。其高效的图表理解能力可以帮助用户快速获取数据洞察,支持决策制定,并在资源受限的设备上实现实时分析,具有重要的实际价值和未来影响。

📄 摘要(原文)

Charts are important for presenting and explaining complex data relationships. Recently, multimodal large language models (MLLMs) have shown remarkable capabilities in various chart understanding tasks. However, the sheer size of these models in terms of parameters and computational requirements limits their use in resource-constrained environments. In this paper, we present TinyChart, an efficient MLLM for chart understanding with only 3B parameters. TinyChart overcomes two key challenges in efficient chart understanding: (1) reduce the burden of learning numerical computations through a Program-of-Thoughts (PoT) learning strategy, which trains the model to generate Python programs for numerical calculations, and (2) reduce lengthy vision feature sequences produced by the vision transformer for high-resolution images through a Vision Token Merging module, which gradually merges most similar vision tokens. Extensive experiments demonstrate that our 3B TinyChart achieves SOTA performance on a variety of chart understanding benchmarks including ChartQA, Chart-to-Text, Chart-to-Table, OpenCQA, and ChartX. It outperforms several chart understanding MLLM with up to 13B parameters such as ChartLlama and ChartAst, and close-sourced general-purpose MLLM GPT-4V on ChartQA. It also demonstrates its superior efficiency with higher throughput during inference due to a smaller model scale and more efficient vision encoding. Our code and model are available at https://github.com/X-PLUG/mPLUG-DocOwl/tree/main/TinyChart.