成果 | MatPlotAgent:大模型驱动的数据可视化智能体

学术   2024-03-19 08:00   北京  

正所谓 “一图胜千言”,数据可视化是科学研究中的一个重要过程,有助于更直接地传递复杂的信息,帮助研究人员识别复杂数据中隐含的信息。尽管有许多高级工具(如Matplotlib和Origin)可用于帮助研究人员为复杂数据分布绘制各种类型的图表,但这类工具的学习成本较高,将原始数据转换为信息丰富且易于理解的可视化图表仍然是一个耗时费力的过程。随着大模型(Large Language Models, LLMs)的发展,它们在包括推理、数学和编程等一系列复杂任务中的能力愈发强大。然而,它们在数据可视化领域的应用还未被充分探索。


针对这一问题,我组提出开源框架 MatPlotAgent。MatPlotAgent 底层由大模型驱动,旨在自动化进行数据可视化任务,全程无需人类介入,极大地提升了科学数据可视化的效率。



论文信息


 ➤  论文地址 

 🔗 https://arxiv.org/abs/2402.11453


 ➤  GitHub链接 

 🔗 https://github.com/thunlp/MatPlotAgent



MatPlotAgent与MatPlotBench

具体而言,MatPlotAgent 包含一个代码 Agent,用于理解用户意图和完成绘图任务,以及一个视觉 Agent,用于从视觉的角度给出 Visual Feedback。MatPlotAgent 可以支持多种代码大模型,包括 GPT-3.5、GPT-4 等闭源模型和 Magicoder、WizardCoder 等开源模型。视觉模型方面 MatPlotAgent 也支持 GPT-4V 和 Gemini Pro Vision 多个模型。在多个评测基准上的实验证明,MatPlotAgent 可以有效提升大模型的数据可视化能力。


为了更好地评价不同方法在数据可视化这个任务上的性能,我们提出了 MatPlotBench,这是一个针对数据可视化任务评测数据集。MatPlotBench 包含 100 个人工标准的高质量测试案例,涵盖柱状图、折线图、饼图、极坐标图、等高线图、统计图、三维图、雷达图等多种类型,并着重考核模型在形状、刻度、坐标轴、脊柱、子图、标记、文本注释等图标元素的理解和生成能力。MatPlotBench 测试集的难度分布均匀,既包含简单的测例,GPT-3.5 可以胜任的,也包含非常具有挑战性的测例,即使 GPT-4 也无法完成。同时,为了自动化定量评估不同模型的表现,我们基于 GPT-4V 设计了一个打分器。通过计算自动打分器和人工评分的相关性,我们发现基于 GPT-4V 的打分机制和人工评价具有很高的相关性,可以作为可靠的性能评估指标。



MatPlotBench的构建

MatPlotBench的构建可以分为三个部分。

 ➤  数据收集

MatPlotBench 的构建遵循了确保图表类型多样性、可视化特征的代表性以及不同难度平衡的原则。原始示例是从诸如 Matplotlib Gallery 和 OriginLab GraphGallery 等知名在线科学数据可视化论坛中精心挑选的,涵盖了从基本的条形图和折线图到更复杂和美观的图表,如桑基图和环形图等多种图表类型。这种多样性确保了基准测试对潜在科学可视化需求的全面覆盖。


 ➤  测试用例设计 

首先从选定的原始示例出发,利用大模型生成初步的 Query,然后由人工进行修订和交叉检验。对于 Matplotlib Gallery 的示例,使用 GPT-4 将原始示例中的代码转换为初步的 Query;对于 OriginLab GraphGallery 的图像示例,则使用 GPT-4V 将图像转换为初步的 Query。接下来,针对 Matplotlib Gallery 的示例,由于观察到 GPT-4 的记忆现象,进行数据替换,将原始数据替换为新生成的数据,同时保持图表类型等其他因素不变。对于 OriginLab 的示例,由于数据本身复杂性较高,GPT-4 未表现出记忆现象,因此不进行数据替换。数据替换完成后,由具有至少三年编程和自然语言处理经验的人类专家对初步 Query 进行修改,消除错误、歧义信息,并补充遗漏的重要信息。每个 Query 都由两名人工标注者进行修正。最后,由于 Matplotlib 示例中的数据已被更改,无法直接使用原始示例中的图像作为 Ground Truth,因此手动编写代码来绘制 Matplotlib示例的 Ground Truth。对于 OriginLab 的示例,由于数据保持不变,直接将从官网提取的图像作为 Ground Truth。经过这个过程最终产生了 100 个高质量的测试用例,每个用例包括一个 Query、相应的输入数据和一个 Ground Truth 参考图。下图是 MatPlotBench  中的一些测试用例。


MatPlotBench 中的一些测试用例


 ➤  自动化评价 

为实现自动定量评估,我们引入了一种利用 GPT-4V 进行自动评估的评分机制。我们将 GPT-4V 的打分结果和人工打分的结果进行对比,证明了这种方法与人类评价的分数有很强的相关性(如下图),验证了其有效性和可靠性。这种方法不仅使得我们能够自动评测模型所生成的图表质量,提供了一个标准化的性能评估指标。


人类评分和自动评分之间的相关性



MatPlotAgent的架构

MatPlotAgent通过三个关键的模块实现:(1) 能够充分理解用户提供需求的Quey扩展模块;(2) 具有迭代调试能力的代码生成模块,使用代码预处理原始数据并生成图表;(3) 具有视觉感知能力的视觉反馈模块,能够在绘制的草图中找到错误并提供视觉反馈(Visual Feedback)给代码生成模块以纠正错误,如下图。


MatPlotAgent 架构图


 ➤  Query扩展模块 

Query 扩展模块对用户 Query 进行分析。具体来说,这个模块通过提示代码大模型,将抽象的需求转换为一系列明确且详细的指令,说明如何使用代码来满足用户指定的需求,包括要导入哪些库、调用哪些库函数、如何正确设置每个函数中的参数、如何准备数据、如何操作数据等。


 ➤  代码生成模块 

代码生成模块是 MatPlotAgent 中的核心组件,负责生成绘制图表的代码。在接收到查询扩展模块提供的详细指令后,代码生成模块首先使用适当的库和函数生成代码。为了提高生成代码的成功率,我们还采用了自我调试(机制,该机制帮助参与的代码大语言模型迭代地识别和纠正代码中的错误。


 ➤  视觉反馈模块 

类似于人类需要根据当前草图反复完善图表,我们还引入了一个视觉反馈机制。该机制利用视觉大模型提供改进建议,以更好地满足用户的查询。这些建议,我们称之为“视觉反馈”(Visual Feedback),这些建议将提供给代码生成模块以进一步改进代码。具体来说,我们使用 GPT-4V 将代码生成模块得到的草图和用户查询对比,并提出改进建议。



实验结果

我们的 MatPlotAgent 框架是一种与模型无关的智能体框架,兼容现有的许多代码的大模型。对于每一个用户查询,我们对比了 3 种方法的效果:直接解码、使用 zero-shot COT 和利用 MatPlotAgent。如下表所示,我们的 MatPlotAgent 能够使有效提升大模型的数据可视化能力。在闭源模型中,GPT-4 取得最好的成绩 61.16 分,而在开源模型中 Magicoder-S-DS-6.7B 取得最好成绩 51.70 分。


实验结果


为了验证方法的通用性,我们也尝试将视觉反馈模块中的视觉模型替换为 Gemini Pro Vision。在 GPT-4 和  GPT-3.5 上,分别取得了 7.87 和 5.45 的分数提升。这也进一步证明了我们方法的通用性,可以兼容多个多模态大模型。


在Gemini Pro上的实验结果


除了 MatPlotBench 外,我们也评估了  MatPlotAgent  在 Code Interpreter Benchmark 可视化评测集上的性能。这个评测集来自阿里 Qwen 团队。我们发现在此评测集上,MatPlotAgent 同样可以取得明显的性能提升,这进一步验证了方法的有效性。


在 Qwen-Agent Code Interpreter Benchmark 上的实验结果



样例展示

下图通过实际的样例展示 Visual Feedback 的效果。可以发现,视觉反馈可以有效提升数据可视化的质量。


实际样例展示



总结与展望

我们研究了大模型的数据可视化的能力,这是一项需要编程和视觉能力的综合性任务。我们首先构建了 MatPlotBench,这是一个严格的基准,由 100 个高质量的数据可视化测例组成,支持自动化定量评估。此外,我们还提出了 MatPlotAgent,这是一种利用视觉反馈增强大模型绘图能力的框架。实验结果表明,MatPlotAgent 提高了多个大模型在数据可视化上的性能,具有良好的通用性。



作者简介


杨致宇 /

论文主要作者

北京语言大学计算机专业硕士生,THUNLP实验室实习生,在自然语言处理尤其是大语言模型智能体代码大模型多语言大模型方面有一定研究经验,研究兴趣包括大模型智能体和有监督微调等方法提升大模型能力,更好帮助人类处理复杂现实任务。


周子涵 /

论文主要作者

厦门大学信息学院人工智能系硕士生,THUNLP实验室实习生,研究方向包括代码大模型及其应用作为核心成员完成MatPlotAgent工作,有效提升了大模型完成数据可视化任务的质量。






关于我们

清华大学自然语言处理与社会人文计算实验室(TsinghuaNLP)成立于 20 世纪七十年代末,是国内开展自然语言处理研究最早、深具影响力的科研单位,也是中国中文信息学会计算语言学专业委员会及中国人工智能学会因果与不确定性人工智能专业委员会的挂靠单位。实验室在学术总体带头人孙茂松教授及学术方向带头人刘洋教授刘知远副教授的带领下,围绕以中文为核心的自然语言处理,在语言大模型、跨模态大模型、中文信息处理、机器翻译、知识图谱、智慧教育、社会人文和艺术计算等方面开展系统深入的研究,在国内外具有较大的学术影响。近年来,实验室承担了国家 973 项目、国家重点研发项目、国家社会科学基金重大项目等多项重要研究任务,并与腾讯、华为、搜狗等企业建立密切的学术合作关系。


Website:http://nlp.csai.tsinghua.edu.cn/

Email:thunlp@163.com

GitHub:https://github.com/thunlp

               https://github.com/OpenBMB

Twitter:https://twitter.com/TsinghuaNLP


THUNLP 长期开放招聘|含实习

🎓 科研团队:七大研究方向  ➤  点击阅读原文 

  • 模块化大模型

  • 数据-模型孪生技术

  • 工具学习与自主智能体

  • 大模型群体智能

  • 大模型对齐

  • 多模态大模型

  • 大模型训练动力学

💻 工程师团队                       ➤  点击阅读原文 

  • 大模型方向研究员

  • 大模型算法工程师

  • 多模态数据工程师

  • NLP算法工程师

  • 大数据基础架构高级工程师

  • 前端工程师

  • 后端工程师

  • 全栈工程师


TsinghuaNLP
清华大学自然语言处理与社会人文计算实验室,是中国中文信息学会计算语言专业委员会和中国人工智能学会不确定性专业委员会的挂靠单位。负责人为清华大学计算机科学与技术系孙茂松教授,核心骨干为刘洋教授,刘知远副教授。
 最新文章