论文阅读 LIDA
· 阅读时间约 7 分钟
TLDR
LIDA 是一种新型工具,用于生成与语法无关的可视化和信息图表。它解决了自动化可视化创建中的几个关键挑战:
- 理解数据语义
- 枚举可视化目标
- 生成可视化规范
该系统使用由大型语言模型(LLMs)和图像生成模型(IGMs)驱动的多阶段流程。它由 4 个主要模块组成:
- SUMMARIZER:将数据转换为简洁的自然语言摘要
- GOAL EXPLORER:基于数据识别潜在的可视化目标
- VISGENERATOR:处理可视化代码生成、优化和过滤
- INFOGRAPHER:使用 IGMs 创建数据驱动的风格化图形
LIDA 提供了 Python API 和交互式用户界面,支持直接操作和多语言自然语言,用于生成图表、信息图表和数据故事。

论文
笔记
流程
按照 GitHub 仓库中的说明,我们可以克隆源代码并在我们的开发环境中本地设置 LIDA。这使我们能够亲自体验和探索 LIDA 的功能。
-
选择可视化库/语法并配置大型语言模型。由于默认模型已弃用,您需要从可用选项中选择一个新模型。

-
从示例数据集中选择或上传您自己的自定义数据进行可视化。

-
查看自动生成的数据摘要,了解数据集中的关键特征和模式。

-
从基于数据摘要生成的建议中选择可视化目标。

-
查看为匹配所选目标而自动生成的可视化。

-
通过交互式编辑工具优化和自定义可视化。

代码
LIDA 是如何工作的? 它可能没有您想象的那么复杂。
Manager 类
# Visualization manager class that handles the visualization of the data with the following methods
# summarize data given a df
# generate goals given a summary
# generate generate visualization specifications given a summary and a goal
# execute the specification given some data
def __init__(self, text_gen: TextGenerator = None) -> None:
"""
Initialize the Manager object.
Args:
text_gen (TextGenerator, optional): Text generator object. Defaults to None.
"""
self.text_gen = text_gen or llm()
self.summarizer = Summarizer()
self.goal = GoalExplorer()
self.vizgen = VizGenerator()
self.vizeditor = VizEditor()
self.executor = ChartExecutor()
self.explainer = VizExplainer()
self.evaluator = VizEvaluator()
self.repairer = VizRepairer()
self.recommender = VizRecommender()
self.data = None
self.infographer = None
self.persona = PersonaExplorer()