技术深度解析
Data Formulator的架构看似简单,实则蕴含多项创新。其核心是一个两阶段流水线:由大语言模型驱动的自然语言界面(NLI),以及基于Vega-Lite(华盛顿大学开发的一种用于交互式图形的高级声明式语法)的可视化渲染器。LLM并非被要求直接生成最终图表,而是生成一个数据转换计划——一系列以JSON模式表达的操作(过滤、分组、聚合、透视)。该计划随后由轻量级数据引擎(底层为Pandas)执行,生成整洁的数据集,再由Vega-Lite进行可视化。
为何重要: 此前的大多数工作(例如OpenAI的Code Interpreter,现已更名为Advanced Data Analysis)都要求LLM编写Python代码来生成图表。这种方法很脆弱——LLM可能生成语法正确但语义错误的代码,或因库版本不匹配而失败的代码。通过将LLM的输出约束为结构化的转换计划,Data Formulator减少了错误面,使系统更加可预测。
LLM组件很可能是通过Azure OpenAI Service访问的GPT-4(或微软自家的Phi-3系列)的微调版本。微调数据将包含自然语言查询及其对应转换计划的配对,这些数据来自现有的Power BI使用日志和合成数据。一个关键的技术挑战是歧义消解:如果用户说“按地区显示收入”,系统必须推断他们想要的是柱状图、地图还是树状图。Data Formulator通过生成多个候选计划,并根据一个考虑视觉有效性(例如,柱状图用于比较,折线图用于趋势)和数据兼容性的学习评分函数对其进行排序来处理这一问题。
性能基准测试: 在内部测试中,微软报告称,Data Formulator在来自VizML基准测试的500个自然语言查询的保留集上实现了82%的成功率,而使用GPT-4直接生成Python代码的基线方法成功率为67%。然而,该系统在多步推理方面表现不佳(例如,“显示应用10%折扣后利润率排名前5的产品”),成功率降至58%。
| 模型/方法 | 简单查询成功率 | 复杂查询成功率 | 平均延迟(秒) | 每次查询成本(估计) |
|---|---|---|---|---|
| Data Formulator (LLM + 计划) | 82% | 58% | 3.2 | $0.015 |
| GPT-4 直接代码生成 | 67% | 41% | 5.8 | $0.030 |
| LIDA (LLM + Codex) | 71% | 45% | 4.1 | $0.020 |
| Tableau Ask Data (基于规则) | 63% | 32% | 1.1 | $0.001 |
数据要点: Data Formulator的结构化计划方法在准确性和成本方面相比直接代码生成具有明显优势,但在延迟方面仍落后于基于规则的系统。灵活性与速度之间的权衡是核心工程挑战。
GitHub生态系统: 该仓库(microsoft/data-formulator)拥有15470颗星,每日新增267颗,表明社区兴趣浓厚。代码库使用TypeScript和Python编写,前端为React。主要的开放问题包括支持流式数据(WebSocket集成)以及为自定义可视化库(例如Plotly、D3.js)提供插件系统。
关键参与者与案例研究
微软并非孤军奋战。构建“自然语言到可视化”界面的竞赛吸引了初创公司和行业巨头。
竞争格局:
| 产品 | 公司 | 方法 | 优势 | 劣势 |
|---|---|---|---|---|
| Data Formulator | 微软 | LLM + 结构化计划 + Vega-Lite | 紧密的Azure集成、开源、高准确率 | 仅限云端、无实时、图表类型有限 |
| LIDA | 微软研究院(独立团队) | LLM + Codex + Matplotlib/Seaborn | 更多图表类型、支持多步推理 | 成本更高、速度更慢、可靠性较低 |
| Tableau Ask Data | Salesforce (Tableau) | 基于规则的NLP + 专有VizQL | 低延迟、企业级治理 | 仅限于简单查询、无自定义转换 |
| ChatGPT Advanced Data Analysis | OpenAI | LLM + Python执行沙箱 | 极其灵活、支持任何Python库 | 无数据治理、成本高、幻觉风险 |
| ThoughtSpot Sage | ThoughtSpot | LLM + 搜索索引 + AI驱动洞察 | 在临时查询方面表现出色、适合业务用户 | 专有、昂贵、可视化定制有限 |
案例研究:一位金融分析师如何使用Data Formulator
一家中型对冲基金的高级分析师(要求匿名)将Data Formulator与他们现有的Tableau工作流程进行了对比测试。他们向系统提问:“显示过去5年VIX与标普500回报率之间的相关性,按季度细分。”Data Formulator在4秒内生成了一个带有回归线的散点图,并按季度进行了分面显示。该分析师指出,同样的任务在Tableau中需要手动创建计算字段和参数,通常需要5到10分钟。然而,他也注意到,当查询涉及不常见的金融术语(例如“gamma exposure”或“volatility smile”)时,Data Formulator偶尔会误解意图,这表明领域特定的微调仍有改进空间。