《Computers & Graphics》:Evaluating LLMs’ abilities to create charts, a systematic approach
编辑推荐:
为评估大语言模型(LLM)在根据自然语言指令生成图表代码方面的实际能力与局限,本文进行了一项系统性研究。作者构建了一个包含29种常用图表、覆盖三种Python可视化库(Altair, Matplotlib, Plotly)的评测基准,并对包括GPT-4o、Claude、Llama 3.1、Gemini在内的七种主流LLM进行了全面测试。研究发现,即使是性能最佳的GPT-4o,其平均成功率为64.7%,最高也仅达76.8%,这表明当前LLM在图表生成任务上仍有显著的提升空间。该研究为客观评估和比较LLM的图表生成能力提供了可复现的基准和方法,对推进AI辅助数据可视化工具的研发具有重要意义。
在数据驱动的时代,图表是揭示信息、讲述故事的有力工具。随着生成式人工智能的崛起,像ChatGPT这样的对话式大语言模型(LLM)已被开发者甚至普通用户直接用于生成可视化代码,期望能“动动嘴皮子”就得到理想的图表。然而,这股热潮背后潜藏着不确定性:这些模型真的能可靠地理解我们的意图并生成正确的图表吗?它们的“作品”质量如何?不同模型之间孰优孰劣?由于LLM固有的随机性(同一指令可能产生不同输出)和“幻觉”倾向(生成看似合理实则错误的内容),这些问题亟待解答。尽管已有一些工具(如NL4DV、Lida)致力于将自然语言转为图表,但对LLM本身制图能力的系统性评估却一直缺失,导致我们对其实际能力和边界认知模糊。
为了填补这一空白,一项发表在《Computers & Graphics》上的研究为我们带来了深入的洞察。由Maria Ribalta-Albado和Pere-Pau Vázquez完成的工作,首次对主流LLM的图表生成能力进行了大规模、系统性的实证评估。研究旨在回答:给定具体的数据和图表类型,当前顶尖的LLM能多准确地生成可运行的、正确的可视化代码?
为了回答这些问题,研究人员开展了一项精心设计的研究。他们构建了一个包含29种常见图表(从基础的柱状图、散点图到分组条形图、热图、地理符号地图等)的测试集,并为每种图表准备了对应的匿名数据集(CSV文件)。研究选取了三种广泛使用的Python可视化库(Altair, Matplotlib, Plotly)作为目标。评估对象涵盖了七种代表性的LLM,包括GPT-4o、Claude-3 Opus、CodeLlama、Gemini、Gemma、Llama 3.1和Mixtral。研究方法的核心是设计一套半自动化的提示生成流程,为每个“图表-库”组合生成五种不同表述的自然语言指令,要求模型使用指定列(以A、B、C代指,并说明数据类型)从特定CSV文件生成图表。所有指令通过API(OpenRouter.ai和Groq)发送,每个组合执行五次以评估随机性。最后,对生成的代码进行自动化运行检查和手动结果验证,依据“无法运行”、“可运行但图表错误”、“可运行且图表正确”三个等级进行评判。
本研究主要采用了构建系统性评测基准、半自动化提示工程与多轮测试、以及结合自动执行与手动验证的评估方法。关键技术在于设计了一套与具体数据集内容解耦的、中立的提示模板,以防止模型“记忆”特定数据而产生偏见。此外,研究还针对表现最佳的模型(GPT-4o),进一步测试了其对21种常见视觉变量(如颜色、标题、网格线)进行配置的能力。
研究结果
图表生成能力总体表现不佳
对所有模型和库的聚合分析显示,没有一种图表能被所有模型正确生成的成功率超过75%。即使是最常见的柱状图、面积图、饼图和散点图,成功率也仅在58%至75%之间。需要三个或更多变量的图表(如分组条形图、堆叠条形图)以及地图类图表(如分级符号地图)表现尤其差。这表明当前LLM在图表生成上的能力远未达到可靠水平。
模型性能差异显著
在测试的七种LLM中,GPT-4o和Claude-3 Opus是表现最好的两个模型,而Gemma和Mixtral表现最差。GPT-4o在所有库上的平均成功率为64.7%,在使用Plotly时最高达到76.8%。Claude Opus紧随其后。相比之下,较小的模型如Gemma(7B参数)在许多图表上的成功率为0%。模型性能与其规模、训练数据量大致正相关,但即使是最先进的模型也有很大改进空间。
可视化库选择影响结果
研究比较了Altair、Matplotlib和Plotly三个库。总体而言,Matplotlib和Plotly的表现优于Altair,平均成功率分别为44.14%和42.27%,而Altair为34.09%。研究者认为,这可能是因为Matplotlib(2002年发布)和Plotly(2013年发布)更为古老和流行,在训练数据中出现的频率更高。然而,对于表现最好的GPT-4o,使用Plotly库时取得了最高成功率(82.07%)。
视觉变量配置能力参差不齐
针对GPT-4o在六种常见图表上配置21种视觉变量的测试显示,模型对某些配置的掌握很好,但对另一些则存在困难。例如,“添加标题”和“切换网格线”在所有图表和库中都能被正确配置。然而,像“设置条形宽度”、“应用特定的分类颜色调色板(用于散点图)”等配置则经常失败。不同图表类型和不同库对同一配置指令的响应成功率也存在差异,表明模型对库API细节的理解不够深入和一致。
错误类型分析
对生成代码的错误分析揭示了LLM的常见问题。约7.21%的脚本出现了读取CSV文件的错误,主要是因为模型错误地假设了不存在的read_csv函数(该函数属于pandas库而非绘图库)。此外,大量的“未定义名称”错误(5.1%)和无效语法错误(3.44%)表明模型在代码逻辑和API调用上存在“幻觉”。对于不常见的图表类型,模型经常生成不存在的标记函数(如mark_bullet)。
研究结论与意义
本研究通过构建一个系统性的评测框架,首次大规模评估了主流LLM在图表生成任务上的能力。核心结论是:即使是最先进的LLM,在根据自然语言指令生成准确图表代码方面,仍然存在显著不足,平均成功率远未达到实用水平。研究明确了不同模型(GPT-4o、Claude Opus领先)、不同图表类型(基础图表尚可,复杂图表困难)以及不同可视化库(Matplotlib/Plotly优于Altair)之间的性能差异。
这项研究的重要意义在于:首先,它为LLM的图表生成能力提供了一个客观、可复现的评估基准和数据集,弥补了该领域系统性评估的空白。其次,研究结果揭示了当前技术的局限,为LLM开发者和可视化工具设计者指明了明确的改进方向,例如需要加强对复杂图表、地理空间数据以及特定库API细节的理解和生成能力。最后,该研究提醒用户和开发者,目前直接依赖LLM生成可视化代码仍需谨慎,其结果必须经过人工验证,这有助于推动更稳健、可靠的AI辅助可视化系统的开发。研究释放的所有代码和脚本,也为社区进一步测试和比较新模型提供了便利,将持续推动这一交叉领域的发展。