本文详细精读了Opensearch论文,论文是通过AI翻译加人工逐行精读修改的结果,希望对想要了解Text-to-SQL的同学有所帮助

文章目录
- 摘要
- 1 引言
- 2 初步介绍
- 2.1 大型语言模型
- 2.2 文本到SQL
- 2.3 幻觉
- 3 方法论
- 3.1 对齐
- 3.2 自学小样本
- 3.3 预处理
- 3.4 提取
- 3.5 生成
- 3.6 精炼
- 3.7 算法
- 3.8 优化
- 4 实验
- 4.1 实验设置
- 4.2 主要结果
- 4.3 模块消融
- 结论
摘要
尽管多智能体协作的大型语言模型(LLMs)在文本到SQL任务中取得了显著突破,但其性能仍受多种因素限制。这些因素包括框架的不完整性、未能遵循指令以及模型幻觉问题。为解决这些问题,我们提出了OpenSearch-SQL,它将文本到SQL任务划分为四个主要模块:预处理、提取、生成和细化,以及基于一致性对齐机制的对齐模块。该架构通过对齐模块对齐智能体的输入和输出,减少了指令遵循失败和幻觉现象。此外,我们设计了一种名为SQL-Like的中间语言,并基于SQL-Like优化了结构化CoT。同时,我们开发了以自教查询-CoT-SQL为形式的动态少样本策略。这些方法显著提升了LLMs在文本到SQL任务中的性能。
在模型选择方面,我们直接应用基础LLMs,无需任何预训练,从而简化了任务链并增强了框架的可移植性。实验结果显示,OpenSearch-SQL在BIRD开发集上的执行准确率(EX)达到69.3%,在测试集上准确率为72.28%,基于奖励的有效性效率得分(R-VES)为69.36%,三个指标在论文提交时均排名第一。这些结果展示了所提方法在有效性和效率上的全面优势。
1 引言
发展历史:文本到SQL任务旨在从自然语言查询(NLQ)自动生成结构化查询语言(SQL)查询。该任务能够提升无需掌握SQL知识即可访问数据库的能力[17]。由于文本到SQL问题极其困难,这些系统几十年来一直是数据库界的圣杯[17]。早期的工作将查询答案定义为图结构[14, 15]或基于句法结构解析问题[16,38]。后续方法将文本到SQL任务视为神经机器翻译(NMT)问题[11, 37]。近期,随着大型语言模型的发展,研究人员通过诸如监督微调(SFT)[19,23,35]、思维链(CoT)[40]、智能体(Agents)[6,27]以及上下文学习(In-Context Learning)[7, 36]等方法,越来越多地完成了任务,所取得的结果大大超越了以往的方法。
局限性:尽管由大型语言模型驱动的方法显著提高了文本到SQL任务能力的上限,但我们之前的分析显示:
- L1问题。由于总体框架的模糊性,在方法论层面存在一些差距。这阻碍了这些方法发挥其潜力。例如,缺乏对数据库中存储信息的验证,
生成结果没有错误纠正,以及与少样本学习的缺失相关的问题。 - L2问题。由大型语言模型驱动的方法通常依赖于多智能体协作。然而,由于
大型语言模型的不稳定性以及缺乏保证智能体之间的一致性和耦合,后续执行的智能体可能不使用或仅部分使用先前运行智能体的输出。这导致累积的幻觉和性能损失。 - L3问题。指导大型语言模型的指令和步骤显著影响生成的SQL质量。在大型语言模型出现之前,为了解决此问题,开发了使用中间语言生成SQL的方法[17],但当前
关于指令构建的研究仍然不足。
人类启发:受到上述挑战的启发,我们对人类在完成文本到SQL任务的工作流程进行了详细分析:理解数据库结构并选择获取SQL所需的特定表格、列和值。这个过程通常需要执行几个简单的SQL查询,例如调查某一列值的特定形式或检索特定值在数据库中的存储方式。接下来,根据自然语言问题的具体情况,选择合适的聚合函数和SQL语法来构建SQL查询的主体,然后填充相关语句。最后,人类通常会根据查询结果逐步修改SQL,直到满足要求。对于更复杂的问题,人类往往会选择咨询或借鉴他人的公式化解决方案。基于这种方法,我们开发了OpenSearch-SQL方法,具体细节如下。
方法框架:为了解决L1问题,我们的研究定义了一个基于人类完成SQL构建过程的标准文本到SQL框架。这可以涵盖当前关于大型语言模型驱动的文本到SQL任务的研究。我们认为一个完整的文本到SQL任务框架应该包括四个步骤:预处理、提取、生成、精炼:
-
预处理。处理并构建所有对自然语言问题不敏感的辅助信息,包括数据库模式信息、嵌入式数据库、小样本库等。 -
提取。提取并选择生成SQL所需的必要元素,包括子自然语言问题(NLQ)、少样本学习,以及数据库中的表格、列、值等。 -
生成。基于SQL语法、少样本学习和准备的信息,将自然语言问题翻译成SQL。 -
精炼。根据执行结果使用对齐策略和规则检查和优化SQL。然后,基于自一致性和投票结果选择最终的SQL。
对于L2问题,我们分析了多智能体协作驱动的文本到SQL任务中的常见幻觉,并为这些幻觉设计了一种基于一致性对齐的对齐智能体。通过确保特定智能体的功能、输入和输出的一致性,我们的目标是在模型生成过程中减少幻觉。这种对齐方法也可以扩展,以便对智能体的输出进行有针对性的调整。如图1所示,我们提出了OpenSearch-SQL框架,它由标准的文本到SQL框架与对齐结合而成。

此外,我们使用这个框架扩展了对由大型语言模型(LLMs)驱动的多智能体方法的研究。
对于L3问题,我们开发了一种自教少样本增强机制,用思维链(CoT)信息补充Query-SQL对,创建Query-CoT-SQL对。这种丰富的少样本学习方法可以提高大型语言模型的性能。另外,我们在CoT逻辑中设计了一种名为SQL-Like的中间语言,使大型语言模型能够首先生成SQL的主干,然后再生成具体的SQL细节,从而降低模型的复杂度。
在实际应用中,为特定查询任务准备大量定制化SQL训练数据并非易事。因此,考虑到现实世界的需求,我们的目标不仅是特定评估任务中取得良好成绩,还要确保所提出的方法具有强大的可迁移性。我们希望该方法能够轻松应用于各种数据库查询任务,而无需进行后期训练。这意味着在遇到任何问题时,我们只需修改代理和对齐方法,无需重新训练模型,从而以高质量满足用户需求。
基于此,我们在一个预训练的LLM模型上直接实现了我们的方法,没有采用任何监督微调(SFT)或强化学习(RL)。在实验方面,我们选择了被广泛认可的BIRD数据集[20]进行测试,该数据集记录了三个指标:开发集上的执行准确率(EX)、测试集上的EX以及测试集上的基于奖励的有效效率得分(R-VES)。我们的实验结果表明,我们在开发集上达到了69.3%的EX,在测试集上达到了72.28%的EX,以及69.3%的R-VES得分。在提交时,所有三个指标在排行榜上均名列第一,这表明我们的方法不仅生成了准确的SQL语句,而且在时间效率方面也有明显优势。我们希望这种基于一致性对齐的方法将激发未来研究探索更高效的一致性对齐策略。
总结来说,我们的贡献如下。
- 据我们所知,我们是首个提出基于一致性对齐的多智能体协作框架用于文本到SQL任务的。这种对齐机制显著减少了智能体之间信息传输的损失以及智能体生成结果中的幻觉。
- 我们引入了一种新颖的自教动态小样本方法和一种类SQL的CoT机制。这提高了大型语言模型在生成SQL时的性能和稳定性。
- 我们提出的方法OpenSearch-SQL没有使用微调也没有引入任何专门的数据集。在提交时,它在BIRD基准验证集上达到了69.3%的EX,在测试集上达到了72.28%的EX,R-VES为69.36%,均排名第一。
2 初步介绍
我们首先介绍本文依赖的两个重要模块:大型语言模型(LLMs)和文本到SQL任务。
2.1 大型语言模型
通过在大规模文本数据上进行无监督学习,预训练的大型语言模型已经获得了广泛的语言知识和语义信息。这种预训练通常采用自回归架构(如类GPT模型)或自编码结构(如类BERT模型)。大型语言模型可以通过微调在各种下游任务上实现出色的性能。自从大型语言模型深度学习时代的发展以来,与经典模型和方法相比,文本到SQL任务有了显著的进步,当前的最先进技术完全依赖于大型语言模型的性能。
2.2 文本到SQL
文本到SQL任务可以定义为:一个任务,它根据数据库信息S、特定模型F(·|0)和特定提示P,将自然语言问题Q转换为SQL查询Y。数据库中的信息被定义为S。因此,文本到SQL任务可以被定义为:

最低0.47元/天 解锁文章

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



