【Text2SQL】解读论文CRUSH4SQL: Collective Retrieval Using Schema Hallucination For Text2SQL

CRUSH4SQL: Collective Retrieval Using Schema Hallucination For Text2SQL,来自印度理工学院孟买分校的计算机科学与工程系。

主要贡献

  • 论文提出了一个名为 CRUSH4SQL 的新方法,用于解决在大型数据库上进行 Text-to-SQL(自然语言到SQL语句转换)任务时遇到的挑战。 首先使用大型语言模型(LLM)“幻想”出一个最小的数据库模式,这个模式足以回答查询。然后,使用这个幻想出的模式来检索实际模式的一个子集,通过组合多个密集检索的结果。作者还引入了三个新的基准测试,包括两个半合成数据集和一个真实的大型数据仓库基准。

方法论

CRUSH4SQL 方法主要分为两个阶段:LLM-based Query TransformationCollective Retrieval
在这里插入图片描述

1. LLM-based Query Transformation(基于LLM的查询转换)

这一阶段的目标是从自然语言问题文本 ( x ) 中推断出一组中间搜索字符串 ( K(x) ),这些字符串用于检索适合回答 ( x ) 的数据库模式元素子集 ( R(x) )。

步骤如下:

  1. 使用LLM幻想模式: 利用大型语言模型(如GPT-3)通过少量示例提示(few-shot prompting),幻想出一个可以用于回答给定问题的最小数据库模式。这些示例帮助LLM理解任务,并指导其生成与问题相关的模式。

  2. 生成幻想模式: 响应提示后,LLM生成一个包含表和列的幻想模式。例如,对于问题“Show the season, the player, and the name of the team that the player belongs to.”,LLM可能幻想出包含如下表格的模式:

    • Match_season(season, team, player)
    • Team(name, team identifier)
2. Collective Retrieval(集合检索)

在这一阶段,目标是从数据库模式 ( D ) 中检索一个子集 ( R(x) ),使得 ( R(x) ) 与幻想出的模式 ( K(x) ) 尽可能匹配。

步骤如下:

  1. 检索候选集 ( C(x) ): 使用 ( K(x) ) 中的幻想文本作为索引,通过余弦相似度在数据库模式 ( D ) 中检索最匹配的实际模式元素。每个幻想文本 ( k \in K(x) ) 被转换为嵌入向量,并用于在 ( D ) 中检索最相似的模式元素。

  2. 优化检索目标: 从候选集 ( C(x) ) 中提取一个大小为 ( B ) 的子集 ( R(x) ),使得 ( R(x) ) 能够覆盖 ( K(x) ) 的所有部分,并且奖励在检索子集中的模式图连通性。

    • 熵引导的相似度: 通过熵的概念调整相似度得分,使得罕见的列得到更高的得分。
    • 覆盖得分: 使用软最大化函数来评估 ( R(x) ) 对 ( K(x) ) 的覆盖程度。
    • 模式文档间的连接: 考虑模式元素之间的关系(如同一表中的关系或通过外键连接的关系),并优化 ( R(x) ) 以最大化这些连接的得分。
  3. 整体优化目标: 结合覆盖和连通性的需求,通过贪婪算法或其他优化技术从 ( C(x) ) 中选择 ( R(x) ),以最大化整体目标函数。

存在限制

  • 论文讨论了 CRUSH 的两个潜在改进方向:一是让 LLM 在幻想模式时获得一些来自客户端数据库模式的有限指导;二是让链接权重 e(d, d′) 通过学习优化来拟合。
  • 13
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值