图片由作者使用 Dall-E 创作
结果指向了一种有前景的方法
https://aparnadhinak.medium.com/?source=post_page---byline--1ff69a70e7cf--------------------------------https://towardsdatascience.com/?source=post_page---byline--1ff69a70e7cf-------------------------------- Aparna Dhinakaran
·发布于 Towards Data Science ·4 分钟阅读·2024 年 7 月 31 日
–
特别感谢 Manas Singh 和 Evan Jolley 与我们共同合作进行这项研究!
一种引起关注和投资的 LLM 潜在应用是其生成 SQL 查询的能力。使用自然语言查询大型数据库解锁了几个有吸引力的用例,从提高数据透明度到改善非技术用户的可访问性。
然而,和所有 AI 生成内容一样,评估问题非常重要。我们如何判断 LLM 生成的 SQL 查询是否正确并产生预期结果?我们最近的研究深入探讨了这个问题,并探索了使用LLM 作为评判者来评估 SQL 生成的有效性。
研究发现总结
在这项实验中,LLM 作为评判者在评估 SQL 生成方面表现出初步的前景,使用 OpenAI 的 GPT-4 Turbo,F1 得分在 0.70 到 0.76 之间。在评估提示中加入相关的模式信息可以显著减少假阳性。尽管仍然存在挑战——包括由于错误的模式解释或对数据的假设导致的假阴性——LLM 作为评判者为 AI SQL 生成性能提供了一个可靠的代理,尤其是在快速检查结果时。
方法论与结果
本研究建立在 Defog.ai 团队之前的工作基础上,该团队开发了一种方法来使用黄金数据集和查询评估 SQL 查询。该过程涉及使用黄金数据集问题生成 AI SQL,使用 AI 生成的 SQL 生成测试结果“x”,然后使用预先存在的黄金查询在相同数据集上生成结果“y”,最后比较结果“x”和“y”以判断准确性。
图表由作者提供
在这个比较中,我们首先探讨了传统的 SQL 评估方法,例如精确的数据匹配。该方法涉及直接比较两个查询的输出数据。例如,在评估关于作者引用的查询时,如果作者人数或引用次数有任何差异,就会导致不匹配并失败。虽然这种方法简单直接,但它无法处理边界情况,如如何处理零计数的桶或数值输出的轻微变化。
图表由作者提供
我们随后尝试了一种更细致的方法:使用 LLM 作为评判者。我们使用 OpenAI 的 GPT-4 Turbo 进行的初步测试,在不包含数据库模式信息的评估提示中,取得了令人鼓舞的结果,F1 分数介于 0.70 和 0.76 之间。在这种设置下,LLM 通过仅检查问题和生成的查询来判断生成的 SQL。
结果:图片由作者提供
在本次测试中,我们注意到有相当多的假阳性和假阴性,其中许多与对数据库模式的误解或假设有关。在这个假阴性案例中,LLM 假设响应的单位与预期不同(学期与天数)。
图片由作者提供
这些差异促使我们在评估提示中添加了数据库模式。与我们的预期相反,这导致了性能下降。然而,当我们精细化方法,只包含查询中引用的表的模式时,我们在假阳性和假阴性率方面看到了显著的改善。
结果:图片由作者提供
挑战与未来方向
尽管使用 LLM 来评估 SQL 生成的潜力显而易见,但仍然存在挑战。通常,LLM 会对数据结构和关系做出错误的假设,或者错误地假设度量单位或数据格式。找到适当的模式信息类型和数量来包含在评估提示中,对于优化性能至关重要。
任何探索 SQL 生成用例的人可能会探讨其他几个领域,比如优化模式信息的包含、提高大型语言模型(LLM)对数据库概念的理解,以及开发结合 LLM 判断与传统技术的混合评估方法。
结论
由于能够捕捉到细微的错误,LLM 作为评判者展现出作为快速有效工具的潜力,能够评估 AI 生成的 SQL 查询。
仔细选择提供给 LLM 评判者的信息,有助于最大化这一方法的效益;通过包含相关的架构细节并持续优化LLM 评估过程,我们可以提高 SQL 生成评估的准确性和可靠性。
随着自然语言接口在数据库中的普及,对有效评估方法的需求也将不断增长。尽管 LLM 作为评判者的方法并不完美,但它比简单的数据匹配提供了更为细致的评估,能够理解上下文和意图,这一点是传统方法无法做到的。
954

被折叠的 条评论
为什么被折叠?



