【LLM与Text2SQL】简要探究存在的问题可解决方向,助力快速出创新点

由于大模型在text2sql任务上取得了重大成功,所以我只讨论大模型在此任务上存在的问题和解决方向

1.数据库的复杂模式

在LLM解决text2sql任务时,截止最新解决方案通常会创建一个prompt,其中包括自然语言查询、模式信息和其他详细信息,例如每个表的示例行或少量示例。此prompt用于调用 LLM 并生成与 NL 问题相对应的 SQL 查询。
然而,随着数据库模式的扩展,此类方法遇到了某些限制。首先,LLM的上下文窗口是有限的,因此很难在prompt中容纳整个数据库模式。其次,最近的研究表明,增加提示大小以包含更多信息并不一定会提高性能;事实上,随着输入上下文变长,它可能会导致准确性下降。第三,在我们的实验中,我们观察到,通过仅选择与 NL 查询相关的相关表和列也可以获得更好的准确性。
在这里插入图片描述
实验如上图所示,使用各种模式选择技术在 KaggleDBQA 数据集的执行匹配准确性比较。Full schema 方法表示将所以的数据库模型作为prompt的一部分。RAG 方法把数据库模式嵌入向量数据库,再计算与 NL 最相似的知识,并作为prompt的上下文。LLM-selected 利用 LLM 识别与 NL 查询相关的表和列,再使用这些知识作为prompt。Optimal Tables方法先人为选出NL涉及的表作为prompt。Optimal Tables and Columns方法为人为选出NL涉及的表及设计的字段。

2.text的歧义性与语义的不匹配

歧义性:在现实的生产环境中,接受的输入往往是一个模糊的查询,而不是一个具体的查询,即这样的查询可能没有标准答案,有多个答案都是用户可以接受的,所以现阶段的基准数据集存在缺陷,因为他们对于这种模糊的查询给出了标准答案。
语义的不匹配:NL2SQL 解决方案主要是在输入问题确实可以由底层数据库回答的假设下设计的。然而,在实践中,情况可能并不总是如此,最终用户可能不知道(全部或部分)列或表的语义。因此,它们可能表达底层数据库无法回答的意图。数据库可能完全或部分不匹配此类意图。
我们发现ChatGPT 4 可以很好的识别语义不匹配问题。但是ChatGPT 4 昂贵,设计技术来识别与更小、更便宜的模型的语义不匹配是未来工作的一个重要方向。

3.有害内容的输出

恶意用户引入有害内容是一个令人担忧的问题,检测和阻止此类有害内容对于 NL2SQL 系统不容忽视。然而,在 NL2SQL 环境中,数据库本身可能包含敏感或有害内容。假设警察部门维护着一个罪犯数据库,警官需要搜索具有特定模式的犯罪行为。在这种情况下,输入的问题和完成的内容自然可能包含有害内容。然而,由于数据库的性质,此类内容应该被允许,并且其查询也应该被允许。
设计根据数据库语义来决定是否阻止或允许有害内容的输出是一个有趣的研究方向。

4.大模型偏见

由于我大模型存在偏见,对于用户的某些输入,会偏执的生成错误的查询。

5.大模型的语言支持

现有的绝大部分数据集都是英文的,想要完成一个中文的text2sql任务,存在困难,我们将数据集的英文翻译为中文进行查询,发现EM显著降低。

6. 潜在修改数据库状态

我们发现,用户的某些合理的输入也会被大模型误判为非select语句,会修改数据库模式。NL解决方案可能需要限制其输出语句类型(例如,仅允许 SELECT 查询而不会对数据库产生副作用)或它们可以执行的内容(例如,通过具有只读权限的角色执行查询)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值