部分内容参考:数据智能|交互新探索:大模型时代可视化应用的交互新可能
传统的数据应用中,用户通常利用图形用户界面(GUI)对可视分析内容进行配置、编辑和交互,但面对众多的编辑选项及复杂的交互界面,相对应的使用门槛也会较高。这导致用户要么感到界面过于复杂而难以应对,想要实现一个功能往往找不到入口,要么受限于界面中固定且有限的功能选项,缺乏必要的编辑灵活性。
随着大模型技术的发展,自然语言界面(NLI)正作为一种可行的交互替代方案出现,允许用户通过自然语言来指定编辑操作,来进行可视分析。然而,自然语言界面放弃了传统GUI的优势:自由探索和重复编辑的能力,并能够看到即时的视觉反馈。因为通过语言与系统进行交互,往往需要等待一些时间,才能看到结果。
传统 GUI 界面 | 自然语言界面(NLI) | |
---|---|---|
优势 | 自由探索和重复编辑的能力,并能够看到即时的视觉反馈,且操作通常可逆 | 简单、使用门槛低 |
劣势 | 复杂、使用门槛高、灵活性有限 | 无探索入口、无实时叠加编辑的能力,无法看到即时的视觉反馈 |
GUI 为主、NLI 为辅的交互模式
GUI 与 NLI 并存的交互模式为在普通的 GUI 界面上增加 NLI 界面,使得两者并存。用户既可以通过 GUI 界面来进行编辑操作,也可以直接通过 NLI 界面发送自然语言指令。通常通过 NLI 能够成功执行的指令,在 GUI 界面也有途径能够执行成功。
PowerBI Copilot:BI场景中的问答机器人
下列是PowerBI Copilot的主要功能:
智能洞察
自定义提示: Copilot 窗口生成报告页面的摘要。支持灵活地通过自定义提示来优化摘要,例如“使用项目符号总结此页面”或“提供此页面上的销售摘要”。
交互式提问: 针对报告页面上的可视化数据提出具体问题,回复的内容包括数据引用,可溯源答案或摘要中的各部分数据源。
智能推荐
Copilot 可以根据数据推荐主题,并编写新的报告。直接在聊天中选择此选项时,Copilot 会评估数据并提供:
- 报告大纲:包含推荐的页面及其每个页面的具体内容
- 主题样式:各个页面的视觉效果
分片式提问
在报告上选择某个可视化元素,即可提问,包括:总结某个图表上的数据,观众可能会针对数据进行什么样的提问...
以可视化的方式回答
Copilot 还可以使用语义模型中的度量值和列来探索数据。询问有关报告和数据集的问题时,Copilot 会检查是否可以在报告视觉效果中找到答案。如果现有视觉效果无法回答问题,Copilot 会直接构建视觉效果。
Copilot 可以帮您处理以下类型的请求:
- 我能看到这个指标被过滤到不同的地区或时间跨度吗?
- 根据某个指标,排名靠前的类别有哪些?
- 告诉我这个测量值随着时间的推移是如何变化的。
增强问答的同义词
Copilot 可以编写同义词,您可以将其添加到问答中,以提高机器人对用户问题的理解能力。
编写 DAX 查询
DAX查询: DAX(Data Analysis Expressions)查询是在 Microsoft Power BI、Excel Power Pivot 以及 SQL Server Analysis Services Tabular 模型中用于数据分析和计算的表达式语言。
Copilot 可以编写 DAX 查询。例如,可以输入提示来描述您希望它生成什么 DAX 查询,然后选择“发送”或按 Enter。要运行返回的内容,请选择“保留”以将其添加到查询选项卡。然后选择“运行”或按 F5 以查看 DAX 查询的结果。
NLI 与 GUI 相互融合的交互模式
DynaVis:动态生成可视化UI小组件
研究动机
- 尽管现代可视化工具简化了可视化创建过程,但用户在需要对可视化进行精细调整时,往往需要在复杂的界面中寻找合适的编辑选项。
- 自然语言接口( NLI ) :作为一种替代方案,允许用户用自然语言描述编辑效果,工具根据指令自动应用编辑。但这种方法牺牲了GUI的一些优势,如即时视觉反馈和细粒度编辑。
- DynaVis的提出 :结合了自然语言和动态合成的GUI小部件,使用户能够通过自然语言描述编辑任务,同时通过交互式小部件进行进一步的编辑。
实现框架:
预处理(Pre-processing)
- 数据摘要(Data Summary) :首先,系统使用数据摘要器从用户的数据中提取关键信息,生成一个紧凑的摘要。这个摘要包括数据类型、统计信息和样本数据,为后续的自然语言处理提供上下文。
- 可视化预处理 :在发送编辑或小部件合成请求到大型语言模型(LLM)之前,系统会从可视化规范中分离数据,并去除不必要的图表属性,以防止上下文溢出,并确保渲染引擎对UI变化的响应性。
基于大型语言模型的合成(LLM-based Synthesis)
- 可视化合成(Visualization Synthesis) :图表引擎使用数据摘要、用户提示和可选的现有Vega-Lite规范,通过LLM生成Vega-Lite规范。这个过程确保生成的规范符合Vega-Lite Schema v5,并以有效的JSON格式输出。
- 动态小部件合成(Dynamic Widgets Synthesis) :小部件引擎使用数据摘要、当前的Vega-Lite图表规范和用户提示,返回小部件的组件——HTML脚本和JavaScript回调函数。这些模板确保生成的代码的可靠性和可预测性。
后处理(Post-Processing)
- 程序分析(Program Analysis) :系统通过程序分析对HTML和JS代码进行后处理,以确保代码的正确性和有效性。这包括解析HTML代码以确保ID属性之间没有冲突,以及解析JS回调函数以确保正确的函数名称和参数。
用户界面实现(User Interface Implementation)
- Web应用 :DynaVis是一个基于Web的应用,使用React和Typescript构建前端用户界面,后端服务器使用Python。
- 数据摘要器 :作为Flask web服务器实现,与前端通过REST API通信。
- LLM 交互 :使用OpenAI API与大型语言模型交互,进行自然语言处理和生成任务。
BISCUIT:在NoteBook中使用UI组件调整 LLM 生成的代码
https://arxiv.org/abs/2404.07387
研究动机
- 初学者经常在notebook中学习机器学习教程,他们通过与基于大型语言模型(LLM)的代码生成技术(如GitHub Copilot)互动来coding。然而,用户在理解和操作LLM生成的代码时遇到了困难。
- BISCUIT的介绍 :为了减轻这些挑战,论文介绍了一种新的工作流程,该流程通过在用户提示和代码生成之间增加一个额外的临时UI步骤,使用户能够通过UI脚手架来理解、指导和探索LLM生成的代码。
设计目标
- 使用UI为中心的支持来帮助理解代码 :通过动态生成的UI元素,使用户能够更直观地理解和操作代码。
- 促进用户指导代码生成 :允许用户通过UI元素指定他们想要生成的代码的细节,从而控制代码生成过程。
- 授权用户探索和扩展代码示例 :通过UI元素,用户可以尝试不同的代码变量和迭代他们的想法。
- 提供上下文内的支持 :将UI脚手架集成到JupyterLab界面中,使用户能够在他们正在工作的代码上下文中获得支持。
功能设计
- 代码上下文 :指用户希望基于现有代码单元来请求临时UI的代码。
- 用户请求 :用户通过自然语言请求来指导代码生成,这些请求与代码上下文相关。
- 临时UI :根据用户的请求和代码上下文动态生成的UI元素,使用户能够与这些元素交互,从而引导LLM生成和注入代码。
- 代码注入 :用户与UI元素的交互会导致LLM生成代码,并将其注入到笔记本中的新代码单元中。
实现细节
- 客户端-服务器通信 :用户在JupyterLab中的操作通过HTTP POST请求发送到服务器,服务器上的LLM代理处理这些请求并生成响应的UI元素或代码。
- LLM代理 :BISCUIT使用多个LLM代理来处理不同的任务,如“Advisor”提供下一步的指令,“UI Planner”描述UI元素,“UI Coder”生成实现UI元素的Python代码,以及“Code Injector”根据用户的选择生成代码。
- Gradio API :使用Gradio API来实现机器学习教程中的交互式元素,这些元素作为临时UI的一部分呈现给用户。
纯 NLI 的交互模式
DB-GPT:蚂蚁开源的AI原生数据应用开发框架
https://www.yuque.com/eosphoros/dbgpt-docs/bex30nsv60ru0fmx
架构
自下而上分别是(个人理解):
Train:底层模型,包括自然语言到SQL查询、DSL描述、可视化...的生成模型
Protocol:包含智能体工作流的相关表达,描述了不同任务对应的pipeline
Module:pipeline对应的执行逻辑
Server:不同任务的派发和调度逻辑
Application:上层应用
交互场景
最终形态与GPT对话类似,只不过在此基础上增加可视化的问答。
NLI + 无限画布
Intelligent Canvas: 支持探索性数据分析的智能画布
https://arxiv.org/pdf/2402.08812
概念提出
- 背景 :介绍了复杂数据分析的挑战,以及传统工具(如Jupyter Notebooks和Tableau)在支持探索性视觉数据分析方面的局限性。
- 线性和块状结构的限制 :像Jupyter Notebook这样的交互式工具,虽然结合了代码、数据和可视化,但它们的线性和块状结构不利于快速迭代和比较假设测试结果 。这种结构限制了用户在探索性数据分析中进行并行探索和比较的能力。
- 复杂界面的挑战 :数据分析仪表板平台(如Tableau)虽然设计用于支持并行数据显示以进行比较分析,但它们的多功能界面复杂性可能会限制所需的空间和灵活性 ,这对于“思考空间”(space to think)来说是不利的,这在探索性视觉分析中是必需的。这种复杂性可能会阻碍探索性视觉分析所需的速度和迭代性质。
- 传统工具的不足 :传统的数据分析工具通常要求用户具备一定的专业知识,以便在复杂的用户界面中找到并使用正确的编辑选项。这不仅增加了用户的学习成本,也限制了用户对数据进行直观、灵活探索的能力。
- 智能画布 :提出了一个集成生成性AI的“智能画布环境,该环境通过快速原型制作、迭代和比较可视化管理来解决现有界面的局限性。
智能画布的主要优势在:无边界式探索分析,挖掘可视化之间的关联性
交互设计
快速原型制作
原始设计(左侧):用专门的容器放置指令,并通过确认按钮进行确认
最终设计(右侧):不需要专门的容器,指令直接作为确认框的标题
快速迭代
原始设计(左侧):写完指令后,用线进行连接,来表示作用在哪个可视化上
最终设计(右侧):单击想要修改的内容,输入指令,然后修改
可视化比较+洞察内容管理
原始设计(左侧):单击和拖动单个可视化
最终设计(右侧):支持框选后,操作多个可视化
不同交互策略对应的场景和目标人群
目标用户 | 适用场景 | |
---|---|---|
GUI为主、NLI为辅 | 传统数据分析师 | 涉及复杂数据编辑的分析场景,对结果的精确性要求比较高 |
NLI、GUI相融合 | 可视化设计师 | 需要反复编辑可视化、且对配置的灵活度要求较高 |
纯NLI | 开发人员 | 对数据和分析软件的熟悉度没那么高,但又需要获取可视化信息 |
NLI + 无限画布 | 数据分析师(期望快速寻求启发和洞见) | 快速制作原型、主要用于寻找数据关联和启发,对准确性没有那么高的要求 |
Github :https://github.com/VisActor(感谢 Star)
官方网站:www.visactor.io/
Discord:discord.gg/3wPyxVyH6m
飞书群(外网):