MatPlotAgent: Method and Evaluation for LLM-Based Agentic Scientific Data Visualization
科学数据可视化在研究中起着至关重要的作用,它能够直接显示复杂信息并帮助研究人员识别隐性模式。尽管大型语言模型 (LLM) 很重要,但使用大型语言模型 (LLM) 进行科学数据可视化仍未得到探索。此篇论文介绍了MatPlotAgent,这是一个高效的模型无关LLM代理框架,旨在自动执行科学数据可视化任务。MatPlotAgent利用代码LLM和多模态LLM的能力,由query理解、迭代调试的代码生成和纠错的可视化反馈机制三个核心模块组成。为了解决该领域缺乏基准的问题,本篇论文还提出了 MatPlotBench,这是一个由 100 个人工验证的测试用例组成的高质量基准测试。此外,本文还介绍了一种利用 GPT-4V 进行自动评估的评分方法。实验结果表明,MatPlotAgent 可以提高各种 LLM 的性能,包括商业模型和开源模型。此外,所提出的评估方法与人工注释的分数具有很强的相关性。
研究背景
•数据可视化:原始数据 ➡️ 信息丰富且易于理解的数据
•存在的问题:
•Time-consuming
•Labor-intensive
•本文提出的MatPlotAgent利用了LLMs和multi-modal LLMs在保证精度的同时提高数据可视化的效率。
•MatPlotAgent包含三个模块:
•query understanding:理解用户提供的需求
•code generation module :用代码对原始数据进行精确预处理并生成图表
•visual feedback module:发现绘制草稿中的错误,并向代码生成模块提供视觉反馈以纠正错误
相关工作
- Code LLMs
- SantaCoder
- StarCoder
- Code Llama
- DeepSeekCoder
- Magicoder
LLM Agents
本文贡献:
- MatPlotBench:实现对科学数据可视化的AI方法的自动定量评估。
- MatPlotAgent:基于本文提出的可视化反馈机制提高各种LLM的性能
科学数据可视化任务
- 输入:
- User query x:可视化要求,包括可视化类型、要绘制的数据、单个元素或整个绘图的结构或空间要求以及美学偏好
- DataD:数据点 {d,…,d}的集合。
- AI 系统 f 应输出一个可以满足用户需求的图 V:
V = f(x, D)
MatPlotBench
Data Collection
- Principles:
- (1)涵盖多种类型:包括广泛的图表类型,不仅包括最常用的,还包括稀有但有用的;
- (2)包含代表性实例:确保测试实例反映科学数据可视化的代表性特征,如数据复杂度的多样性;
- (3)平衡简单和具有挑战性的问题:在基准测试中包括不同难度的问题。
- Selecting Original Examples :
- Matplotlib Gallery(75 examples):bars, lines, markers, pie charts, polar plots, contour plots, statistics plots, 3D plots, text annotations, radar charts, shapes, scales, axes, spines, subplots…
- OriginLab GraphGallery(25 examples):Sankey diagrams, sunburst charts, radial plots, chord diagrams, streamplots…
- Preliminary Query Generation :
- Matplotlib Gallery :使用 GPT-4 将每个原始示例中的代码转换为preliminary queries
- OriginLab GraphGallery(只有图像):使用 GPT-4V 将每个图像转换为preliminary queries
- Data Replacement:
- 对 Matplotlib 库中的示例进行数据替换,将原始数据点替换为新生成的数据点,同时保持其他因素(如绘图类型)不变。
- Human Modification:
- 注释者的任务是纠正错误、消除歧义并添加任何遗漏的基本信息。
- Updating Ground-Truth Figures:
- 手动编写代码来绘制 Matplotlib 示例的ground truth
- Human Verification:
- 检查用户查询和ground truth是否一致
- 纠正描述不当的要素和缺少的说明
- 删除冗余和不正确的描述
- 产生最终的benchmark:100 个高质量(query、原始数据、ground truth数据)三元组
Automatic Quantitative Evaluation
- Correlation with Human Evaluation :
- 从总benchmark中迭代采样一个由 𝑛 个示例组成的子集
- 使用 GPT-3.5 和 GPT-4 在 MatPlotBench 上生成图表
- 对生成的图表进行自动和人工评估
- 这个过程重复 k 次,得到每种评估类型的 k 个数据点:
- 自动评分:𝐴 = {a, · · ·, 𝑎}
- 人工评分:𝐻 = {ℎ, · · ·, ℎ}
- 利用 𝑠𝑐𝑖𝑝𝑦 提供的统计函数来计算 Pearson 相关系数 𝑟 和 p-value 𝑝:
- GPT-4:𝑟=0.876 和 𝑝=7.41𝑒−33
- GPT-3.5: 𝑟=0.836 和 𝑝=2.67𝑒−27
MatPlotAgent
- MatPlotAgent由三个模块组成:
- Query Expansion Module
- Code Agent
- Visual Agent
- Query Expansion Module
- User Query ➡️ 一系列清楚、详细的指令
- 基于LLM制定了一个生成图表的完整计划
- 调用什么库函数
- 如何正确设置每个函数中的参数
- 如何准备数据
- 如何操作数据
- Code Agent
- 详细指令 ➡️ 绘制图表的代码
- Code Generation:使用适当的库和函数生成代码
- Self-Debugging:
- Code LLM 迭代识别和纠正代码中的错误
- multi-modal LLMs提供可以更好满足用户需求的图表改进建议
Visual Agent
Setup
- Models
- code LLMs:GPT-4, GPT-3.5, Magicoder-SDS-6.7B, Deepseek-coder-6.7Binstruct, Deepseek-coder-33Binstruct, WizardCoder-Python33B-V1.1 和 CodeLlama-34BInstruct
- Visual Agent:GPT-4V 和 Gemini Pro Vision
- Evaluation
- MatPlotBench 用 GPT-4V 进行 Automatic Evaluation
- code LLM Evaluetion:
- Direct decoding:给定query,模型直接生成绘图代码
- Zero-Shot Chain-of-thought:模型使用零样本 CoT 机制进行推理
- MatPlotAgent:用MatPlotAgent 框架驱动query expansion module 和 code agent
- Main Results
- 不同 LLM 在 MatPlotBench 上的性能
- Direct decoding
- Zero-Shot CoT
- MatPlotAgent
- GPT-4 和 GPT-3.5使用 Gemini Pro Vision 作为 visual agent 的结果
- 不同 LLM 在 MatPlotBench 上的性能
- Results on Qwen-Agent Code Interpreter Benchmark
- GPT-4
- GPT-4 + MatPlotAgent
- GPT-4 + MatPlotAgent - Visual Feedback
- Ablation Study
- 视觉反馈机制的影响
- 定性分析(图 4)
- 定量分析(表 4)
- 视觉反馈机制的影响
- Case Study
- 展示了 GPT-4,GPT-3.5 和 Magicoder-S-DS-6.7B在三个难度递增case上的效果
总结
本文提出评估和增强LLM在科学数据可视化方面的能力:
科学数据可视化的需求在不同学科之间可能会有很大差异:
- MatPlotBench是为一般科学数据可视化而开发的
- MatPlotBench无法涵盖所有特定领域的要求,从而可能限制其对某些领域的适用性
✉️ yang-yi@zju.edu.cn