使用大型语言模型和图像生成模型进行数据可视化生成——结合 LIDA

原文:towardsdatascience.com/data-visualization-generation-using-large-language-and-image-generation-models-with-lida-69fcf95866ee?source=collection_archive---------1-----------------------#2024-06-25

LIDA 库概述,包括如何入门、示例和未来的考虑事项

https://medium.com/@payal-patel?source=post_page---byline--69fcf95866ee--------------------------------https://towardsdatascience.com/?source=post_page---byline--69fcf95866ee-------------------------------- Payal Patel

·发布于Towards Data Science ·阅读时间 12 分钟·2024 年 6 月 25 日

最近我发现了LIDA——这是一个与语法无关的库,旨在使用大型语言模型(LLMs)和图像生成模型(IGMs)自动生成数据可视化和信息图。LIDA 支持多种大型语言模型提供商,例如 OpenAI 和 Hugging Face。在这篇文章中,我将提供该库的高层次概述,展示如何入门,列出一些示例,并分享我对在数据可视化和商业智能(BI)领域中使用 LLMs 和 IGMs 的思考与考虑。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d826a62854c7a0146b0b8618ca5a7847.png

照片来自and_machinesUnsplash

概述¹

创建数据可视化通常是一项复杂的任务——涉及数据处理、编码和设计技能。LIDA 是一个开源库,通过减少开发时间、错误数量和整体复杂性,自动化数据可视化创建过程。

LIDA 包含 4 个模块,如下图所示。每个模块在这一多阶段可视化生成方法中都有独特的作用。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3a59fdd48ac545ca16921436a912328a.png

图像来源:Victor Dibia,来自LIDA GitHub

  1. SUMMARIZER:该模块将数据转换为自然语言的摘要。摘要分为两个阶段实现。在第一阶段,基础摘要生成,应用规则从数据集中提取属性,使用 pandas 库生成一般统计数据,并从每列中提取一些样本。在第二阶段,摘要丰富,通过 LLM 或用户通过 UI 丰富来自基础摘要阶段的内容,加入数据集和字段的语义描述。¹

  2. GOAL EXPLORER:该模块根据 SUMMARIZER 模块生成的摘要创建数据探索目标。该模块生成的目标表示为 JSON 数据结构,包含问题、解决该问题的可视化和理由。¹

  3. VIZ GENERATOR:该模块由 3 个子模块组成(代码框架构造器、代码生成器和代码执行器)。该模块的目标是根据 GOAL EXPLORER 模块中的数据可视化目标规范,或根据用户创建的新可视化目标,生成、评估、修复、过滤并执行可视化代码。¹

  4. INFOGRAPHER:该模块利用 IGM 根据 VIZ GENERATOR 模块的输出,以及可视化和风格提示,创建风格化的信息图。¹

LIDA 利用了 LLM 的两项关键能力:

  1. 语言建模 —— 这些功能有助于生成语义上有意义的可视化目标。¹

  2. 代码编写(即代码生成) —— 这些功能有助于生成用于创建数据可视化的代码,随后这些代码作为输入用于图像生成模型(如 DALL-E 和 Latent Diffusion)生成风格化的信息图。¹

此外,LIDA 工具中也使用了提示工程。

“提示工程是设计、优化和完善与 AI 语言模型进行交流的提示的过程。提示是输入到 AI 系统中的问题、陈述或请求,用于引发特定的响应或输出。”²

LIDA 中结合提示工程的几种方式包括使用提示来创建和定义六个评估维度,以及用户能够指定样式提示来格式化可视化。

本文后续的示例展示了本节中提到的部分功能,您可以在此处了解更多关于 LIDA 的信息。

开始使用

有两种方式可以开始使用 LIDA —— 通过 Python API 或通过混合用户界面。此部分展示如何使用 LIDA 库中可选的捆绑 UI 和 Web API,从本地机器开始使用用户界面。

注意:在此示例中使用的是 OpenAI。如果想使用其他 LLM 提供商,或者使用 Python API,请查看 GitHub 文档 这里

步骤 1:安装必要的库

在计算机上安装以下库。

pip install lida
pip install -U llmx openai

步骤 2:创建一个变量来存储您的 OpenAI API 密钥

要创建 OpenAI API 密钥,请导航到您的个人资料 > 用户 API 密钥,然后选择**+ 创建新密钥**。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/13a7b80195d14424e7c8f61096f3da78.png

作者图片:获取 API 密钥

复制 API 密钥。在一个新的终端窗口中,将 API 密钥保存为名为OPENAI_API_KEY的变量。

export OPENAI_API_KEY=""

步骤 3:启动 UI Web 应用

从终端窗口启动 LIDA UI Web 应用,使用以下命令。

lida ui --port=8080 --docs

在 Web 浏览器中,导航到“localhost:8080*”,* 然后就可以开始了!选择Live demoDemo标签来查看 Web 应用。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/1deda8eed8d554fa2cab76ee63709641.png

作者图片:访问 LIDA Web 应用

Web 应用示例

本部分展示了一些使用来自 Kaggle 的美国票房前 10 电影数据集³的示例和提示。

步骤 1:选择可视化库/语法

在创建任何数据可视化或总结之前,选择一个可视化库。有 4 个选项可供选择:Altair、Matplotlib、Seaborn 和 GGPlot。首先,选择Seaborn —— 这是一个基于 Matplotlib 的 Python 数据可视化库。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/206ff7d5471fa98c1f32d252e6df1761.png

作者图片:选择可视化库/语法

提示: 不确定从哪个库开始?选一个,之后可以更换!即使在上传数据后,您仍然可以更改可视化库/语法。如果您在加载数据后更换库并看到错误,快速刷新应该可以解决问题。

步骤 2:查看生成设置

右侧有一个选项可以修改生成设置。在这里,您可以选择模型提供商、用于生成的模型,并调整其他字段,如最大令牌数温度消息数量。目前,可以保持默认设置。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/365f40b7a152e2ab5ba489f0eb2f56d3.png

作者图片:查看生成设置

步骤 3:上传数据

在设置基本参数后,上传数据集。点击或拖动文件将数据集上传到 Web 应用。或者,您可以使用提供的样本文件之一。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/ab02ff8718021b8c8375c8bff004e4f5.png

作者图片:上传文件

提示: 如果在尝试上传文件时遇到错误,请检查所选模型提供商的使用情况和计费权限。访问权限问题可能导致 LIDA 中的数据文件上传问题。此外,终端窗口将显示任何可能对排除问题有帮助的错误消息。

注意:请小心是否/何时切换回 LIDA 主页——这将导致丢失当前显示中的工作!

步骤 4:查看数据摘要

数据概述部分提供了数据集的描述,以及数据集中各个字段的总结,包括列类型、唯一值数量、列描述和示例值。这一输出是之前提到的总结模块的结果。

以下图片展示了美国票房前 10 名电影数据集数据概述。其中包含了整个数据集的描述,以及数据集中所有 9 列的内容。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/445cc0f6b834f829c3f0560a92b15128.png

作者提供的图片:关于“美国票房前 10 名电影数据集”的数据概述

选择**查看原始摘要?**来以 JSON 字典格式查看数据概述。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/324a74b33ed3347958143514efade886.png

作者提供的图片:查看原始摘要

第 5 步:审查目标探索

本部分展示了根据上传的数据集自动生成的目标或假设列表。每个目标都以问题的形式呈现,并包括可视化将展示的内容的描述。这一输出是之前提到的目标探索模块的结果。

在这里,你可以浏览不同的目标,并选择一个在可视化生成部分进行可视化展示。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d78a1b7d400b3cd9717fba880e3481e4.png

作者提供的图片:关于“美国票房前 10 名电影数据集”的目标探索结果

第 6 步:可视化生成

根据之前部分选择的目标目标探索,你将看到相应的可视化结果,以及用于生成该可视化的 Python 代码。

以下图片展示了目标“电影上映月份分布是怎样的?”的结果。左侧是可视化结果,一个垂直条形图,右侧是用于生成该可视化的 Python 代码。这段代码可以复制用于外部使用。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/3465a5730f6df0b8a2ed0bc1dc6bd853.png

作者提供的图片:关于“电影上映月份分布”的可视化生成输出

另外,你也可以输入一个新的可视化目标,超出目标探索部分列出的目标。

例如,以下图片展示了“预算平均值最大的前 5 个电影类型”的输出。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/711c438ccd9ef6f23c818545160efb6b.png

作者提供的图片:关于“预算平均值最大的前 5 个电影类型”的可视化生成输出

注意: 选择目标右侧的生成按钮将刷新可视化结果。这可能会导致一些细微的变化,例如颜色方案的变化。

第 7 步:可视化修改与评估

一旦生成了可视化,有四个标签可以使用:优化解释评估推荐

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/a823c2d62c642b811c2d3d4eba9930fb.png

作者提供的图片:可视化生成部分下的优化解释评估推荐标签

第一个标签,修改,使用自然语言命令修改图表。

下图显示了使用修改标签对图表“电影发行月份分布是什么?”所做的修改。图表通过自然语言命令修改,将月份按时间顺序排列,显示为水平条形图,并为每个条形添加计数值。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e68acf9d54415fd0996e3bd537d9894f.png

作者提供的图片:在“修改”标签中输入自然语言命令后的可视化生成输出

提示:确保你的样式提示清晰、简洁且具体!否则,你可能会得到扭曲的可视化效果、意外的结果,或者你的自然语言命令可能无法生成图表。记住,当写作提示时,垃圾进,垃圾出!编写提示是一门艺术,因此,编写有效的样式提示可能需要一些精细调整。

如果你需要在几个样式提示未按预期生成结果后重置可视化,请使用清除聊天历史按钮来重置可视化。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/0780134a5513a9890e0ca18ed7a86f66.png

作者提供的图片:清除聊天历史按钮

第二个标签,解释,提供关于如何创建可视化的文本解释——涉及数据转换、图表元素、代码等。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/fa9a159a684e7504e84e7a181ef49b19.png

作者提供的图片:图表解释示例

第三个标签,评估,从 6 个维度评估生成的图表:缺陷、转换、合规性、类型、编码和美学。每个维度有一个 5 分制的评分,并提供了为什么给出该评分的描述。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/f82976ba455f3783db80e447b59fe28a.png

作者提供的图片:图表评估示例

右下角有一个按钮可以自动修复图表,按钮名称为自动修复图表,如上图所示。如果你同意图表评估中提供的建议,那么这是一个快捷的修复方式!下图显示了在根据美学评估自动修复图表后更新的图表。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/d686cbfb32ccedcabd4a9bab5dfd6bf2.png

作者提供的图片:选择自动修复图表后的更新条形图

第四个标签,推荐!,生成类似的图表及相应的代码片段——这些不与初始目标绑定。这对于集思广益、思考从数据中获取的其他图表或洞见非常有用。

https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/e8c580a41e1b79ba763c04599795dbdc.png

作者提供的图片:图表推荐示例

思考与考虑事项

本节强调了在数据可视化和商业智能领域使用 LLM(大语言模型)和 IGM(智能生成模型)时需要考虑的几个方面——包括但不限于自动生成数据可视化。

评估指标

LIDA 使用两个指标——可视化错误率(VER)和自评可视化质量(SEVQ)。

VER 显示了生成的可视化中有多少导致了代码编译错误,以百分比形式表示。

SEVQ 使用大型语言模型(LLMs),例如 GPT-4,来评估生成的可视化质量。它通过对 6 个维度的平均评分来进行评估——代码准确性、数据转换、目标符合性、可视化类型、数据编码和美学。这些维度每个都根据向 LLM 提供的提示生成评分(如需查看使用的提示草图,请阅读论文此处)¹。你可能还记得,这些维度出现在 LIDA 网络应用程序的评估标签中。

这些指标评估可视化生成,并提出了一个重要观点——在评估 LLMs 和 IGMs 用于数据可视化和商业智能(BI)工具时,需要牢记这个问题。随着这一领域的不断发展,从业人员在为其组织实施 LLMs 和 IGMs 进行数据可视化和 BI 解决方案时,需要考虑以下问题——我们未来需要考虑哪些指标?需要建立哪些流程?如何确保输出是准确、可信、可解释和受治理的?

部署 — 环境设置考虑事项

在组织内部使用 LLMs 和 IGMs 进行数据可视化时,有几个方面需要考虑与部署相关的事项。

使用这些模型进行数据可视化,或者一般使用这些模型,可能需要大量资源,具体取决于模型大小、数据集大小和用户数量等因素。如果没有正确和高效的规划,这可能会导致高昂的成本。因此,确保部署正确的基础设施,以确保顺利实施是非常重要的。针对特定用例测试更精细的 LLMs,也有助于减少整体的资源消耗。

此外,在使用 LLMs 和 IGMs 进行数据可视化时,数据安全和治理也非常重要。不论使用哪种工具,确保数据在工具中是安全的,并且在使用过程中得到治理,都是至关重要的。

图表解释

如前面示例所示,LIDA 中生成的图表解释专注于图表创建的细节——包括数据转换、图表元素和生成的代码。虽然这对于开发人员使用数据集创建图表很有帮助,但这种上下文对业务用户没有太大帮助。业务用户和分析师更需要包含数据点洞察的图表解释,而不仅仅是图表元素和结构。

无论个人的角色如何,图表旁的自然语言文本都可以帮助提供数据可视化的关键洞察。目前已经有一些自然语言生成(NLG)工具能够集成到商业智能(BI)工具中。随着 LLMs、IGMs 和数据可视化解决方案的发展,看看这个领域如何持续演变将会非常有趣。

之前没见过结合 BI 的自然语言生成(NLG)吗?查看这个 GitHub 页面 快速了解一下。

展望未来,考虑最终用户并理解什么样的 LLM + IGM + 数据可视化解决方案适合该受众群体,基于他们的目标和兴趣,是至关重要的。

使用提示进行图表设计

之前的示例展示了如何使用 LLM 和 IGM 生成数据可视化图表。虽然这些图表是自动生成的,但它们仍然需要修改以确保设计良好。通常,你不能将第一个图表保持不变。这需要使用 LIDA 中的自动修复功能,虽然它能够捕捉到部分变化,但并不能覆盖所有应做的修改,同时还需要样式提示,这要求一定的数据可视化领域经验和知识。

这些样式提示由用户用自然语言输入,可以包括诸如修改图表标题、改变图表颜色或排序图表值等请求。

使用这些样式提示可以帮助用户节省时间,在开发图表时减少编写代码的时间,以及减少调试和格式化代码所需的时间。

然而,随着数据可视化生成中提示语的引入,理解什么构成一个好的提示语变得同样重要。清晰、简洁且具体的提示语将比模糊的请求产生更好的结果。不清楚的请求可能导致差的可视化效果或意外的结果。

这并不意味着我们不应该在创建数据可视化时利用提示语——而是指出,在开始时可能会有一个学习曲线。找出正确的提示语可能需要一些测试,并且需要明确表达的命令。

总的来说,LIDA 是一个很好的开源工具,适合开始学习 LLM、IGM 和数据可视化领域的一些最新进展。查看 Victor Dibia 的完整论文 这里,并试用网页应用程序或 Python API,进一步了解 LLM 和 IGM 如何改变我们创建数据可视化的方式。

Payal 是一位数据与 AI 专家。在业余时间,她喜欢阅读、旅行,并在 Medium 上写作。如果你喜欢她的作品, 关注或订阅 她的列表,永不错过任何故事!

以上文章是个人观点,不一定代表 IBM 的立场、战略或意见。

参考文献

[1]: Dibia, Victor. LIDA:一种使用大型语言模型自动生成语法无关的可视化和信息图表的工具, 微软研究院, 2023 年 5 月 8 日, aclanthology.org/2023.acl-demo.11.pdf.

[2]: Vagh, Avinash. “NLP 和提示工程:理解基础知识。” DEV 社区, DEV 社区, 2023 年 4 月 6 日, dev.to/avinashvagh/understanding-the-concept-of-natural-language-processing-nlp-and-prompt-engineering-35hg.

[3]: 影片,Will’s。“2000–2023 年美国票房前十名电影。”Kaggle,2024 年 3 月 20 日,www.kaggle.com/datasets/willsfilms/top-10-films-at-the-us-box-office-2000-2023.(CC0)

使用大规模语言模型(LLM)进行数据分析并生成分析报告可视化图表,是当前人工智能与数据科学融合的重要应用方向之一。LLM 的强大之处在于其能够理解自然语言输入,并将其转化为可执行的数据分析任务,同时还能生成高质量的可视化图表,帮助用户更直观地理解数据背后的规律。 ### 数据分析流程 LLM 在数据分析中的作用主要体现在以下几个方面: - **自然语言处理与指令解析**:用户可以通过自然语言描述数据分析需求,例如“分析销售数据中各地区的销售额占比”,LLM 会解析该指令并生成相应的分析逻辑。 - **代码生成与执行**:LLM 可以根据用户的自然语言输入自动生成 Python、SQL 等语言的代码,并在支持的环境中运行,完成数据提取、清洗、处理等任务。 - **结果解释与报告生成**:LLM 可以将分析结果以自然语言形式总结,形成结构化的分析报告,甚至包括图表说明趋势解读。 - **图表生成与交互**:结合图像生成模型(IGM)或集成可视化工具,LLM 能够生成柱状图、折线图、散点图等多种图表,并支持用户交互式调整。 ### 可视化图表生成 LLM 生成可视化图表的过程通常包括以下几个步骤: 1. **理解用户意图**:通过自然语言输入理解用户希望生成哪种类型的图表,以及涉及的数据字段。 2. **数据处理与格式化**:自动完成数据的筛选、聚合、排序等预处理操作,以适配图表生成需求。 3. **图表代码生成**:生成如 Matplotlib、Seaborn、Plotly 等库的代码,用于绘制图表。 4. **图表展示与优化**:将生成的图表呈现给用户,并根据反馈进行调整,例如颜色、标签、图例等视觉元素的优化。 以下是一个使用 Python Matplotlib 生成柱状图的示例代码: ```python import matplotlib.pyplot as plt # 示例数据 categories = ['A', 'B', 'C', 'D'] values = [23, 45, 12, 67] # 绘制柱状图 plt.bar(categories, values) plt.xlabel('类别') plt.ylabel('数值') plt.title('柱状图示例') plt.show() ``` ### 基础设施与资源规划 由于 LLM 本身模型规模较大,且在进行数据可视化或复杂分析任务时需要额外的计算资源,因此必须合理规划基础设施[^1]。例如: - **模型部署**:可以选择本地部署、云服务或混合部署方式,根据实际需求选择合适的部署方案。 - **资源分配**:为模型推理、数据处理图表生成分配足够的计算资源(如 GPU、内存)。 - **性能优化**:通过模型剪枝、量化或使用更轻量级的模型版本,降低资源占用,提高响应速度。 此外,也可以借助一些现成的工具或平台,例如: - **LIDA**:由微软研究院开发,结合 LLM 图像生成模型,实现自动化数据探索与图表生成[^2]。 - **AiPy**:一个基于 LLM 的命令行工具,支持自然语言输入并自动生成 Python 代码进行数据分析可视化[^4]。 ### 应用场景 LLM 在数据分析可视化方面的应用非常广泛,适用于以下场景: - **商业智能(BI)辅助**:快速生成销售、市场、客户行为等分析报告。 - **科研数据分析**:对实验数据进行自动化处理与可视化展示。 - **教育与培训**:帮助学生理解数据分析流程,降低编程门槛。 - **决策支持**:为管理层提供直观的图表与数据洞见,辅助战略制定。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值