Flint:面向AI时代的可视化语言

Flint: A visualization language for the AI era

📅2026-07-09👤Microsoft ResearchMicrosoft Research
✍️翻译:DeepSeek
#实验室研究

图 1. Flint 凭借其简洁的规范支持多种可视化图表,这些图表可通过 Vega-Lite、ECharts 和 Chart.js 等可视化库进行渲染。

创建一张优秀的图表需要许多设计决策:如何解析日期、坐标轴是否应从零开始、数值如何格式化、标签需要多大空间,以及哪些颜色能让数据更易读。现代可视化库(如 Vega-Lite、Apache ECharts 和 Chart.js)提供了这些控制选项,但存在一个权衡:依赖系统默认值的简短规范通常只能生成平淡无奇的图表,而精美的可视化则需要包含精心挑选参数的详细规范,这些规范往往冗长、脆弱且容易出错。

随着大语言模型(LLM)和 AI 智能体承担更多的可视化工作,这种权衡变得愈发尖锐。当智能体必须管理复杂、底层的规范细节时,它们尤其容易出错,由此产生的脆弱代码也让人难以检查、修复或复用。理想情况下,我们需要一种介于两者之间的方案:一种智能体能够可靠生成、人类可以直接编辑的紧凑规范,并且系统能将其编译成设计精良的图表。

为了应对这一挑战,我们推出了 Flint(在新标签页中打开),这是一种面向 AI 驱动图表创建的可视化中间语言。Flint 帮助 AI 智能体从简单、可人工编辑的图表规范中创建出富有表现力且吸引人的图表。Flint 编译器无需为比例尺、坐标轴、间距和布局指定冗长的底层参数,而是从数据、语义类型、图表类型和编码中推导出优化的图表设置。同一份 Flint 规范可以通过多个后端进行渲染,包括 Vega-Lite、Apache ECharts 和 Chart.js。

图 2. Flint 将一份紧凑、可人工编辑的图表规范编译成完整的后端原生规范并渲染出可视化图表。在此热力图示例中,Flint 规范指定了语义类型(period 作为 YearMonth,newUsers 作为 Profit)并将字段映射到视觉通道。编译器推导出 Vega-Lite 的细节,包括时间解析、坐标轴格式化、色阶、单元格大小、图例配置和布局。

Flint 的工作原理

How Flint works

图 2 展示了 Flint 编译器如何将一份紧凑的图表规范转化为一张精美的热力图。

传统上,要生成一张高质量的热力图,我们需要通过底层图表属性明确告知系统如何处理 period 字段、如何正确标记 MonthYear 值、如何调整单个热力图单元格的大小,以及如何选择能恰当表示正负 newUsers 值的色阶。如果没有这些配置,可视化库只能根据字段名和原始值进行猜测,这可能导致生成的图表在技术上有效,但可能具有误导性。虽然这些细节很重要,但硬编码它们既困难又容易出错,并且会使规范变得脆弱,难以让用户理解或调整。

在 Flint 中,这些底层细节被系统化地管理,编译器从高层数据和图表规范中推断出它们。在这里,数据规范捕获语义类型和可选的元数据,而图表规范则定义图表类型并将字段映射到视觉通道,如 x、y、颜色、大小或分面。基于这些信息,编译器推导出解析规则、比例尺、坐标轴、聚合方式、格式化、配色方案、布局,并生成后端原生规范,用于渲染最终的精美可视化。这使用户无需显式设置那些脆弱且容易出错的底层细节。

此外,由于中间表示与任何单一的渲染库分离,Flint 可以针对具有截然不同 API 和编程模型的后端。用户可以在编译到 Vega-Lite、ECharts 或 Chart.js 时保留相同的紧凑图表意图,并选择功能最适合该可视化的后端。

播客系列主持人 Daniel Carpenter、Timo Minssen、Chad Atalla 和 Kathleen Sullivan 的头像插画

AI 测试与评估:来自科学与工业界的经验

AI Testing and Evaluation: Learnings from Science and Industry

了解微软如何借鉴其他领域的经验,将评估与测试作为 AI 治理的支柱加以推进。

立即收听

在新标签页中打开

Flint 用于 AI 辅助可视化

Flint for AI-assisted visualization

Flint 非常适合基于 LLM 的图表生成,因为对于模型来说,推断语义类型通常比推断全套底层可视化参数更容易。字段名、值模式以及常见的数据知识可以帮助智能体识别某列是否代表日期、价格、百分比、国家、排名或相关性。一旦这些含义变得明确,编译器就能处理许多原本会表现为脆弱、特定于库的代码的设计决策。

在我们的研究实验中,我们将 Flint 与 DirectVL 进行了比较,后者是一种基线方法,要求模型在 LLM 自我评估流程中直接生成完整的(更复杂的)Vega-Lite 规范。基于来自 Tidy Tuesdays 的测试数据,在三个测试模型上,Flint 获得了更高的 LLM 评判总分:在 GPT-5.1 上为 16.27 对 15.91,在 GPT-5-mini 上为 16.16 对 15.60,在 GPT-4.1 上为 15.91 对 15.34。事实上,Flint 非常强大且可靠,目前已被用于驱动 Data Formulator(在新标签页中打开),这是微软研究院的一个 AI 辅助数据分析和可视化项目。

为了让您的智能体能够轻松访问 Flint,我们还发布了 flint-chart-mcp,这是一个模型上下文协议(MCP)服务器,允许智能体在聊天或编码环境中创建、验证和渲染图表。MCP 调用可以内嵌数据或读取配置好的本地文件,并且该服务器可以打开一个交互式图表视图,以便用户检查和优化结果。

图 3. 一旦您在喜欢的 AI 客户端中设置好 flint-chart-mcp,智能体就能生成由 Flint 驱动的交互式可视化,以回答您的数据探索问题。

尝试使用 Flint

Try Flint

Flint 是开源的,可以立即使用:

Flint 指向了一个用于可视化的共享语义层,在这个层中,人类和 AI 智能体可以使用紧凑的图表意图进行协作,而编译器则负责处理细致的底层细节。我们邀请社区探索该项目并在此基础上进行构建。

在新标签页中打开

认识作者

Meet the authors

Chenglong Wang 的肖像

Chenglong Wang

高级研究员

了解更多

Alper Sarikaya 的肖像

Alper Sarikaya

高级数据可视化工程师

Power BI

了解更多

Scott Tsukamaki 的肖像

Scott Tsukamaki

高级技术项目经理

了解更多

Michel Galley 的肖像

Michel Galley

高级首席研究经理

了解更多

Jianfeng Gao 的肖像

Jianfeng Gao

技术院士 & 公司副总裁

了解更多

研究领域

Research Areas

  • 人工智能
  • 编程语言与软件工程

研究团队

Research Groups

  • 深度学习组

相关实验室

Related labs

  • 微软研究院 - 雷德蒙德