用自然语言提示词就能轻松完成UI数据可视化
编者:
各类专业咨询顾问、投资分析师、财务人员、企业经营管理人员等业务用户,如果不懂编程,如何借助AI工具像操作Excel一样更便捷地整理数据和输出自己偏好的数据UI样式?
Data Formulator的独特之处在于,它允许用户通过自然语言,将原始数据中没有的数据概念(data concept)添加到可视化映射中,从而打破现有数据格式的限制,实现更深入、更丰富的可视化设计。
数据可视化是分析数据、激发灵感的重要手段。
然而,如何有效利用AI更好地辅助数据分析师进行可视化创作,仍面临诸多挑战。尤其是在可视化创作的迭代过程(iterative process)中,我们往往无法一蹴而就。每次更新设计,都需要重新处理数据和绘制图表。当前大多数AI可视化工具都要求创作者通过文本提示(prompt)一次性描述完整的可视化需求,这不仅让描述过程变得冗长繁琐,而且难以精确传达丰富的视觉信息。更麻烦的是,当需要不断迭代更新设计时,每次都要从头描述需求,既耗时又费力,AI也未必能一次性准确完成任务。微软这次推出的开源数据可视化工具,正是为了解决这些痛点。
Data Formulator 2:用AI迭代创建丰富可视化的开源技术报告
为了创建丰富的可视化,数据分析师经常需要在数据处理和图表规范之间来回迭代。这个过程不仅要求分析师熟练掌握数据转换和可视化工具,还需要努力管理包含许多不同版本数据和图表的分支历史。最近,LLM技术驱动的人工智能系统极大改善了可视化作者的体验,例如通过LLM的代码生成能力减少手动数据转换的障碍。然而,这些系统在迭代可视化创作方面效果不佳,因为它们通常要求分析师在一个回合内提供纯文本提示,充分描述待执行的复杂可视化任务——这在许多情况下,对用户和模型来说都是不现实的。本文介绍Data Formulator 2,一个由LLM技术驱动的可视化系统,用于解决这些挑战。使用Data Formulator 2,用户通过混合UI和自然语言输入描述自己的可视化意图,并将数据转换委托给人工智能。为了支持迭代,Data Formulator 2允许用户浏览迭代历史,并重复使用先前的设计来创建新的设计,这样他们就不需要每次都从头开始。在一项包含八名参与者的用户研究中,我们观察到Data Formulator 2让参与者能够制定自己的迭代策略,完成具有挑战性的数据探索会话。
目录
1 简介
2 示例场景:探索可再生能源趋势
2.1 使用计算笔记本进行探索
2.2 Data Formulator 2的探索
2.3 探索经验的比较
3 Data Formulator 2系统设计
3.1 多模态用户界面:解耦图表规范和数据转换
3.2 数据线程:浏览迭代历史
3.3 杂项:检查结果并设置图表样式
3.4 实施
4 评估:迭代式探索性分析
4.1 研究设计
4.2 结果
5 相关工作
6 结论
致谢
参考文献
1 简介
从最初的设计理念开始,数据分析师经常需要在各种图表之间反复推敲,直到达成目标。在这个迭代过程中,除了更新图表规范,分析师还面临着转换和管理不同数据格式的挑战,以支持这些可视化设计。迭代式图表创作在探索性数据分析中很常见,分析师经常从最初的图表中发现新的方向。例如,在注意到图1关于可再生能源占比的折线图对比不同国家趋势时非常密集后,分析师可能希望对其进行过滤,仅显示排名前5的CO2排放国的趋势,或者每年可视化这些国家的排名。为了实现这些目标,分析师需要不同的数据转换:前一种需要根据每个国家的累积二氧化碳排放量来过滤数据,后一种需要按年份分割数据以计算每个国家的排名。类似的挑战也出现在数据驱动叙事背景中,作者需要推导新数据来完善图表设计(例如注释)。例如,为了突出哪些国家在可再生能源采用方面处于领先地位,作者会在折线图上叠加一个全球中位采用率的趋势线;作者可能随后将图表转换为小多面图,讲述关于每个大洲中最可持续的国家的故事。再次,这些新的设计需要从当前的结果进行数据转换。
在这些迭代的创作过程中,同时管理不同的数据和图表设计是具有挑战性的。当分析员提出新的图表设计时,他们不仅需要了解图表和工具期望的数据格式,还需要知道如何使用各种转换运算符(例如重塑、聚合)。使用数据转换工具或库(如窗口函数,字符串处理)来准备数据。已经开发出许多基于人工智能的工具来解决这些可视化挑战。这些工具让用户用自然语言描述他们的目标,并利用底层人工智能模型的代码生成能力来自动生成代码来转换数据并创建可视化结果。尽管它们取得了成功,但当前的工具在迭代式可视化创作环境中表现不佳。大多数工具要求分析员在单次输入中提供一个纯文字提示,完全描述要执行的复杂可视化创作任务,这种要求通常对用户和模型都不现实。
首先,尽管自由文本提示提供了无限的表达性,让用户描述他们的可视化意图,但它们缺乏UI交互的精确性和便利性,使用户难以清楚地描述在后续迭代阶段中提出的复杂设计。例如,用户需要详细的提示来清楚阐述他们想要在每个视觉通道中使用哪些字段以创建一个分面条形图;若没有这样的提示,AI模型可能会误解意图并创建不需要的图表,需要用户进一步澄清。系统可以为用户提供即时的视觉反馈。实际上,撰写高质量的提示需要技巧和努力。即使心中有明确的目标,对于缺乏经验的用户来说,清晰地描述他们的意图也是具有挑战性的。
现有的基于人工智能的工具仅支持单轮或线性与AI模型的交互,因此无法适应在迭代创作过程中常见的分支和回溯。要以迭代方式使用单轮文本到可视化工具,用户每次创建新设计时都需要从头重新指定他们的意图,即使设计更新仅是轻微的。这不仅对用户耗时,而且增加了AI模型无法完成任务的机会,因为模型需要在一个步骤中解决复杂的任务。虽然基于聊天的工具通过在后续轮次中重用先前的输出来支持多轮交互,但对于分支情境并不奏效。当非线性情境合并到线性历史中时,不仅用户难以沟通下一个迭代应该使用哪些设计,而且AI模型也难以正确从庞大的对话历史中检索相关内容。
为了克服这些限制,我们设计了一种新的交互方式用于迭代图表制作。关键思想是将GUI和自然语言(NL)输入相结合,使用户既能够精确地指定图表,又能够灵活地进行操作,并为用户设计了一个界面来控制上下文,使用户能够浏览和重用以前的设计,而不是每次都从头开始。我们通过概念编码架构实现了这一设计,用于指定超出数据格式约束的图表,并通过数据线索管理用户的非线性创作历史(图1)。
图表规范与混合UI和NL输入。
基于这两个关键设计,我们开发了Data Formulator 2,这是一个基于人工智能的迭代可视化工具,用于创建可视化内容。Data Formulator 2支持由Vega-Lite标记和编码提供的多样化可视化,并且人工智能可以灵活地转换数据以适应不同的设计,支持重塑、过滤、聚合、窗口函数和列派生等操作。与其他人工智能工具一样,Data Formulator 2也为用户提供面板,用于查看生成的数据、转换代码和代码解释,以便检查和验证人工智能的输出。
为了了解Data Formulator 2的多模态交互如何有助于分析人员解决具有挑战性的数据可视化任务,我们进行了一个用户研究,参与者包括八名具有不同数据科学专业知识的人员。他们被要求复现两位专业数据科学家的分析会话,共创建了16个可视化图表,其中12个需要进行非平凡的数据转换(例如,按照标准对类别进行排序,并将排名低的类别合并为一个带有标签“其他”的类别)。研究表明,参与者能够快速学习使用Data Formulator 2来解决这些复杂任务,Data Formulator 2的灵活性和表达力使参与者能够制定自己的验证、错误更正和迭代策略来完成任务。我们对研究会话的归纳分析揭示了用户对AI系统的体验和期望如何影响他们的工作方式的有趣模式。
总之,本文的主要贡献如下:
- 我们设计了一个多模态UI,由概念编码架(concept encoding shelf)和数据线程组成,以混合UI和NL交互,让用户能够指定他们的意图进行迭代图表创作。
- 我们使用交互式可视化工具Data Formulator 2来实现我们的设计,该工具使用户能够在途中进行多轮数据转换,以便迭代创建需要丰富数据转换的可视化效果。
- 我们进行了一项用户研究,以了解混合UI和自然语言交互如何使分析师在数据探索会话中受益。我们观察到,分析师可以轻松地制定自己的策略,让AI系统执行数据分析和可视化任务,最能体现他们个人的经验和对AI模型的期望。
2 示例场景:探索可再生能源趋势
在本部分中,我们描述了几种场景,以说明用户使用一个包含20个国家从2000年到2020年能源数据的数据集创建一系列可视化图表的体验。初始数据集如图2-1所示,包括每个国家每年从三个来源(化石燃料、可再生能源和核能)生产的能源量,以及年二氧化碳排放值(二氧化碳排放数据仅涵盖2000年至2019年)。我们比较了一名专业数据分析员使用计算笔记本的体验,以及一位记者使用Data Formulator 2完成图2所示的分析会话的体验。
2.1 使用计算笔记本进行探索
Heather是一名分析师,精通计算笔记本和R库,如ggplot2和tidyverse。因为ggplot2希望所有数据字段都可视化在视觉通道(例如x轴、y轴、颜色、facet)中作为输入数据的列,因此Heather使用tidyverse进行数据转换。
基本图表。
可再生能源与其他能源之间的对比
可再生能源比例和排名。
顶部二氧化碳排放量最大的国家可再生能源趋势
从这张图表可以看出,尽管总二氧化碳排放量仍在增加,但排名前列的二氧化碳排放国确实在朝着可持续性发展的方向迈进。为了发布这个可视化图表,Heather决定在图中添加一条注释,注明全球可再生能源比例的中位数。在表格5的顶部,Heather添加了每年从表格3计算出的可再生能源比例的中位数,并包括了一个新的列“全球中位数?”,用作标志以帮助绘图,以便可以将全球中位数以不同透明度着色。图表6展示了最终结果,通过将全球中位数作为一个实体并将“全球中位数?”映射到透明度,中位数可再生能源比例以不同透明度的方式呈现在其他国家之中。Heather对结果感到满意,并结束了这次会话。
2.2 Data Formulator 2的探索
Megan是一名记者,对数据可视化有着扎实的了解。她在工作中有效地利用可视化,但并不擅长编程。Megan可以使用Data Formulator 2(图3)来迭代地创建和优化丰富的可视化,该工具继承了基本的架构配置风格工具的经验。她可以通过将数据字段映射到所选图表的视觉通道来指定图表,并使用自然语言提供额外的背景信息。
基本图表。
可再生能源与其他能源之间的比较
可再生能源百分比和排名。
2020年排放最多的二氧化碳排放国家的可再生能源比例趋势。
长的提示来一次性指定任务。Megan首先使用数据线程(图3-5)来定位可再生能源百分比图表。除此之外,Megan在本地数据线程下方提供了一个新指令,“仅显示排名前5位的CO2排放国家趋势”,并点击了“推导”按钮(图5-1)。Data Formulator 2更新了先前的代码,包括一个过滤子句以生成新的数据和可视化(图5-2)。梅根继续进行迭代过程,除了前五个二氧化碳排放国家的趋势之外,还包括全局中位数趋势。由于这个新的图表需要不同的编码方式,并且她希望保留这两个可视化图表,梅根通过复制之前的图表分叉了一个分支。然后,她通过更新概念编码架构来添加一个新的编码"全局中位数?→列",并提供编辑指令“包括全局中位数作为实体”(图5-2)。一旦她点击推导按钮,Data Formulator 2会生成新的图表(图5-3)。在检查后,梅根更喜欢将全球平均值呈现在不同的透明度下合并在一个视图中。由于这两个图表需要相同的数据字段,她只需选择一个新的图表类型“自定义线”(比基本线图公开更多的图表属性),并将全局中位数?移到透明度通道。因为它不需要数据转换,Data Formulator 2不需要调用AI,直接呈现图表。所有期望的图表创建完成后,梅根结束了分析会话。图3-5显示了梅根创建的三个导致最终设计的线索。
2.3 探索经验的比较
Heather和Megan探索全球可持续性的经验(使用数据1)展示出一个固有的迭代过程。他们两人都从一个高层目标出发,没有具体设计在脑海中,逐渐从各个领域的探索中形成设计。这种迭代的探索过程需要一系列的数据转换和来源管理,因此对于不擅长数据转换和编程的人来说是具有挑战性的。在这里,我们比较他们的探索经验,突出Data Formulator 2如何弥合了Megan的技能差距,使她能够实现Heather作为经验丰富的数据分析师所进行的分析。
2.3.1 数据转换和图表创建
当考虑新设计时,Heather需要准备新数据以适应设计,即使有些设计看似接近(例如,图表3和5)。这要求她了解图表所期望的数据形状,选择正确的转换惯用语(例如,对于表2使用unpivot,对于表6使用join和union),并使用适当的运算符实现它们。一旦数据准备就绪,Heather可以通过将数据列映射到所选图表类型的可视通道来轻松指定图表。她在数据转换方面的熟练程度对于她创建丰富的可视化图形超出初始数据集至关重要。为了弥合梅根在数据转换方面的技能差距,Data Formulator 2允许梅根在统一的交互中指定她的意图,结合图表编码和自然语言,无论背后需要的数据转换类型如何,数据转换都由人工智能来完成。因为概念编码架类似于架构配置界面,梅根在Power BI中的经验能流畅过渡到Data Formulator 2。此外,由于梅根使用概念编码来传达图表设计,她只需要提供一个简短的补充自然语言指令来澄清她的意图;基于这些输入,Data Formulator 2将组装一个详细的提示来与人工智能模型进行交流。如果梅根使用纯文本界面与人工智能交互,她需要提供更详细的提示来解释她的意图以避免歧义,包括解释她从拖放交互中创建的图表编码。
2.3.2 管理分支上下文
在探索过程中,Heather多次回溯以重复利用之前的结果用于新设计(例如,图表4 → 数据3 → 图表5),途中创建了三个分支。由于Heather在笔记本中编程,她可以复制和调整以前的代码片段,或者重复使用在前几次迭代中计算的变量用于新设计。这样,尽管新设计更加复杂,Heather在规范工作方面却减少了努力。Heather的编程专长对她在线性编程环境中管理分支上下文至关重要。对于梅根来说,如果没有Data Formulator 2,管理具有不同数据版本的分支上下文可能会具有挑战性。如果梅根使用基于聊天的人工智能界面,她将需要准备详细的提示,以在每个轮次中详细解释上下文和数据转换目标,以避免额外的消除歧义的努力,特别是当多个分支混合在聊天历史记录中,并且任务后来变得更加复杂时。Data Formulator 2的数据线程解决了这一挑战。数据线程不仅为梅根提供了回顾历史记录的可视化,还让她访问以前的状态并将其重新用于新的分支,就像希瑟所做的那样。这样,梅根只需要指定要应用的更新,而不是一次性从头开始描述整个设计,人工智能模型可以更可靠地生成根据梅根提供的上下文信息的结果。如果梅根发现不希望的结果,她还可以使用数据线程(图3-3)重新运行或回溯一步来修订指令,而不是从头开始重新开始。
3 Data Formulator 2系统设计
如前所述,Data Formulator 2将UI和NL交互结合在多模态UI中,以减少分析人员的可视化创作工作,并为用户提供数据线索,以浏览迭代历史并在之前的设计基础上指定新设计。Data Formulator 2采用以下系统设计来支持这种交互:首先,为了让用户能够从不同范例(架构配置UI与NL输入)中指定图表设计和数据转换目标,Data Formulator 2将图表规范和数据转换解耦,并使用不同的技术解决它们(模板实例化与AI代码生成)。其次,为了支持重用,Data Formulator 2将迭代历史记录组织为数据线程,将数据视为第一类对象。Data Formulator 2使用户能够从不同的分支找到图表并进行跟进,或者快速修改并重新运行导致当前图表的最新指令。我们接下来详细介绍Data Formulator 2如何实现这些设计,以及为帮助用户理解人工智能生成的结果而设计的附加功能。
3.1 多模态用户界面:解耦图表规范和数据转换
Data Formulator 2将图表规范和数据转换分离,使用户既能从UI交互的精度中受益,以配置图表设计,又能从自然语言描述的表达性中指定。
 图6. Data Formulator 2的工作流程。(1) 在概念编码架上给定用户规范,Data Formulator 2首先从选定的图表类型生成一个Vega-Lite规范框架。(2) 当图表需要新字段(例如,Rank)时,Data Formulator 2从概念编码架中编译提示,并要求其AI模型生成数据转换代码,以生成所需的数据。(3) 完成后,新数据将与Vega-Lite框架实例化,以生成所需的图表。数据转换的目标。
图表规范生成。Data Formulator 2采用基于图表类型的方法来表示可视化,支持五类图表:散点图(散点图,范围点图)、折线图(折线图,虚线图)、条形图(条形图,堆叠条形图,分组条形图)、统计图(直方图,热力图,线性回归,箱线图)和自定义图表(自定义散点图,折线图,条形面积图,矩形图,适用于高级用户的所有可用可视通道均暴露出来)。每种图表类型被表示为具有一组预定义可视通道的Vega-Lite模板,包括位置通道(x,y),图例(颜色,大小,形状,透明度)和展示给用户的概念编码货架上的分面通道(列,行)。例如,一条线图被表示为一个Vega-Lite模板 {"mark": "line", "encoding" :{"x": null, "y": null, "color": null, "column": null, "row": null}},当用户选择折线图时,通道x、y、颜色、列和行显示在概念编码面板中。使用基于图表类型的设计,Data Formulator 2支持预定义的分层图表(例如,由线条和散点图组成的范围点图和线性回归图,见图7-右)。通过向库添加具有相应通道的新Vega-Lite模板,可以支持更多的图表类型(例如,指标图)。
当用户将字段拖放到概念编码架中,或者输入他们希望可视化的新字段时,Data Formulator 2将使用提供的字段实例化Vega-Lite模板。例如,如图6-1所示,当用户拖动Year→ x,Entity→ y并在y中键入Rank时,上述线型图模板将使用提供的字段被实例化:如果字段在当前数据表中可用,字段名称和编码类型都会被实例化(例如,Year类型为“时间”),否则编码类型被保留为“占位符”,以便在数据转换完成后再进行实例化。货架配置设计为用户提供了简单而精确的交互。概念编码的货架节省了用户写提示以解释图表设计的工作。图7进一步说明了规范如何实现。
 图7. 概念编码架构将用户的编码实例化为一个Vega-Lite规范。用户创建一个柱状图,显示带有“a vg”操作符的国家平均排名在y轴上,并创建一个范围点图来比较每个国家在2000年和2020年的排名(图表模板将用户的x轴编码“实体”路由到x和详细通道)。在概念编码架(Concept Encoding Shelf)中,Shelf与底层的Vega-Lite脚本相互作用。在图7的左侧,用户可以在y轴上指定一个“a vg”操作符以转换轴,该操作符在脚本中实例化为y轴的“aggregate”属性。此外,图7的右侧展示了用户与分层图表(范围点图)进行交互的另一个示例:当用户在界面中填写字段时,Data Formulator 2会将对应字段填充到预定义图表模板的不同参数中。
AI进行数据转换。
Data Formulator 2然后组装一部分上下文提示,描述要执行的数据转换上下文。当从头开始创建图表时,上下文提示描述要转换的输入数据,包括其数据字段(数据类型和示例值)以及数据的前五行。数据上下文不仅帮助LLM了解用户指定的新字段的语义,还提供与数据格式相关的基本信息(特别是数据类型、字符串格式以及列是否包含空值),以确保生成的转换代码可以在给定的数据上执行。当在先前结果的基础上指定图表时,Data Formulator 2和LLM之间关于该数据的对话历史(包括用户的指令和LLM生成的先前代码)也被添加到上下文中。这样,尽管用户的后续提示可能很短,但通过与现实背景相关的上下文,模型可以理解用户意图并重复使用先前生成的代码。
最后,Data Formulator 2组装了一个目标提示部分,结合了文本框中提供的NL指令和编码中使用的字段名。当用户跳过NL指令(如图4-3所示)时,指令部分将被简单地留空。在尝试生成数据转换代码之前,这个目标将被LLM作为系统提示的指令进一步完善。带有完整输入的Data Formulator 2促使LLM生成一个响应,包括精炼后的目标和代码。下面显示了图6中任务的LLM精炼后的目标,生成的代码显示在图6-2中。{"detailed_instruction": "计算每个国家从可再生能源中产生的电力百分比"}每年的可再生能源产量。然后,按照每年各个国家的可再生能源比例对国家进行排名。"output_fields": ["年份", "实体", "可再生能源百分比", "排名"], "visualization_fields": ["年份", "排名", "实体"], "reason": "为了实现按国家可再生能源百分比排名的目标,我们需要计算,计算每个国家每年的可再生能源百分比,然后根据这一百分比确定排名。" }
Data Formulator 2然后在输入数据上运行代码。如果代码执行无误,则使用输出数据实例化在前一步生成的Vega-Lite脚本,首先推断新生成列的语义类型(以确定它们的编码类型),然后将数据与脚本组装以呈现可视化效果(图6-3)。偶尔生成的代码可能会由于尝试使用未导入的库、引用无效的列名称或不正确处理未定义或NaN值而导致运行时错误。当出现错误时,在要求用户重试之前,Data Formulator 2尝试通过向LLM查询错误消息和后续修复指示来纠正错误。修复完成后,类似地生成可视化。无论如何,Data Formulator 2都会更新数据线程并向用户呈现结果。
3.2 数据线程:浏览迭代历史
在迭代式可视化过程中,分析师需要浏览他们的创作历史以定位相关的文物(数据或图表)以采取行动(删除、复制或后续操作)。Data Formulator 2引入数据线程来表示树形结构的迭代历史,以支持导航任务。在数据线程中,我们将数据视为第一类对象(数据线程中的节点),根据用户提供给AI模型的指令(边缘)连接这些对象,而可视化则附加到从中创建的数据版本上。围绕数据的迭代历史使用户导航受益,因为它直接反映了用户在创建这些新数据时的操作顺序。这种设计也使AI模型受益:当用户发出后续指令时,Data Formulator 2会自动检索其与AI关于当前数据的对话历史,然后指示AI模型根据检索到的历史重写代码以实现新目标。通过这种方式,AI模型不会因为错误地使用其他分支的对话历史而进行不正确的数据转换。如图8所示,代码和对话历史附加到每个数据节点上。每当用户提供后续指令时,AI模型通过更新先前的代码(可能是删除、添加或两者兼有)生成新的代码以实现用户的目标;这样,代码始终以原始数据作为输入,并且所有信息可访问。与另一种设计相比,在其他设计中,我们仅向AI模型传递当前数据并要求其编写新代码以进一步转换数据(即,重用数据而不是重用导致数据的计算)时,我们的设计更具灵活性,以适应不同风格的后续指令——无论是用户想要进一步更新数据(例如“现在,为每个国家计算平均排名”)还是修订先前的计算(例如“还要考虑核能作为可再生能源”)或创建备选方案(例如“按CO2排名”)——因为AI可以访问完整的对话历史和完整的数据集。相比之下,仅重用数据的方法会将AI模型的访问权限限制在当前数据上,从而限制其支持“回溯”或“备选设计”风格指令的能力。
 图8.数据线程和本地数据线程(右)。在数据线程中,用户可以从先前版本的数据创建新的图表,并在主面板中打开先前的图表以创建新的分支;在创建新数据时,AI模型根据用户指令进行修改先前的代码。在本地数据线程中,用户可以轻松地(1)重新运行先前的指令,(2)发出后续指令,或(3)展开先前的卡片以修改和重新运行指令。在迭代过程中,分析人员需要同时进行两方面工作:(1)定位远离当前数据或图表的数据,以在派生树中创建新分支,和(2)快速跟进/修订最新指令与最新数据。为了满足这些不同需求,Data Formulator 2呈现了全局数据线程和本地数据线程。在导航方面,主要挑战是帮助用户区分所需内容和其他内容,因此数据线程位于单独的面板中,显示数据、指令和图表的预览,以协助导航(见图3)。这种支持用户不同的导航风格,无论是他们想通过来源导航(即使用指令卡来定位所需数据)还是通过工件导航(即使用可视化快照来回忆数据语义)。一旦用户定位所需数据,他们可以单击并打开以显示在主面板中进行进一步更新的先前图表,以及直接从数据创建新图表(见图8-1)。为了支持快速从当前结果进行更新,Data Formulator 2旨在减少用户的交互开销。因此,本地数据线程被设计为主要作者面板的一部分(见图3)。本地数据线程仅可视化从初始数据到当前数据的历史,省略了图表快照以减少干扰(完整历史仍可在全局数据线程中找到)。通过将本地数据线程与概念编码架构集成,在Data Formulator 2中帮助用户理解作者环境,并使他们能够快速进行本地更新。如图8所示,用户可以重新运行先前的指令(例如,在AI生成不正确的结果时,他们想在更新指令之前快速重试),提供跟进指令以优化数据,以及快速打开先前的指令以修改并重新运行命令。使用数据线程,分析师可以管理和导航历史记录,并从先前结果中执行迭代更新,类似于数据分析师在计算笔记本中重复使用代码和数据。否则,如果分析师需要从头开始,并一次性要求AI实现目标,他们需要努力准备非常详细的提示以减少歧义,特别是在描述后续分析阶段中他们需要的更复杂图表时。
3.3 杂项:检查结果并设置图表样式
作为一种基于AI的工具,Data Formulator 2允许用户验证由AI生成的结果并纠正AI的错误。它在主面板中显示了转换后的数据、可视化、代码以及代码的解释。这种设计考虑了之前研究中确定的各种用户验证风格:例如,从图表中查看高级正确性,检查数据中的边缘情况,检查转换输出,以及从代码中理解转换过程。Data Formulator 2利用一个代码解释模块来查询AI模型,将代码翻译成逐步解释,帮助用户理解过程。此外,尽管在后续迭代阶段生成的数据转换可能很复杂,用户只需要验证其正确性与之前版本进行对比,因为Data Formulator 2用户是逐步创建可视化的。这显著降低了用户的验证工作量,正如我们在第4节中的研究中发现的那样。如前文所述,如图8所示,当用户发现错误时,他们可以利用数据线程的迭代机制重新运行、跟踪或修订指令,以纠正结果。受益于解耦的图表规范和数据转换过程,当用户希望更新可视化样式(例如更改颜色方案、更改轴的排序顺序或交换编码)而不需要额外的数据转换时,他们可以直接在概念编码架上进行编辑,通过展开通道属性并更新参数或交换编码字段。这些更新直接反映在Vega-Lite脚本中,并在主面板中呈现。与与人工智能交互的方式不同,那种方式具有稍微延迟的响应时间,这种方法允许用户通过即时视觉反馈来精确而迅速地进行编辑,以完善设计。
3.4 实施
Data Formulator 2是作为一个React Web应用程序实现的,后端Python服务器在Dv2系列CPU上运行,配备3.5 GiB RAM。Data Formulator 2已经通过了对不同版本的OpenAI模型的测试,包括GPT-3.5-turbo、GPT-4、GPT-4o和GPT-4o-mini(我们在用户研究中使用了GPT-3.5-turbo),除了GPT-4外,其他模型通常可以在10秒内响应。由于LLM生成用于操作数据的代码而不是直接消耗数据,数据大小不会影响其响应时间。由于Vega-Lite渲染开销(例如,超过20,000行的大型数据集、超过20个图表的长数据线程),Data Formulator 2有时可能会变慢,我们期望通过按需重新呈现图表来改善在部署中的性能。
4 评估:迭代式探索性分析
我们进行了一项用户研究,以了解Data Formulator 2的潜在益处和可用性问题,以及用户在探索性数据分析会话中迭代创建可视化时所开发的策略。
4.1 研究设计
参与者。在与三名志愿者对用户研究和Data Formulator 2的设计进行试点和完善后,我们从一家大公司招募了八名参与者。参与者在以下方面自评其技能(见图9):(1)图表创建 - 对图表创作工具或库有经验,(2)数据转换 - 对数据转换工具和库专业知识有经验,(3)编程,和(4)AI助手 - 对大型语言模型(如ChatGPT)和提示有经验。
设置和程序。每个研究会话在屏幕共享的情况下进行,由四个部分组成,在2小时时间段内完成。在简要介绍研究目标之后,参与者被要求按照幻灯片中呈现的教程逐步指令进行操作(约25分钟)。为了确保他们理解工具和流程,练习任务(约15分钟)在教程期间和之后呈现,参与者在完成任务时可以提问。然后,参与者被要求完成两项研究任务,只有澄清。
 图9. 参与者在图表创建、数据转换、编程和AI助手经验方面的自我报告角色和专业知识,以及他们在研究任务中所需的任务完成时间和提示。参与者允许提出问题- 当他们遇到困难时,我们记录了他们对该工具的提示请求。这两个研究任务总共涉及创建16个可视化,其中12个需要数据转换。我们鼓励参与者在执行任务时大声思考。我们通过与参与者进行总结讨论会议结束本次会议:(1)比较他们使用Data Formulator 2的经验与他们用于数据分析的工具,(2)理解他们使用Data Formulator 2的策略背后的原因,以及(3)收集对该工具的印象和改进建议。我们鼓励参与者在各个阶段之间休息。
教程和练习任务
研究任务。
图10-1展示了第一个数据探索会话:给定一个关于大学专业和收入数据的数据集(173行×7列),要求参与者创建七个可视化图表(2个基础图表 + 5个需要数据转换的图表),逐步探索收入最高的专业和女性比例与专业薪水之间的关系。探索过程要求参与者推导新字段(例如女性比例),过滤数据(按收入最高的20个专业进行过滤),推导新数据(汇总以获得收入最高的专业类别)并执行条件格式化(按照前4个类别和“其他”进行着色)。在我们的任务呈现中,我们为除最后两个可视化之外的所有图表提供了任务描述和参考图表(类似于图表重现研究),我们隐藏了最后两个可视化的参考图表,并要求参与者验证正确性,以便我们能够使用它们来探究参与者的验证策略。我们在任务描述中没有提供迭代方向(即应基于哪些图表来创建新图表),这样参与者只能在高层任务指导下开发各种迭代技术。
图10-2显示了第二次数据探索会话:给定一组电影数据,包括它们的预算和总票房。(3281行×8列),参与者被要求探索具有最高投资回报价值的电影和类型,将利润和利润比作为指标与沿途创建的9种可视化进行比较。除了两个基本的箱线图来显示预算和全球总票房分布外,其他七个图表需要数据转换,包括计算和聚合(每种类型的平均利润/利润比),字符串处理(提取年份)。
 图10.研究任务。数据集1:理解收入最高的专业和薪水与女性比例之间的关系。数据集2:探索电影类型与最佳投资回报价值(利润 vs. 利润比)和热门电影。这里的分支方向仅用于说明,不会提供给参与者;参与者会自行制定不同的迭代策略。针对趋势进行数据筛选(年份大于2000年),分区和排名(根据每个指标的前20部电影)。我们再次隐藏最后两张图表的参考,以便了解参与者的验证过程。
4.2 结果
任务完成。
迭代风格。
迭代历史的组织。
验证。
杂项。
5 相关工作
Data Formulator 2在数据转换、图表创作和基于人工智能的可视化工具的现有工作基础上进行了拓展。
LLM动态可视化工具
Data Formulator 2是一个由LLM技术驱动的工具,与LIDA和Chat2Vis类似的使用提示设计(例如,使用数据摘要来解释编写上下文),并支持自然语言交互。Data Formulator 2不仅使用自然语言输入,还将用户界面和自然语言输入融合在一起,用于图表规范化,使用户能够精确且灵活地传达其意图。这种设计与Data Formulator不同,后者的用户界面和自然语言输入工作独立:Data Formulator的自然语言界面将数据转换限制为按列计算,用户需要额外的努力才能完成其他转换,如使用不同范例(通过示例编程)单独使用用户界面进行重塑和聚合;在Data Formulator 2中统一了用户界面和自然语言交互,用户可以用更少的输入努力实现更具表现力的数据转换。Data Formulator 2的数据线程泛化了现有对话系统中使用的线性上下文,允许用户导航分支上下文,并重复使用以更好地支持迭代式可视化创作。
除了上面提到的以LLM为动力的工具外,还开发了其他人工智能和合成技术工具。神经语义解析和基于程序合成的工具也已经被开发出来来解决可视化挑战。例如,NL4DV和NcNet是基于经过训练的循环神经网络的自然语言界面(NLI),从平行的NL和图表规范语料库中训练来生成图表。NL2Vis和Graphy使用语义解析器从用户的NL查询中提取实体,并应用程序综合技术来组成图表规范。与LLM为基础的工具不同,后者可以生成通用的Python程序来支持从抽象指令中进行数据转换和可视化,基于语义解析的NLI less,需要用户提供更具体的描述,并且仅支持有限的数据转换。具体来说,这些工具需要整齐的数据输入,不支持像字符串处理、列导出和重塑这样的转换。虽然编程通过示例(PBE)技术被开发来解决图表创作中的数据重塑挑战(例如,Falx和Data Formulator的重塑模块),这些工具需要用户准备低级示例来展示转换意图,对于新用户来说可能比较困难,因为它偏离了高级可视化工作流。与LLM为基础的工具不同,用户可以直接与模型进行对话以消除输入的歧义,语义解析和基于PBE的工具开发了特殊技术来解决模棱两可的用户意图。例如,DataTone引入了消歧辨小部件,允许用户在生成的查询中选择替代提取的实体以解决不明确性,并对生成的NL查询进行释异。Falx从多个数据版本一致地生成图表。用户示例用于用户检查。受益于LLMs,Data Formulator 2支持更广泛的数据转换,不限于整洁数据。受先前工作如何展示候选结果以及解释代码来帮助用户理解系统输出的启发,Data Formulator 2显示生成的代码、数据、图表和代码解释,以帮助用户检查。为了解决模糊的输出,用户可以使用数据线索来跟踪或回溯并修改他们的指令。