CRUSH4SQL: Collective Retrieval Using Schema Hallucination For Text2SQL,来自印度理工学院孟买分校的计算机科学与工程系。
主要贡献
- 论文提出了一个名为 CRUSH4SQL 的新方法,用于解决在大型数据库上进行 Text-to-SQL(自然语言到SQL语句转换)任务时遇到的挑战。 首先使用大型语言模型(LLM)“幻想”出一个最小的数据库模式,这个模式足以回答查询。然后,使用这个幻想出的模式来检索实际模式的一个子集,通过组合多个密集检索的结果。作者还引入了三个新的基准测试,包括两个半合成数据集和一个真实的大型数据仓库基准。
方法论
CRUSH4SQL 方法主要分为两个阶段:LLM-based Query Transformation 和 Collective Retrieval。
1. LLM-based Query Transformation(基于LLM的查询转换)
这一阶段的目标是从自然语言问题文本 ( x ) 中推断出一组中间搜索字符串 ( K(x) ),这些字符串用于检索适合回答 ( x ) 的数据库模式元素子集 ( R(x) )。
步骤如下:
-
使用LLM幻想模式: 利用大型语言模型(如GPT-3)通过少量示例提示(few-shot prompting),幻想出一个可以用于回答给定问题的最小数据库模式。这些示例帮助LLM理解任务,并指导其生成与问题相关的模式。
-
生成幻想模式: 响应提示后,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) ) 尽可能匹配。
步骤如下:
-
检索候选集 ( C(x) ): 使用 ( K(x) ) 中的幻想文本作为索引,通过余弦相似度在数据库模式 ( D ) 中检索最匹配的实际模式元素。每个幻想文本 ( k \in K(x) ) 被转换为嵌入向量,并用于在 ( D ) 中检索最相似的模式元素。
-
优化检索目标: 从候选集 ( C(x) ) 中提取一个大小为 ( B ) 的子集 ( R(x) ),使得 ( R(x) ) 能够覆盖 ( K(x) ) 的所有部分,并且奖励在检索子集中的模式图连通性。
- 熵引导的相似度: 通过熵的概念调整相似度得分,使得罕见的列得到更高的得分。
- 覆盖得分: 使用软最大化函数来评估 ( R(x) ) 对 ( K(x) ) 的覆盖程度。
- 模式文档间的连接: 考虑模式元素之间的关系(如同一表中的关系或通过外键连接的关系),并优化 ( R(x) ) 以最大化这些连接的得分。
-
整体优化目标: 结合覆盖和连通性的需求,通过贪婪算法或其他优化技术从 ( C(x) ) 中选择 ( R(x) ),以最大化整体目标函数。
存在限制
- 论文讨论了 CRUSH 的两个潜在改进方向:一是让 LLM 在幻想模式时获得一些来自客户端数据库模式的有限指导;二是让链接权重 e(d, d′) 通过学习优化来拟合。