一种新工具使数据库用户可以更轻松地对表格数据执行复杂的统计分析,而无需了解幕后发生的情况。
GenSQL是一种用于数据库的生成式AI系统,它可以帮助用户只需按几下键就可以做出预测、检测异常、猜测缺失值、修复错误或生成合成数据。
例如,如果该系统用于分析一直患有高血压的患者的医疗数据,它可以捕捉到该患者血压偏低但在正常范围内的血压读数。
GenSQL自动集成表格数据集和生成概率AI模型,可以解释不确定性并根据新数据调整其决策。
此外,GenSQL还可用于生成和分析模拟数据库中真实数据的合成数据。这在敏感数据无法共享(例如患者健康记录)或真实数据稀疏的情况下尤其有用。
这个新工具建立在SQL之上,SQL是一种用于数据库创建和操作的编程语言,于20世纪70年代末推出,被全球数百万开发人员使用。
“从历史上看,SQL教会了商界计算机可以做什么。他们不必编写自定义程序,只需用高级语言向数据库提问即可。
“我们认为,当我们从仅仅查询数据转向询问模型和数据时,我们将需要一种类似的语言,教会人们可以向具有数据概率模型的计算机提出连贯的问题,”介绍GenSQL的论文的高级作者,麻省理工学院大脑和认知科学系概率计算项目的首席研究科学家和负责人VikashMansinghka说。
该项研究发表在《ACM程序设计语言学报》上。
当研究人员将GenSQL与流行的基于AI的数据分析方法进行比较时,他们发现GenSQL不仅速度更快,而且能产生更准确的结果。重要的是,GenSQL使用的概率模型是可解释的,因此用户可以阅读和编辑它们。
“仅使用一些简单的统计规则来查看数据并尝试找到一些有意义的模式可能会错过重要的相互作用。你真正想要的是在模型中捕捉变量的相关性和依赖性,这可能非常复杂。
“借助GenSQL,我们希望使大量用户能够查询他们的数据和模型,而无需了解所有细节,”大脑和认知科学系研究科学家兼概率计算项目成员、主要作者MathieuHuot补充道。
与他们一起撰写论文的还有麻省理工学院研究生MatinGhavami和AlexanderLew、研究科学家CameronFreer、DigitalGarage的UlrichSchaechtel和ZaneShelby、麻省理工学院电子工程与计算机科学系教授兼计算机科学与人工智能实验室(CSAIL)成员MartinRinard以及卡内基梅隆大学助理教授FerasSaad。
该研究最近在ACM编程语言设计和实现会议(PLDI2024)上进行了展示。
结合模型和数据库
SQL是结构化查询语言的缩写,是一种用于在数据库中存储和操作信息的编程语言。在SQL中,人们可以使用关键字询问有关数据的问题,例如对数据库记录进行求和、过滤或分组。
然而,查询模型可以提供更深入的见解,因为模型可以捕捉数据对个人意味着什么。例如,一位女性开发人员想知道她是否被低估,她可能更感兴趣的是工资数据对她个人意味着什么,而不是数据库记录中的趋势。
研究人员注意到,SQL没有提供整合概率AI模型的有效方法,但同时,使用概率模型进行推理的方法不支持复杂的数据库查询。
他们构建了GenSQL来填补这一空白,使人们能够使用简单但功能强大的形式编程语言查询数据集和概率模型。
GenSQL用户上传他们的数据和概率模型,系统会自动集成这些模型。然后,她可以对数据运行查询,这些数据也会从后台运行的概率模型中获取输入。这不仅可以实现更复杂的查询,还可以提供更准确的答案。
例如,GenSQL中的查询可能是这样的:“西雅图的开发人员知道编程语言Rust的可能性有多大?”仅查看数据库中列之间的相关性可能会错过微妙的依赖关系。结合概率模型可以捕捉更复杂的交互。
此外,GenSQL使用的概率模型是可审计的,因此人们可以看到模型使用哪些数据进行决策。此外,这些模型还提供了校准不确定性的度量以及每个答案。
例如,有了这种经过校准的不确定性,如果有人向模型查询来自数据集中代表性不足的少数群体患者的不同癌症治疗的预测结果,GenSQL会告诉用户这是不确定的,以及不确定的程度,而不是过于自信地主张错误的治疗方法。
更快、更准确的结果
为了评估GenSQL,研究人员将他们的系统与使用神经网络的流行基线方法进行了比较。GenSQL比这些方法快1.7到6.8倍,在几毫秒内执行大多数查询,同时提供更准确的结果。
他们还在两个案例研究中应用了GenSQL:一个案例中系统识别出错误标记的临床试验数据,另一个案例中系统生成了准确的合成数据,捕捉了基因组学中的复杂关系。
接下来,研究人员希望更广泛地应用GenSQL来对人类群体进行大规模建模。借助GenSQL,他们可以生成合成数据来推断健康和薪水等信息,同时控制分析中使用的信息。
他们还希望通过为系统添加新的优化和自动化功能,使GenSQL更易于使用且功能更强大。从长远来看,研究人员希望让用户能够在GenSQL中进行自然语言查询。他们的目标是最终开发一个类似ChatGPT的AI专家,人们可以与之讨论任何数据库,并使用GenSQL查询来提供答案。