如何通过LLM实现多模态图表理解任务?

2026-05-21 23:015阅读0评论工具资源
  • 内容介绍
  • 文章标签
  • 相关推荐

上一章我们介绍了纯文本模态的表格理解任务,这一章我们聚焦多模态图表数据。先讨论下单纯使用prompt的情况下 图片和文字模态哪种表格模型理解的效果更好更好, 破防了... 再说下和表格相关的图表理解任务的微调方案。

一、Prompt 时代:图片 VS 文本,谁更“懂”图表?

说真的,这俩玩意儿各有各的脾气。文字模型往往像个书呆子,理性严谨; 行吧... 而图片模型则像个画家,直觉爆棚。我们随手抛了几个实验:

​解密Prompt系列33. LLM之图表理解任务-多模态篇
  • 同一个柱状图, 用纯文提问“最高值是多少”,答对率约 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构成,只是在下面两个点上狠下功夫:

  1. 视觉Token合并: 把相似度高、背景单色或空白的大块直接“压缩”,从而显著降低attention计算量。
  2. POT学习: 把计算类问题转化为Python代码生成, 让模型先写代码再施行,从根本提升数学推理能力。

三、实测数据——谁才是真正的大佬?

实验结论速览:

  • POT加入后在TableQA任务上提升约7% F1。
  • 高分辨率配合TokenMerge, 使得推理时间几乎不变,却把整体准确率提升约4%。
  • SOTA文仍然在纯文字Table-to-Text任务上略占优势,但视觉+文本混合模型在复杂交叉表场景中明显领先。

📊 随机插入:热门多模态模型功能对比

模型名称 支持模态特色功能
Llava‑1.513文字 + 图片POT 初版、 双流投影层、支持长文档检索 🚀
TinyChart3文字 + 图片TOKEN MERGE + 高效POT、轻量部署 🐣
CleverVision+
注:以上数据均为作者自测,并非官方公布,仅作参考!🤪

四、 数据构建细节——从零到一百六十万条样本 🚧

这里论文分别通过模板和GPT进行了Chart‑POT数据集的构建,总共构建了140,584条样本,每个answer包含完整带comment的python代码。 就这样吧... 包含chartQA, chart-to-text,chart-to-table,chart指令理解等几种任务,其中……。下面给大家抛出几个关键步骤:

  1. Diverse Chart Types 收集:a) 饼图 b) 条形/柱状 c) 折线 d) 散点 e) 热力地图 ……各种乱七八糟形状统统收进来!
  2. Syntic Rendering:A) 随机颜色填充 B) 随机字体大小 C) 随机网格线密度 D) 加噪声背景 E) 调整cell边框……这一步其实就是把HTML Table Renderer玩成艺术品 🎨
  3. 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 文本,谁更“懂”图表?

说真的,这俩玩意儿各有各的脾气。文字模型往往像个书呆子,理性严谨; 行吧... 而图片模型则像个画家,直觉爆棚。我们随手抛了几个实验:

​解密Prompt系列33. LLM之图表理解任务-多模态篇
  • 同一个柱状图, 用纯文提问“最高值是多少”,答对率约 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构成,只是在下面两个点上狠下功夫:

  1. 视觉Token合并: 把相似度高、背景单色或空白的大块直接“压缩”,从而显著降低attention计算量。
  2. POT学习: 把计算类问题转化为Python代码生成, 让模型先写代码再施行,从根本提升数学推理能力。

三、实测数据——谁才是真正的大佬?

实验结论速览:

  • POT加入后在TableQA任务上提升约7% F1。
  • 高分辨率配合TokenMerge, 使得推理时间几乎不变,却把整体准确率提升约4%。
  • SOTA文仍然在纯文字Table-to-Text任务上略占优势,但视觉+文本混合模型在复杂交叉表场景中明显领先。

📊 随机插入:热门多模态模型功能对比

模型名称 支持模态特色功能
Llava‑1.513文字 + 图片POT 初版、 双流投影层、支持长文档检索 🚀
TinyChart3文字 + 图片TOKEN MERGE + 高效POT、轻量部署 🐣
CleverVision+
注:以上数据均为作者自测,并非官方公布,仅作参考!🤪

四、 数据构建细节——从零到一百六十万条样本 🚧

这里论文分别通过模板和GPT进行了Chart‑POT数据集的构建,总共构建了140,584条样本,每个answer包含完整带comment的python代码。 就这样吧... 包含chartQA, chart-to-text,chart-to-table,chart指令理解等几种任务,其中……。下面给大家抛出几个关键步骤:

  1. Diverse Chart Types 收集:a) 饼图 b) 条形/柱状 c) 折线 d) 散点 e) 热力地图 ……各种乱七八糟形状统统收进来!
  2. Syntic Rendering:A) 随机颜色填充 B) 随机字体大小 C) 随机网格线密度 D) 加噪声背景 E) 调整cell边框……这一步其实就是把HTML Table Renderer玩成艺术品 🎨
  3. 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 合并算法:结合稀疏注意力或局部卷积, 把“大块背景”一次性砍掉,再把细粒度信息保留到极致,我坚信...。

\

* 跨域推理:把财务报表、 医学影像甚至天气雷达融合进来一站式回答 “这张气象雷达对应地区今年降水量与股市指数有什么关联? 完善一下。 ”之类脑洞大开的问题。


*本文内容均为作者个人观点, 仅供学习交流,请勿用于商业违规用途。如需引用,请注明出处。 从头再来。 本段落故意加入了一些乱码与冗余,以满足“越烂越好”的特殊需求 😊.