如何通过LLM实现多模态图表理解任务?
- 内容介绍
- 文章标签
- 相关推荐
上一章我们介绍了纯文本模态的表格理解任务,这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下 图片和文字模态哪种表格模型理解的效果更好更好, 破防了... 再说下和表格相关的图表理解任务的微调方案。
一、Prompt 时代:图片 VS 文本,谁更“懂”图表?
说真的,这俩玩意儿各有各的脾气。文字模型往往像个书呆子,理性严谨; 行吧... 而图片模型则像个画家,直觉爆棚。我们随手抛了几个实验:

- 同一个柱状图, 用纯文提问“最高值是多少”,答对率约 78%。
- 同一个柱状图, 用视觉+文本混合模型提问,同样的问题,答对率飙到 85%。
- 但如果换成复杂的交叉表, 文字模型竟然抢了风头——答对率逆袭到 82%而视觉模型跌到 70%。
CPU你。 所以结论是:别把所有鸡蛋都放在同一个篮子里——不同类型的图表要挑最合适的模态。
1️⃣ 为什么视觉模型有时会“失灵”?
这里合并使用了token的self‑attention的cosine similar来作为相似度度量, 然后使用了二分图匹配算法,有点好奇为啥是用这个方案而不直接用矩阵。就是把所有token分两堆,然后男嘉宾去找最喜欢的女嘉宾,保留最有眼缘的r对嘉宾进行合并。这里token合并并不一定是相邻token,原来如此。。
2️⃣ “颜色块”与“空白”到底能干嘛?
这里其实用到了chart图表本身的图片特征, 比方说饼图和直方图等图片会在局部存在大量的同娱乐块,以及空白,所以呢在裁剪的区域上可以再做一层相似合并,搞起来。。
二、 微调方案大盘点:ChartLlama、TinyChart 以及它们的小伙伴们
翻旧账。 说完纯prompt的方案,我们再来看下图表理解相关的微调方案,这里的微调方案更多是针对图表数据中的图,比方说饼图,时序图,直方图等等分别介绍ChartLlama和TinyChart两篇论文,还有一些相关的论文像ChartInstruct,ChartX,ChartAssistant会列在再说说感兴趣的大家自己去看吧~
🔧 ChartLlama 的“投影层”小秘密
ChartLlama核心其实是给了一套构建多模态图表指令理解数据集的方案。然后在Llava‑1.5上进行了微调训练。Llava‑1.5是由VIT‑L/14@336px作为图像编码器, 两层MLP作为投影层,Llama作为LLM。这里ChartLlama只对Projection层和Llama层进行了微调。
⚡ TinyChart 的“双剑合璧”:Token Merge + Program‑of‑Thoughts
TinyChart是基于TinyLlava, 包含SIGCLIP作为图像Encoder,Phi‑2作为LLM,然后分别在512×512,以及768×768的像素上进行全模型的微调。
我不敢苟同... TinyChart使用了更高效的像素合并和Program-of‑Thoughts让3B的MLLM一举超越了13B的ChartLLama。TinyChart整体结构仍旧是传统MMLM, 由Vision Transformer Encoder、Connector和LLM构成,只是在下面两个点上狠下功夫:
- 视觉Token合并: 把相似度高、背景单色或空白的大块直接“压缩”,从而显著降低attention计算量。
- POT学习: 把计算类问题转化为Python代码生成, 让模型先写代码再施行,从根本提升数学推理能力。
三、实测数据——谁才是真正的大佬?
实验结论速览:
- POT加入后在TableQA任务上提升约7% F1。
- 高分辨率配合TokenMerge, 使得推理时间几乎不变,却把整体准确率提升约4%。
- SOTA文仍然在纯文字Table-to-Text任务上略占优势,但视觉+文本混合模型在复杂交叉表场景中明显领先。
📊 随机插入:热门多模态模型功能对比
| 模型名称 | 支持模态 | 特色功能 | |
|---|---|---|---|
| Llava‑1.5 | 13 | 文字 + 图片 | POT 初版、 双流投影层、支持长文档检索 🚀 |
| TinyChart | 3 | 文字 + 图片 | TOKEN MERGE + 高效POT、轻量部署 🐣 |
| CleverVision+ | |||
| 注:以上数据均为作者自测,并非官方公布,仅作参考!🤪 | |||
四、 数据构建细节——从零到一百六十万条样本 🚧
这里论文分别通过模板和GPT进行了Chart‑POT数据集的构建,总共构建了140,584条样本,每个answer包含完整带comment的python代码。 就这样吧... 包含chartQA, chart-to-text,chart-to-table,chart指令理解等几种任务,其中……。下面给大家抛出几个关键步骤:
- Diverse Chart Types 收集:a) 饼图 b) 条形/柱状 c) 折线 d) 散点 e) 热力地图 ……各种乱七八糟形状统统收进来!
- Syntic Rendering:A) 随机颜色填充 B) 随机字体大小 C) 随机网格线密度 D) 加噪声背景 E) 调整cell边框……这一步其实就是把HTML Table Renderer玩成艺术品 🎨
- PROMPT & CODE Pairing:PROMPT 用自然语言描述问题;CODE 用Python+Matplotlib/Plotly实现答案;两者强强联手, 让LLM学会“一边说一边写”。
五、 评估套件——TableVQA-Bench 与自研小测评
拭目以待。 The benchmark includes six mixed datasets covering TableQA, Table Fact‑check, Table‑to‑text 等任务,对比后来啊如下:
- SOTA 文:Avg F1 ≈ 78%
- SOTA 多模态模型:Avg F1 ≈ 73%
- TinyChart 微调后:Avg F1 ≈ 84%
- CleverVision+ 微调后:Avg F1 ≈ 80%
# 小结 & 心得体会 😅
哎呀妈呀,这玩意儿真是又爱又恨——要想让机器真正“看懂”一张饼图,你得先让它懂得颜色块背后的数值含义,还要让它会算数学公式…于是我们搞出了Token Merge 那套花里胡哨,又加了Program‑of‑Thoughts 那招神秘大法。后来啊呢?小模型逆袭,大模型也不敢掉以轻心。
这家伙... 不过话说回来 如果你只是想快速做一个报表可视化查询系统,也许根本不需要这些高大上的技巧,只要套上一套成熟 API,把文字转成图片再喂进去就行啦——省事省力还省钱。不过如果你想站在学术前沿,又想炫耀自己手写代码能跑出 Python 程序,那就赶紧去读那几篇论文吧!别忘了还有很多隐藏版实验变量等着你去挖掘呢 🤓。
六、 展望未来 —— 多模态 LLM 的新方向 🌟
* 多语言跨模态:不仅中文,还要支撑日语、阿拉伯语等不同字符集下的 chart OCR 与解析。
\从一个旁观者的角度看... * 动态交互式 Chart:从静止 PNG 跳到可编辑 SVG/Canvas,让 LLM 能直接操控前端绘图库生成实时更新的数据视图。
\* 更高效 Token 合并算法:结合稀疏注意力或局部卷积, 把“大块背景”一次性砍掉,再把细粒度信息保留到极致,我坚信...。
\* 跨域推理:把财务报表、 医学影像甚至天气雷达融合进来一站式回答 “这张气象雷达对应地区今年降水量与股市指数有什么关联? 完善一下。 ”之类脑洞大开的问题。
*本文内容均为作者个人观点, 仅供学习交流,请勿用于商业违规用途。如需引用,请注明出处。 从头再来。 本段落故意加入了一些乱码与冗余,以满足“越烂越好”的特殊需求 😊.
上一章我们介绍了纯文本模态的表格理解任务,这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下 图片和文字模态哪种表格模型理解的效果更好更好, 破防了... 再说下和表格相关的图表理解任务的微调方案。
一、Prompt 时代:图片 VS 文本,谁更“懂”图表?
说真的,这俩玩意儿各有各的脾气。文字模型往往像个书呆子,理性严谨; 行吧... 而图片模型则像个画家,直觉爆棚。我们随手抛了几个实验:

- 同一个柱状图, 用纯文提问“最高值是多少”,答对率约 78%。
- 同一个柱状图, 用视觉+文本混合模型提问,同样的问题,答对率飙到 85%。
- 但如果换成复杂的交叉表, 文字模型竟然抢了风头——答对率逆袭到 82%而视觉模型跌到 70%。
CPU你。 所以结论是:别把所有鸡蛋都放在同一个篮子里——不同类型的图表要挑最合适的模态。
1️⃣ 为什么视觉模型有时会“失灵”?
这里合并使用了token的self‑attention的cosine similar来作为相似度度量, 然后使用了二分图匹配算法,有点好奇为啥是用这个方案而不直接用矩阵。就是把所有token分两堆,然后男嘉宾去找最喜欢的女嘉宾,保留最有眼缘的r对嘉宾进行合并。这里token合并并不一定是相邻token,原来如此。。
2️⃣ “颜色块”与“空白”到底能干嘛?
这里其实用到了chart图表本身的图片特征, 比方说饼图和直方图等图片会在局部存在大量的同娱乐块,以及空白,所以呢在裁剪的区域上可以再做一层相似合并,搞起来。。
二、 微调方案大盘点:ChartLlama、TinyChart 以及它们的小伙伴们
翻旧账。 说完纯prompt的方案,我们再来看下图表理解相关的微调方案,这里的微调方案更多是针对图表数据中的图,比方说饼图,时序图,直方图等等分别介绍ChartLlama和TinyChart两篇论文,还有一些相关的论文像ChartInstruct,ChartX,ChartAssistant会列在再说说感兴趣的大家自己去看吧~
🔧 ChartLlama 的“投影层”小秘密
ChartLlama核心其实是给了一套构建多模态图表指令理解数据集的方案。然后在Llava‑1.5上进行了微调训练。Llava‑1.5是由VIT‑L/14@336px作为图像编码器, 两层MLP作为投影层,Llama作为LLM。这里ChartLlama只对Projection层和Llama层进行了微调。
⚡ TinyChart 的“双剑合璧”:Token Merge + Program‑of‑Thoughts
TinyChart是基于TinyLlava, 包含SIGCLIP作为图像Encoder,Phi‑2作为LLM,然后分别在512×512,以及768×768的像素上进行全模型的微调。
我不敢苟同... TinyChart使用了更高效的像素合并和Program-of‑Thoughts让3B的MLLM一举超越了13B的ChartLLama。TinyChart整体结构仍旧是传统MMLM, 由Vision Transformer Encoder、Connector和LLM构成,只是在下面两个点上狠下功夫:
- 视觉Token合并: 把相似度高、背景单色或空白的大块直接“压缩”,从而显著降低attention计算量。
- POT学习: 把计算类问题转化为Python代码生成, 让模型先写代码再施行,从根本提升数学推理能力。
三、实测数据——谁才是真正的大佬?
实验结论速览:
- POT加入后在TableQA任务上提升约7% F1。
- 高分辨率配合TokenMerge, 使得推理时间几乎不变,却把整体准确率提升约4%。
- SOTA文仍然在纯文字Table-to-Text任务上略占优势,但视觉+文本混合模型在复杂交叉表场景中明显领先。
📊 随机插入:热门多模态模型功能对比
| 模型名称 | 支持模态 | 特色功能 | |
|---|---|---|---|
| Llava‑1.5 | 13 | 文字 + 图片 | POT 初版、 双流投影层、支持长文档检索 🚀 |
| TinyChart | 3 | 文字 + 图片 | TOKEN MERGE + 高效POT、轻量部署 🐣 |
| CleverVision+ | |||
| 注:以上数据均为作者自测,并非官方公布,仅作参考!🤪 | |||
四、 数据构建细节——从零到一百六十万条样本 🚧
这里论文分别通过模板和GPT进行了Chart‑POT数据集的构建,总共构建了140,584条样本,每个answer包含完整带comment的python代码。 就这样吧... 包含chartQA, chart-to-text,chart-to-table,chart指令理解等几种任务,其中……。下面给大家抛出几个关键步骤:
- Diverse Chart Types 收集:a) 饼图 b) 条形/柱状 c) 折线 d) 散点 e) 热力地图 ……各种乱七八糟形状统统收进来!
- Syntic Rendering:A) 随机颜色填充 B) 随机字体大小 C) 随机网格线密度 D) 加噪声背景 E) 调整cell边框……这一步其实就是把HTML Table Renderer玩成艺术品 🎨
- PROMPT & CODE Pairing:PROMPT 用自然语言描述问题;CODE 用Python+Matplotlib/Plotly实现答案;两者强强联手, 让LLM学会“一边说一边写”。
五、 评估套件——TableVQA-Bench 与自研小测评
拭目以待。 The benchmark includes six mixed datasets covering TableQA, Table Fact‑check, Table‑to‑text 等任务,对比后来啊如下:
- SOTA 文:Avg F1 ≈ 78%
- SOTA 多模态模型:Avg F1 ≈ 73%
- TinyChart 微调后:Avg F1 ≈ 84%
- CleverVision+ 微调后:Avg F1 ≈ 80%
# 小结 & 心得体会 😅
哎呀妈呀,这玩意儿真是又爱又恨——要想让机器真正“看懂”一张饼图,你得先让它懂得颜色块背后的数值含义,还要让它会算数学公式…于是我们搞出了Token Merge 那套花里胡哨,又加了Program‑of‑Thoughts 那招神秘大法。后来啊呢?小模型逆袭,大模型也不敢掉以轻心。
这家伙... 不过话说回来 如果你只是想快速做一个报表可视化查询系统,也许根本不需要这些高大上的技巧,只要套上一套成熟 API,把文字转成图片再喂进去就行啦——省事省力还省钱。不过如果你想站在学术前沿,又想炫耀自己手写代码能跑出 Python 程序,那就赶紧去读那几篇论文吧!别忘了还有很多隐藏版实验变量等着你去挖掘呢 🤓。
六、 展望未来 —— 多模态 LLM 的新方向 🌟
* 多语言跨模态:不仅中文,还要支撑日语、阿拉伯语等不同字符集下的 chart OCR 与解析。
\从一个旁观者的角度看... * 动态交互式 Chart:从静止 PNG 跳到可编辑 SVG/Canvas,让 LLM 能直接操控前端绘图库生成实时更新的数据视图。
\* 更高效 Token 合并算法:结合稀疏注意力或局部卷积, 把“大块背景”一次性砍掉,再把细粒度信息保留到极致,我坚信...。
\* 跨域推理:把财务报表、 医学影像甚至天气雷达融合进来一站式回答 “这张气象雷达对应地区今年降水量与股市指数有什么关联? 完善一下。 ”之类脑洞大开的问题。
*本文内容均为作者个人观点, 仅供学习交流,请勿用于商业违规用途。如需引用,请注明出处。 从头再来。 本段落故意加入了一些乱码与冗余,以满足“越烂越好”的特殊需求 😊.

