RB-SQL:利用检索LLM框架处理大型数据库和复杂多表查询的NL2SQL
NL2SQL的任务是将自然语言问题转换为SQL查询,以便从数据库中获取答案。现有LLM来指导SQL生成的方法在处理大型数据库和复杂多表查询时存在挑战,尤其是在处理冗余信息和提高提示工程效率方面。
(a) 利用大型语言模型(LLM)解决文本到SQL任务的一个示例。(b) DPR模型和提出的RB模型的图表。与DPR模型相比,RB模型将输入从文档扩展到其他数据类型(即表格、列、SQL框架)。
为了解决上述问题,提出了RB-SQL框架,包含三个模块:
-
Table-Retriever:检索与问题最相关的表格。
-
Column-Retriever:在检索到的表格中进一步检索相关列。
-
SQL-Skeleton-Retriever:搜索具有相似SQL骨架的少量示例,并将SQL骨架引入示例组织,以增强上下文学习过程。
RB-SQL框架。表格检索器从数据库中筛选表格,列检索器进一步筛选列。SQL框架检索器用于选择相似的少量示例,并将SQL框架添加到示例组织中。
RB-SQL框架利用密集型段落检索(Dense Passage Retrieval, DPR)模型来检索相关表格、列和示例,以构建有效的提示工程。此外,框架还引入了SQL骨架作为示例组织中的中间步骤,以指导正确的SQL生成过程。
(a) 表格检索器的工作流程。该模块计算问题与表格之间的相似度,并检索与问题高度相关的表格。(b) 表格检索器的框架。使用BERT分别对问题和表格进行编码,并使用基于MaxSim的后期交互来计算相似度得分。
(a) 列检索器的工作流程。该模块检索与问题高度相关的列。(b) 列检索器的框架。
(a) SQL骨架检索器的工作流程。 (b) SQL骨架检索器的框架。
通过在公共数据集BIRD和Spider上的实验,结果表明RB-SQL模型在性能上优于几个竞争基线:GPT-4、DIN-SQL、DAIL-SQL
还进行了消融研究,证明了RB-SQL框架中所有模块对于性能提升都起到了重要作用。
https://arxiv.org/pdf/2407.08273
RB-SQL: A Retrieval-based LLM Framework for Text-to-SQL
prompt:https://anonymous.4open.science/r/Anonymize-A5E7/prompt_case.txt
当前论文已经被作者撤回,不清楚为什么