怎么用大模型辅助数据分析?《Demonstration of InsightPilot: An LLM-Empowered Automated Data Exploration System
》这篇论文给出一个很完整的Pipeline。
🐶 ==首先试想:如何得到数据洞察?==
日常做一个数据分析,比如,关于某城市A的销售额分析。首先会看一看A城市销售额的趋势【Step1】。
如果发现A城市1月的销售额下降了(或者是增长了),会选择其他城市(或者其他年份)做对比分析。如果其他城市都在下降,那么大概率是一个正常的趋势。但如果发现某城市B的销售额并没有下降,就可以把B城市作为对比对象,看看两者有什么差异。【Step2】
为了进一步分析差异产生的原因,需要引入两个城市的一些特征进行对比,通常可以基于业务理解,引入一些启发性的因素。比如,两个城市的天气是不是有差异;又比如,一个是旅游城市,一个是普通城市,会不会在旅游季节产生较大的销售差异。通常为了归因到是因为某因素X而导致的差异,会尽量保证A城市和B城市在其他特征上都是类似的。【Step3】
🐶 ==论文的思路==
InsightPilot:顾名思义,就是用LLM作为Pilot(领航员),按照用户的分析意图,调度三个不同的Insights Engine来给出数据洞察。
三个Insights Engine介绍如下:
🤖 QuickInsights:完成基本的数据分析。在数据集S上,按照B维度,针对M度量完成分析。【👆类似上面Step1】
🤖 MetaInsights:完成更高层面的对比分析。针对初始的分析,提出进一步的假设(hypothesis),并做进一步的验证分析。【👆类似上面Step2】
🤖 XInsights:找寻差异产生的因果关系。找到变量间定性的因果关系,据此得到对应的分析思路,执行分析并产生数据解释。【👆类似上面Step3】
另外,数据分析过程不是线性的,需要不断反复、迭代。这个过程中LLM需要判断,是不是能回答用户的问题,并按需调用不同的Insights Engine。最终把所有得到的Insights筛选、归纳后输出。
参考:
👉论文原文:
arxiv.org👉作者写的总结:
www.msra.cn